From 4565221c5c402e960868235274c99f709c0293df Mon Sep 17 00:00:00 2001 From: catborise Date: Tue, 3 Nov 2026 19:41:19 +0300 Subject: [PATCH] feat(instances): the Boot tab shows the boot order as the chain the VM tries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A checkbox marked a device as booting and also chose what Up and Down moved, which moved every checked device at once: to move one device the others had to be unchecked and checked again. The buttons sat apart from the rows, and a VM booting by device type got a note that did not say what to do. Now the devices the VM tries are a numbered chain, each with its own up, down and Remove, and the others are listed below it with Add; the posted order is unchanged. Devices read by kind first (CD-ROM sda, Disk vda) with their file or network below; a VM booting by device type says so and how to choose an order. Autostart and the boot menu sit below, lighter. Focus stays on the device that moved, and on a narrow screen a device's buttons wrap below its name. The Turkish catalog says "Ön yükleme" and "sanal makine" throughout, also in the Power tab texts. --- instances/models.py | 14 +- .../templates/instances/boot_device.html | 19 + .../templates/instances/settings_tab.html | 80 +-- instances/tests/test_live_dataloss.py | 2 +- instances/tests/test_pending_edits.py | 12 +- instances/views.py | 2 +- locale/tr/LC_MESSAGES/django.mo | Bin 190758 -> 191034 bytes locale/tr/LC_MESSAGES/django.po | 602 +++++++++--------- locale/zh/LC_MESSAGES/django.mo | Bin 178286 -> 178547 bytes locale/zh/LC_MESSAGES/django.po | 589 ++++++++--------- static/css/webvirtcloud.css | 50 +- static/js/instance_page.js | 58 +- 12 files changed, 740 insertions(+), 688 deletions(-) create mode 100644 instances/templates/instances/boot_device.html diff --git a/instances/models.py b/instances/models.py index 94db5012..8d677d6d 100644 --- a/instances/models.py +++ b/instances/models.py @@ -223,17 +223,25 @@ class Instance(models.Model): "disk:vda".""" order = [f"{d['dev']}:{d['target']}" for position, d in sorted(self.config_boot_order.items())] devices = ( - [{"value": f"disk:{d['dev']}", "name": d["dev"], "kind": _("Disk"), "source": d["image"]} + [{"value": f"disk:{d['dev']}", "name": d["dev"], "kind": _("Disk"), "source": d["image"], "icon": "device-hdd"} for d in self.config_disks] - + [{"value": f"cdrom:{d['dev']}", "name": d["dev"], "kind": _("CD-ROM"), "source": d["image"]} + + [{"value": f"cdrom:{d['dev']}", "name": d["dev"], "kind": _("CD-ROM"), "source": d["image"], "icon": "disc"} for d in self.config_media] - + [{"value": f"network:{n['mac']}", "name": n["mac"], "kind": _("NIC"), "source": n["nic"]} + + [{"value": f"network:{n['mac']}", "name": n["mac"], "kind": _("NIC"), "source": n["nic"], "icon": "ethernet"} for n in self.config_networks] ) for device in devices: device["checked"] = device["value"] in order return sorted(devices, key=lambda d: order.index(d["value"]) if d["checked"] else len(order)) + @cached_property + def config_boot_types(self) -> str: + """The device types the VM boots by, in turn ("disk, cdrom"), when its + order names types rather than devices; "" otherwise.""" + if any(d["checked"] for d in self.config_boot_devices): + return "" + return ", ".join(b["target"] for position, b in sorted(self.config_boot_order.items())) + @cached_property def config_video_model(self) -> str | None: """Video model and console settings of the persistent definition, diff --git a/instances/templates/instances/boot_device.html b/instances/templates/instances/boot_device.html new file mode 100644 index 00000000..eb6faa8d --- /dev/null +++ b/instances/templates/instances/boot_device.html @@ -0,0 +1,19 @@ +{% load i18n %} +{% load bootstrap_icons %} +{# one device of the boot order editor: in #boot-chain it is numbered and moves up, down or out; in #boot-spare it is added #} +
  • + + + + {{ device.kind }} {{ device.name }} + {{ device.source|default:_("empty") }} + + + + + + + + + +
  • diff --git a/instances/templates/instances/settings_tab.html b/instances/templates/instances/settings_tab.html index fe3d887b..568aaa6b 100644 --- a/instances/templates/instances/settings_tab.html +++ b/instances/templates/instances/settings_tab.html @@ -92,57 +92,45 @@ {% endif %} {% if request.user.is_superuser %}
    -
    -

    {% trans "Startup settings" %}

    -
    -
    -
    {% csrf_token %} -
    - - -
    -

    {% trans "Start this VM when the host starts." %}

    -
    -
    -
    -
    {% csrf_token %} -
    - - -
    -

    {% trans "Show a device chooser when the VM starts." %}

    -
    -
    -
    -
    -
    + {# the devices the VM tries in turn when it starts, and those it does not try; each moves on its own #} +

    {% trans "Boot order" %}

    -

    {% trans "Checked devices boot from top to bottom. Up and Down move all checked devices." %}

    - {% if instance.config_boot_order and not instance.config_boot_devices.0.checked %} -

    - {% trans "The VM now boots by device type:" %} - {% for b in instance.config_boot_order.values %}{{ b.target }}{% if not forloop.last %}, {% endif %}{% endfor %}. - {% trans "Checking devices replaces this order." %} -

    - {% endif %} +

    {% trans "When the VM starts it tries these devices in turn and boots from the first that works." %}

    {% csrf_token %} -
    - {% for device in instance.config_boot_devices %} - - {% endfor %} -
    -
    - - - -
    +
      + {% for device in instance.config_boot_devices %}{% if device.checked %}{% include "instances/boot_device.html" %}{% endif %}{% endfor %} +
    +

    + {% if instance.config_boot_types %}{% blocktrans with types=instance.config_boot_types %}The VM boots by device type: {{ types }}. Add a device to choose the order yourself.{% endblocktrans %} + {% else %}{% trans "No device is in the boot order. Add one." %}{% endif %} +

    +

    {% trans "Not in the boot order" %}

    +
      + {% for device in instance.config_boot_devices %}{% if not device.checked %}{% include "instances/boot_device.html" %}{% endif %}{% endfor %} +
    +
    +
    +

    {% trans "Startup settings" %}

    +
    +
    {% csrf_token %} +
    + + +
    +

    {% trans "Start this VM when the host starts." %}

    +
    +
    {% csrf_token %} +
    + + +
    +

    {% trans "Show a device chooser when the VM starts." %}

    +
    +
    +
    {# its CD-ROM drives, then its disks as list rows; the forms are those of the actions #} diff --git a/instances/tests/test_live_dataloss.py b/instances/tests/test_live_dataloss.py index 604080d7..188d8b30 100644 --- a/instances/tests/test_live_dataloss.py +++ b/instances/tests/test_live_dataloss.py @@ -493,7 +493,7 @@ class LiveDataLossTestCase(TestCase): page = html.fromstring(self.client.get(reverse("instances:instance", args=[inst.id])).content) (boot,) = page.xpath("//form[@action=$a]", a=reverse("instances:set_bootorder", args=[inst.id])) - self.assertEqual(boot.xpath(".//input[@type='checkbox']/@value"), ["network:52:54:00:aa:05:21", "disk:vda"]) + self.assertEqual(boot.xpath(".//ol[@id='boot-chain']/li/@data-boot-value"), ["network:52:54:00:aa:05:21", "disk:vda"]) self.assertEqual(page.xpath("//select[@name='video_model']/option[@selected]/@value"), [video]) self.post("set_bootorder", inst, {"bootorder": "network:52:54:00:aa:05:22,disk:vda"}) diff --git a/instances/tests/test_pending_edits.py b/instances/tests/test_pending_edits.py index d1347fd7..42c9dcb1 100644 --- a/instances/tests/test_pending_edits.py +++ b/instances/tests/test_pending_edits.py @@ -306,9 +306,9 @@ class PendingEditsTestCase(TestCase): get_console_passwd=("live-pw", "pending-pw"), ) (boot,) = doc.xpath("//form[@action=$a]", a=reverse("instances:set_bootorder", args=[self.instance.id])) - # the devices in the order first, checked - self.assertEqual(boot.xpath(".//input[@type='checkbox']/@value"), ["cdrom:sda", "disk:vda", "disk:vdb"]) - self.assertEqual(boot.xpath(".//input[@checked]/@value"), ["cdrom:sda"]) + # the devices in the order first, in the boot chain; the others below it + self.assertEqual(boot.xpath(".//li/@data-boot-value"), ["cdrom:sda", "disk:vda", "disk:vdb"]) + self.assertEqual(boot.xpath(".//ol[@id='boot-chain']/li/@data-boot-value"), ["cdrom:sda"]) # the pending boot menu is on: its switch turns it off, also while the VM runs self.assertEqual(doc.xpath("//input[@id='bootmenu']/ancestor::form/@action"), [reverse("instances:unset_bootmenu", args=[self.instance.id])]) @@ -323,8 +323,8 @@ class PendingEditsTestCase(TestCase): doc = self.page(live=[disk("vda", "default", "")], config=[disk("vda", "default", "")], get_bootorder=({}, {0: {"type": "file", "dev": "hd", "target": "disk"}, 1: {"type": "file", "dev": "cdrom", "target": "cdrom"}})) - self.assertIn("disk, cdrom.", " ".join(doc.xpath("string(//p[@id='boot-by-type'])").split())) - self.assertEqual(doc.xpath("//div[@id='b_order']//input[@checked]"), []) + self.assertIn("by device type: disk, cdrom.", " ".join(doc.xpath("string(//p[@id='boot-chain-empty'])").split())) + self.assertEqual(doc.xpath("//ol[@id='boot-chain']/li"), []) def test_a_boot_order_choice_not_in_the_definition_is_refused(self): with patch("instances.models.wvmInstance") as wvm: @@ -337,7 +337,7 @@ class PendingEditsTestCase(TestCase): with patch("instances.models.wvmInstance") as wvm: response = self.client.post(reverse("instances:set_bootorder", args=[self.instance.id]), {"bootorder": ""}) wvm.return_value.set_bootorder.assert_not_called() - self.assertEqual([str(m) for m in get_messages(response.wsgi_request)], ["Check at least one device to boot from."]) + self.assertEqual([str(m) for m in get_messages(response.wsgi_request)], ["Add at least one device to the boot order."]) def test_an_active_vm_says_its_settings_apply_at_the_next_start(self): for status, shown in ((1, True), (3, True), (5, False)): diff --git a/instances/views.py b/instances/views.py index 07346efc..f3d2c2a0 100755 --- a/instances/views.py +++ b/instances/views.py @@ -1816,7 +1816,7 @@ def set_bootorder(request, pk): instance = get_instance(request.user, pk) bootorder = request.POST.get("bootorder", "") if not bootorder: - messages.error(request, _("Check at least one device to boot from.")) + messages.error(request, _("Add at least one device to the boot order.")) return _back(request, pk, "boot_opt") order_list = {} for idx, val in enumerate(bootorder.split(",")): diff --git a/locale/tr/LC_MESSAGES/django.mo b/locale/tr/LC_MESSAGES/django.mo index 2d20bf0093902ef78dd3589ada3bd72c3900cf27..c44156fdc38f929e36471b8626788740b8e61a21 100644 GIT binary patch delta 42825 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 delta 42625 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 P@Qwb*NUy6)ugd!urhbXT diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index 775a136a..9dc4007b 100644 --- a/locale/tr/LC_MESSAGES/django.po +++ b/locale/tr/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-03 16:13+0000\n" +"POT-Creation-Date: 2026-11-03 16:37+0000\n" "PO-Revision-Date: 2020-11-04 12:00+0000\n" "Last-Translator: catborise , 2020\n" "Language-Team: Turkish (https://www.transifex.com/catborise/teams/110663/tr/)\n" @@ -30,17 +30,17 @@ msgid "Instance owned by another user" msgstr "Diğer kullanıcıya ait sanal makineler" #: accounts/forms.py:36 accounts/templates/account.html:66 -#: instances/templates/instances/settings_tab.html:678 +#: instances/templates/instances/settings_tab.html:666 msgid "Change settings" msgstr "Ayarları değiştir" #: accounts/forms.py:36 accounts/templates/account.html:67 -#: instances/templates/instances/settings_tab.html:678 +#: instances/templates/instances/settings_tab.html:666 msgid "Delete the VM" msgstr "Sanal makineyi sil" #: accounts/forms.py:37 accounts/templates/account.html:68 -#: instances/templates/instances/settings_tab.html:678 +#: instances/templates/instances/settings_tab.html:666 msgid "Change console settings" msgstr "Konsol ayarlarını değiştir" @@ -236,7 +236,7 @@ msgid "Host" msgstr "Sunucu" #: accounts/templates/account.html:69 -#: instances/templates/instances/settings_tab.html:680 +#: instances/templates/instances/settings_tab.html:668 msgid "Power and console only" msgstr "Yalnızca güç ve konsol" @@ -280,8 +280,8 @@ msgstr "Parola Değiştir" #: instances/templates/instances/destroy_instance_form.html:51 #: instances/templates/instances/edit_instance_volume.html:111 #: instances/templates/instances/move_disk.html:27 -#: instances/templates/instances/settings_tab.html:421 -#: instances/templates/instances/settings_tab.html:655 +#: instances/templates/instances/settings_tab.html:409 +#: instances/templates/instances/settings_tab.html:643 #: interfaces/templates/create_iface_block.html:147 #: networks/templates/add_network_qos.html:35 #: networks/templates/create_net_block.html:126 @@ -435,8 +435,8 @@ msgstr "%(name)s API anahtarı için işlemler" #: admin/templates/admin/user_list.html:76 #: admin/templates/admin/user_list.html:78 #: instances/templates/create_flavors.html:11 -#: instances/templates/instances/settings_tab.html:263 -#: instances/templates/instances/settings_tab.html:337 +#: instances/templates/instances/settings_tab.html:251 +#: instances/templates/instances/settings_tab.html:325 #: instances/templates/instances/snapshots_tab.html:96 #: instances/templates/instances/snapshots_tab.html:110 #: networks/templates/network.html:168 storages/templates/storage.html:152 @@ -510,6 +510,7 @@ msgstr "Kullanıcıya anahtar ekleme formu" #: instances/templates/add_instance_network_block.html:56 #: instances/templates/add_instance_owner_block.html:30 #: instances/templates/create_flavors.html:20 +#: instances/templates/instances/boot_device.html:17 #: networks/templates/network.html:134 nwfilters/templates/nwfilter.html:45 msgid "Add" msgstr "Ekle" @@ -709,12 +710,12 @@ msgstr "Üyeler" #: instances/templates/instances/edit_instance_volume.html:112 #: instances/templates/instances/nic_qos_form.html:23 #: instances/templates/instances/resize_tab.html:114 -#: instances/templates/instances/settings_tab.html:422 -#: instances/templates/instances/settings_tab.html:656 -#: instances/templates/instances/settings_tab.html:905 -#: instances/templates/instances/settings_tab.html:947 -#: instances/templates/instances/settings_tab.html:1007 -#: instances/templates/instances/settings_tab.html:1037 +#: instances/templates/instances/settings_tab.html:410 +#: instances/templates/instances/settings_tab.html:644 +#: instances/templates/instances/settings_tab.html:893 +#: instances/templates/instances/settings_tab.html:935 +#: instances/templates/instances/settings_tab.html:995 +#: instances/templates/instances/settings_tab.html:1025 #: networks/templates/add_network_qos.html:36 #: networks/templates/network.html:336 networks/templates/network.html:376 #: networks/templates/network.html:403 networks/templates/network.html:442 @@ -762,7 +763,7 @@ msgstr[1] "%(count)s izin" #: admin/templates/admin/group_list.html:40 #: admin/templates/admin/user_list.html:63 #: instances/templates/instances/edit_instance_volume.html:3 -#: instances/templates/instances/settings_tab.html:331 +#: instances/templates/instances/settings_tab.html:319 #: networks/templates/network.html:159 networks/templates/network.html:301 msgid "Edit" msgstr "Düzenle" @@ -879,7 +880,7 @@ msgstr "Kaldırılan sanal makinelerde ara" #: admin/templates/admin/tombstone_list.html:28 #: instances/templates/instance.html:27 -#: instances/templates/instances/settings_tab.html:913 +#: instances/templates/instances/settings_tab.html:901 msgid "Template" msgstr "Şablon" @@ -1654,7 +1655,7 @@ msgstr "Yeni sanal makine varsayılanları" #: appsettings/views.py:40 instances/templates/instance.html:64 #: instances/templates/instances/destroy_instance_form.html:32 -#: instances/templates/instances/settings_tab.html:209 +#: instances/templates/instances/settings_tab.html:197 msgid "Disks" msgstr "Diskler" @@ -1667,7 +1668,7 @@ msgstr "Klonlar" #: instances/templates/instance_actions.html:11 #: instances/templates/instances/access_tab.html:15 #: instances/templates/instances/settings_tab.html:32 -#: instances/templates/instances/settings_tab.html:707 +#: instances/templates/instances/settings_tab.html:695 msgid "Console" msgstr "Konsol" @@ -1731,8 +1732,8 @@ msgid "Stored, leave empty to keep" msgstr "Kayıtlı, korumak için boş bırakın" #: computes/forms.py:28 computes/templates/computes/instances.html:45 -#: instances/templates/instances/settings_tab.html:870 -#: instances/templates/instances/settings_tab.html:902 +#: instances/templates/instances/settings_tab.html:858 +#: instances/templates/instances/settings_tab.html:890 #: instances/templates/instances/snapshots_tab.html:23 #: instances/templates/instances/snapshots_tab.html:67 msgid "Description" @@ -1965,8 +1966,8 @@ msgstr "kayıtlı" #: computes/templates/computes/form.html:34 #: instances/templates/instances/edit_instance_volume.html:82 -#: instances/templates/instances/settings_tab.html:353 -#: instances/templates/instances/settings_tab.html:384 +#: instances/templates/instances/settings_tab.html:341 +#: instances/templates/instances/settings_tab.html:372 #: networks/templates/networks.html:63 msgid "none" msgstr "hiçbiri" @@ -1995,8 +1996,8 @@ msgstr "Sanal Makineler" #: computes/templates/computes/host_nav.html:15 #: computes/templates/computes/host_nav.html:16 #: computes/templates/overview.html:74 -#: instances/templates/instances/settings_tab.html:560 -#: instances/templates/instances/settings_tab.html:826 +#: instances/templates/instances/settings_tab.html:548 +#: instances/templates/instances/settings_tab.html:814 #: storages/templates/storage.html:6 storages/templates/storage.html:8 msgid "Storage" msgstr "Depolama" @@ -2006,7 +2007,7 @@ msgstr "Depolama" #: instances/templates/add_instance_network_block.html:18 #: instances/templates/create_instance_w2.html:230 #: instances/templates/create_instance_w2.html:232 -#: instances/templates/instances/settings_tab.html:385 +#: instances/templates/instances/settings_tab.html:373 #: networks/templates/networks.html:5 networks/templates/networks.html:7 msgid "Networks" msgstr "Ağlar" @@ -2014,7 +2015,7 @@ msgstr "Ağlar" #: computes/templates/computes/host_nav.html:23 #: computes/templates/computes/host_nav.html:24 #: instances/templates/add_instance_network_block.html:23 -#: instances/templates/instances/settings_tab.html:390 +#: instances/templates/instances/settings_tab.html:378 #: interfaces/templates/interfaces.html:6 #: interfaces/templates/interfaces.html:8 msgid "Interfaces" @@ -2082,8 +2083,8 @@ msgstr "Bellek" #: computes/templates/computes/list.html:60 #: instances/templates/allinstances_index_grouped.html:18 #: instances/templates/allinstances_index_nongrouped.html:16 -#: instances/templates/instances/settings_tab.html:459 -#: instances/templates/instances/settings_tab.html:494 +#: instances/templates/instances/settings_tab.html:447 +#: instances/templates/instances/settings_tab.html:482 #: networks/templates/network.html:146 networks/templates/network.html:204 #: networks/templates/network.html:286 nwfilters/templates/nwfilter.html:56 #: nwfilters/templates/nwfilter.html:100 nwfilters/templates/nwfilters.html:35 @@ -2129,7 +2130,7 @@ msgstr "/ %(memory)s" #: instances/forms.py:15 instances/templates/allinstances_index_grouped.html:16 #: instances/templates/allinstances_index_nongrouped.html:14 #: instances/templates/create_instance_w2.html:63 -#: instances/templates/instances/settings_tab.html:852 +#: instances/templates/instances/settings_tab.html:840 msgid "vCPUs" msgstr "vCPU" @@ -2137,14 +2138,14 @@ msgstr "vCPU" #: console/templates/console-vnc.html:13 #: console/templates/console-xterm.html:16 #: instances/templates/allinstances_index_grouped.html:36 -#: instances/templates/instances/settings_tab.html:1024 +#: instances/templates/instances/settings_tab.html:1012 #: networks/templates/network.html:260 msgid "Connected" msgstr "Bağlı" #: computes/templates/computes/list.html:73 computes/templates/overview.html:21 #: instances/templates/allinstances_index_grouped.html:38 -#: instances/templates/instances/settings_tab.html:1025 +#: instances/templates/instances/settings_tab.html:1013 msgid "Not connected" msgstr "Bağlı değil" @@ -2408,9 +2409,9 @@ msgstr "Ölçekleme" #: instances/templates/create_instance_w2.html:314 #: instances/templates/create_instance_w2.html:324 #: instances/templates/instance.html:65 -#: instances/templates/instances/settings_tab.html:192 -#: instances/templates/instances/settings_tab.html:348 -#: instances/templates/instances/settings_tab.html:408 +#: instances/templates/instances/settings_tab.html:180 +#: instances/templates/instances/settings_tab.html:336 +#: instances/templates/instances/settings_tab.html:396 #: instances/templates/instances/stats_tab.html:63 #: interfaces/templates/create_iface_block.html:94 #: interfaces/templates/create_iface_block.html:117 @@ -2483,8 +2484,8 @@ msgstr "Bağlan" #: instances/templates/create_instance_w2.html:367 #: instances/templates/instances/edit_instance_volume.html:13 #: instances/templates/instances/move_disk.html:13 -#: instances/templates/instances/settings_tab.html:372 -#: instances/templates/instances/settings_tab.html:647 +#: instances/templates/instances/settings_tab.html:360 +#: instances/templates/instances/settings_tab.html:635 #: interfaces/templates/create_iface_block.html:20 #: networks/templates/add_network_qos.html:8 #: networks/templates/create_net_block.html:20 @@ -2586,7 +2587,7 @@ msgstr "" "VNC olarak değiştirin." #: instances/forms.py:14 instances/templates/create_instance_w2.html:69 -#: instances/templates/instances/settings_tab.html:856 +#: instances/templates/instances/settings_tab.html:844 msgid "Memory (MiB)" msgstr "Bellek (MiB)" @@ -3050,7 +3051,7 @@ msgid "Disk" msgstr "Disk" #: instances/models.py:228 instances/templates/create_instance_w2.html:312 -#: instances/templates/instances/settings_tab.html:171 +#: instances/templates/instances/settings_tab.html:159 msgid "CD-ROM" msgstr "CD-ROM" @@ -3058,51 +3059,51 @@ msgstr "CD-ROM" msgid "NIC" msgstr "NIC" -#: instances/models.py:395 +#: instances/models.py:403 msgid "Live" msgstr "Canlı" -#: instances/models.py:396 +#: instances/models.py:404 msgid "Offline" msgstr "Çevrimdışı" -#: instances/models.py:397 +#: instances/models.py:405 msgid "Auto Converge" msgstr "Otomatik yavaşlat" -#: instances/models.py:398 +#: instances/models.py:406 msgid "Compress" msgstr "Sıkıştır" -#: instances/models.py:399 +#: instances/models.py:407 msgid "Unsafe" msgstr "Güvenli olmayan" -#: instances/models.py:411 +#: instances/models.py:419 msgid "No Virtual Machine name has been entered" msgstr "Sanal makine adı girilmedi" -#: instances/models.py:417 +#: instances/models.py:425 msgid "No VCPU has been entered" msgstr "VCPU belirtilmedi" -#: instances/models.py:423 +#: instances/models.py:431 msgid "No RAM size has been entered" msgstr "RAM boyutu belirtilmedi" -#: instances/models.py:427 +#: instances/models.py:435 msgid "No Network pool has been choosen" msgstr "Ağ havuzu seçilmedi" -#: instances/models.py:435 +#: instances/models.py:443 msgid "Please select HDD cache mode" msgstr "Lütfen HDD ön bellek modunu seçin" -#: instances/models.py:447 +#: instances/models.py:455 msgid "Please select a video driver" msgstr "Lütfen bir video sürücüsü seçin" -#: instances/models.py:484 +#: instances/models.py:492 msgid "Can access console without password" msgstr "Parolasız konsol erişimi yapabilir" @@ -3152,12 +3153,12 @@ msgid "Bus" msgstr "Veriyolu" #: instances/templates/add_instance_cdrom.html:23 -#: instances/templates/instances/settings_tab.html:185 +#: instances/templates/instances/settings_tab.html:173 msgid "ISO image" msgstr "ISO imajı" #: instances/templates/add_instance_cdrom.html:28 -#: instances/templates/instances/settings_tab.html:172 +#: instances/templates/instances/settings_tab.html:160 msgid "No media" msgstr "Ortam yok" @@ -3190,28 +3191,28 @@ msgstr "Sanal makine ağı ekleme formu" #: instances/templates/add_instance_network_block.html:16 #: instances/templates/allinstances.html:105 #: instances/templates/instances/edit_instance_volume.html:21 -#: instances/templates/instances/settings_tab.html:236 -#: instances/templates/instances/settings_tab.html:317 -#: instances/templates/instances/settings_tab.html:381 +#: instances/templates/instances/settings_tab.html:224 +#: instances/templates/instances/settings_tab.html:305 +#: instances/templates/instances/settings_tab.html:369 msgid "Source" msgstr "Kaynak" #: instances/templates/add_instance_network_block.html:31 -#: instances/templates/instances/settings_tab.html:347 -#: instances/templates/instances/settings_tab.html:398 +#: instances/templates/instances/settings_tab.html:335 +#: instances/templates/instances/settings_tab.html:386 msgid "Model" msgstr "Model" #: instances/templates/add_instance_network_block.html:39 -#: instances/templates/instances/settings_tab.html:348 -#: instances/templates/instances/settings_tab.html:406 +#: instances/templates/instances/settings_tab.html:336 +#: instances/templates/instances/settings_tab.html:394 msgid "NWFilter" msgstr "AğFiltresi" #: instances/templates/add_instance_network_block.html:48 #: instances/templates/allinstances.html:104 -#: instances/templates/instances/settings_tab.html:346 -#: instances/templates/instances/settings_tab.html:415 +#: instances/templates/instances/settings_tab.html:334 +#: instances/templates/instances/settings_tab.html:403 #: interfaces/templates/interface.html:60 #: interfaces/templates/interface.html:121 #: interfaces/templates/interfaces.html:39 networks/templates/network.html:67 @@ -3269,7 +3270,7 @@ msgstr "Sunucunun bir havuzunda zaten bulunan bir birim." #: instances/templates/create_instance_w2.html:137 #: instances/templates/create_instance_w2.html:165 #: instances/templates/instances/move_disk.html:16 -#: instances/templates/instances/settings_tab.html:235 +#: instances/templates/instances/settings_tab.html:223 msgid "Storage pool" msgstr "Depolama havuzu" @@ -3280,7 +3281,7 @@ msgid "Letters, digits, dot, dash and underscore." msgstr "Harf, rakam, nokta, tire ve alt çizgi." #: instances/templates/add_instance_volume.html:44 -#: instances/templates/instances/settings_tab.html:849 +#: instances/templates/instances/settings_tab.html:837 msgid "Size" msgstr "Boyut" @@ -3595,7 +3596,7 @@ msgid "Firmware" msgstr "Üretici yazılımı" #: instances/templates/create_instance_w2.html:86 -#: instances/templates/instances/settings_tab.html:981 +#: instances/templates/instances/settings_tab.html:969 msgid "TPM 2.0" msgstr "TPM 2.0" @@ -3650,7 +3651,8 @@ msgstr "Aygıt" #: instances/templates/create_instance_w2.html:188 #: instances/templates/create_instance_w2.html:246 -#: instances/templates/instances/settings_tab.html:687 +#: instances/templates/instances/boot_device.html:14 +#: instances/templates/instances/settings_tab.html:675 #: networks/templates/network.html:304 msgid "Remove" msgstr "Kaldır" @@ -3750,8 +3752,8 @@ msgstr "Ayrıntılar" #: instances/templates/instance.html:34 #: instances/templates/instance_actions.html:13 #: instances/templates/instances/settings_tab.html:53 -#: instances/templates/instances/settings_tab.html:880 -#: instances/templates/instances/settings_tab.html:882 +#: instances/templates/instances/settings_tab.html:868 +#: instances/templates/instances/settings_tab.html:870 #: nwfilters/templates/nwfilters.html:57 nwfilters/templates/nwfilters.html:94 #: storages/templates/storage.html:143 storages/templates/storage.html:203 msgid "Clone" @@ -3794,7 +3796,7 @@ msgid "vCPU" msgstr "vCPU" #: instances/templates/instance.html:69 -#: instances/templates/instances/settings_tab.html:318 +#: instances/templates/instances/settings_tab.html:306 msgid "IPv4" msgstr "IPv4" @@ -3978,6 +3980,20 @@ msgstr "" msgid "Add Public Key" msgstr "Açık Anahtar Ekle" +#: instances/templates/instances/boot_device.html:9 +msgid "empty" +msgstr "boş" + +#: instances/templates/instances/boot_device.html:12 +#, python-format +msgid "Move %(kind)s %(name)s up" +msgstr "%(kind)s %(name)s yukarı taşı" + +#: instances/templates/instances/boot_device.html:13 +#, python-format +msgid "Move %(kind)s %(name)s down" +msgstr "%(kind)s %(name)s aşağı taşı" + #: instances/templates/instances/destroy_instance_form.html:3 #: instances/templates/instances/destroy_instance_form.html:6 #, python-format @@ -4083,7 +4099,7 @@ msgid "Edit %(dev)s" msgstr "Düzenle: %(dev)s" #: instances/templates/instances/edit_instance_volume.html:18 -#: instances/templates/instances/settings_tab.html:376 +#: instances/templates/instances/settings_tab.html:364 msgid "The VM is running: the changes apply at its next start." msgstr "" "Sanal makine çalışıyor: değişiklikler bir sonraki başlatmada uygulanır." @@ -4094,12 +4110,12 @@ msgid "Volume path" msgstr "Birim yolu" #: instances/templates/instances/edit_instance_volume.html:30 -#: instances/templates/instances/settings_tab.html:275 +#: instances/templates/instances/settings_tab.html:263 msgid "Read-only" msgstr "Salt okunur" #: instances/templates/instances/edit_instance_volume.html:34 -#: instances/templates/instances/settings_tab.html:276 +#: instances/templates/instances/settings_tab.html:264 msgid "Shareable" msgstr "Paylaşılabilir" @@ -4112,7 +4128,7 @@ msgid "Default leaves the setting to libvirt." msgstr "Varsayılan, ayarı libvirt'e bırakır." #: instances/templates/instances/edit_instance_volume.html:53 -#: instances/templates/instances/settings_tab.html:271 +#: instances/templates/instances/settings_tab.html:259 msgid "IO mode" msgstr "GÇ modu" @@ -4121,12 +4137,12 @@ msgid "Discard mode" msgstr "Diskard modu" #: instances/templates/instances/edit_instance_volume.html:69 -#: instances/templates/instances/settings_tab.html:273 +#: instances/templates/instances/settings_tab.html:261 msgid "Detect zeroes" msgstr "Sıfırları yakala" #: instances/templates/instances/edit_instance_volume.html:82 -#: instances/templates/instances/settings_tab.html:274 +#: instances/templates/instances/settings_tab.html:262 msgid "Serial" msgstr "Seri" @@ -4356,13 +4372,13 @@ msgstr "" "makine ya da birim kullanmıyorsa %(path)s silinir." #: instances/templates/instances/nic_qos_form.html:3 -#: instances/templates/instances/settings_tab.html:353 +#: instances/templates/instances/settings_tab.html:341 #: networks/templates/network.html:291 msgid "inbound" msgstr "gelen" #: instances/templates/instances/nic_qos_form.html:3 -#: instances/templates/instances/settings_tab.html:353 +#: instances/templates/instances/settings_tab.html:341 #: networks/templates/network.html:291 msgid "outbound" msgstr "giden" @@ -4421,7 +4437,7 @@ msgstr "" #: instances/templates/instances/power_tab.html:12 #, python-format msgid "The VM's state: %(state)s" -msgstr "VM'in durumu: %(state)s" +msgstr "Sanal makinenin durumu: %(state)s" #: instances/templates/instances/power_tab.html:19 #: instances/templates/instances/power_tab.html:35 @@ -4435,7 +4451,7 @@ msgstr "Başlat" #: instances/templates/instances/power_tab.html:26 msgid "Starts the VM." -msgstr "VM'i başlatır." +msgstr "Sanal makineyi başlatır." #: instances/templates/instances/power_tab.html:29 msgid "Lets it run on." @@ -4562,17 +4578,17 @@ msgstr "" "sağlar." #: instances/templates/instances/resize_tab.html:102 -#: instances/templates/instances/settings_tab.html:925 +#: instances/templates/instances/settings_tab.html:913 msgid "Shut the VM down to change this." msgstr "Bunu değiştirmek için sanal makineyi kapatın." #: instances/templates/instances/resize_tab.html:109 -#: instances/templates/instances/settings_tab.html:1032 +#: instances/templates/instances/settings_tab.html:1020 msgid "Enabled" msgstr "Etkin" #: instances/templates/instances/resize_tab.html:110 -#: instances/templates/instances/settings_tab.html:1033 +#: instances/templates/instances/settings_tab.html:1021 msgid "Disabled" msgstr "Devredışı" @@ -4632,7 +4648,7 @@ msgstr "" "sistem bölümünü ve dosya sistemini büyütür." #: instances/templates/instances/resize_tab.html:178 -#: instances/templates/instances/settings_tab.html:223 +#: instances/templates/instances/settings_tab.html:211 msgid "Error getting disk info" msgstr "Disk bilgisi elde edilirken hata" @@ -4646,7 +4662,7 @@ msgid "Boot" msgstr "Ön Yükleme" #: instances/templates/instances/settings_tab.html:39 -#: instances/templates/instances/settings_tab.html:804 +#: instances/templates/instances/settings_tab.html:792 #: instances/templates/instances/stats_tab.html:44 #: networks/templates/network.html:6 networks/templates/network.html:8 #: networks/templates/network.html:48 @@ -4658,8 +4674,8 @@ msgid "Host devices" msgstr "Sunucu aygıtları" #: instances/templates/instances/settings_tab.html:60 -#: instances/templates/instances/settings_tab.html:619 -#: instances/templates/instances/settings_tab.html:622 +#: instances/templates/instances/settings_tab.html:607 +#: instances/templates/instances/settings_tab.html:610 msgid "Migrate" msgstr "Taşı" @@ -4677,65 +4693,61 @@ msgstr "" "Sanal makine çalışırken buradaki ayarların çoğu bir sonraki başlatmada " "uygulanır." -#: instances/templates/instances/settings_tab.html:96 +#: instances/templates/instances/settings_tab.html:97 +msgid "Boot order" +msgstr "Ön yükleme sırası" + +#: instances/templates/instances/settings_tab.html:98 +msgid "" +"When the VM starts it tries these devices in turn and boots from the first " +"that works." +msgstr "" +"Sanal makine açılırken bu aygıtları sırayla dener ve çalışan ilkinden açılır." + +#: instances/templates/instances/settings_tab.html:105 +#, python-format +msgid "" +"The VM boots by device type: %(types)s. Add a device to choose the order " +"yourself." +msgstr "" +"Sanal makine aygıt türüne göre açılıyor: %(types)s. Sırayı kendiniz seçmek " +"için bir aygıt ekleyin." + +#: instances/templates/instances/settings_tab.html:106 +msgid "No device is in the boot order. Add one." +msgstr "Ön yükleme sırasında aygıt yok. Bir aygıt ekleyin." + +#: instances/templates/instances/settings_tab.html:108 +msgid "Not in the boot order" +msgstr "Ön yükleme sırasında değil" + +#: instances/templates/instances/settings_tab.html:112 +msgid "Save order" +msgstr "Sırayı kaydet" + +#: instances/templates/instances/settings_tab.html:116 msgid "Startup settings" msgstr "Başlangıç ayarları" -#: instances/templates/instances/settings_tab.html:102 +#: instances/templates/instances/settings_tab.html:121 #: networks/templates/network.html:54 networks/templates/networks.html:31 #: storages/templates/storage.html:95 storages/templates/storages.html:35 msgid "Autostart" msgstr "Otomatik başlat" -#: instances/templates/instances/settings_tab.html:104 +#: instances/templates/instances/settings_tab.html:123 msgid "Start this VM when the host starts." msgstr "Sunucu başladığında bu sanal makineyi başlat." -#: instances/templates/instances/settings_tab.html:111 +#: instances/templates/instances/settings_tab.html:128 msgid "Boot menu" msgstr "Ön yükleme menüsü" -#: instances/templates/instances/settings_tab.html:113 +#: instances/templates/instances/settings_tab.html:130 msgid "Show a device chooser when the VM starts." msgstr "Sanal makine başlarken aygıt seçiciyi göster." -#: instances/templates/instances/settings_tab.html:119 -msgid "Boot order" -msgstr "Ön yükleme sırası" - -#: instances/templates/instances/settings_tab.html:120 -msgid "" -"Checked devices boot from top to bottom. Up and Down move all checked " -"devices." -msgstr "" -"İşaretli aygıtlar yukarıdan aşağıya doğru ön yüklenir. Yukarı ve Aşağı tüm " -"işaretli aygıtları taşır." - -#: instances/templates/instances/settings_tab.html:123 -msgid "The VM now boots by device type:" -msgstr "Sanal makine şu anda aygıt türüne göre ön yükleniyor:" - -#: instances/templates/instances/settings_tab.html:125 -msgid "Checking devices replaces this order." -msgstr "Aygıtları işaretlemek bu sıranın yerini alır." - -#: instances/templates/instances/settings_tab.html:135 -msgid "empty" -msgstr "boş" - -#: instances/templates/instances/settings_tab.html:140 -msgid "Up" -msgstr "Yukarı" - -#: instances/templates/instances/settings_tab.html:141 -msgid "Down" -msgstr "Aşağı" - -#: instances/templates/instances/settings_tab.html:142 -msgid "Apply order" -msgstr "Sırayı uygula" - -#: instances/templates/instances/settings_tab.html:150 +#: instances/templates/instances/settings_tab.html:138 msgid "" "The VM is running: CD-ROM drives added now use the USB or SCSI bus. Shut it " "down to detach a SATA or IDE CD-ROM drive, or to detach or delete disks." @@ -4744,11 +4756,11 @@ msgstr "" "yolunu kullanır. SATA veya IDE bir CD-ROM sürücüsünü ayırmak ya da diskleri " "ayırmak veya silmek için sanal makineyi kapatın." -#: instances/templates/instances/settings_tab.html:154 +#: instances/templates/instances/settings_tab.html:142 msgid "Removable media" msgstr "Çıkarılabilir ortam" -#: instances/templates/instances/settings_tab.html:158 +#: instances/templates/instances/settings_tab.html:146 msgid "" "Read the storage pools again: an ISO image copied to a pool by hand is listed" " then" @@ -4756,119 +4768,119 @@ msgstr "" "Depolama havuzlarını yeniden oku: bir havuza elle kopyalanan ISO imajı " "böylece listelenir" -#: instances/templates/instances/settings_tab.html:158 +#: instances/templates/instances/settings_tab.html:146 msgid "Refresh ISO list" msgstr "ISO listesini yenile" -#: instances/templates/instances/settings_tab.html:176 -#: instances/templates/instances/settings_tab.html:255 +#: instances/templates/instances/settings_tab.html:164 +#: instances/templates/instances/settings_tab.html:243 msgid "Detach" msgstr "Ayır" -#: instances/templates/instances/settings_tab.html:183 +#: instances/templates/instances/settings_tab.html:171 msgid "Unmount" msgstr "Ayır" -#: instances/templates/instances/settings_tab.html:197 +#: instances/templates/instances/settings_tab.html:185 msgid "Mount" msgstr "Bağla" -#: instances/templates/instances/settings_tab.html:204 +#: instances/templates/instances/settings_tab.html:192 msgid "The VM has no CD-ROM drive." msgstr "Sanal makinenin CD-ROM sürücüsü yok." -#: instances/templates/instances/settings_tab.html:229 +#: instances/templates/instances/settings_tab.html:217 #: storages/templates/storage.html:125 msgid "Capacity" msgstr "Kapasite" -#: instances/templates/instances/settings_tab.html:230 +#: instances/templates/instances/settings_tab.html:218 #, python-format msgid "%(used)s used" msgstr "%(used)s kullanılıyor" -#: instances/templates/instances/settings_tab.html:232 +#: instances/templates/instances/settings_tab.html:220 #, python-format msgid "%(dev)s used" msgstr "%(dev)s kullanılıyor" -#: instances/templates/instances/settings_tab.html:240 +#: instances/templates/instances/settings_tab.html:228 msgid "Edit instance volume form" msgstr "Sanal makine birimi düzenleme formu" -#: instances/templates/instances/settings_tab.html:255 +#: instances/templates/instances/settings_tab.html:243 #, python-format msgid "Detach %(dev)s? Its file is kept." msgstr "%(dev)s ayrılsın mı? Dosyası korunur." -#: instances/templates/instances/settings_tab.html:263 +#: instances/templates/instances/settings_tab.html:251 #, python-format msgid "Delete %(dev)s? It is detached and its file and data are removed." msgstr "%(dev)s silinsin mi? Ayrılır, dosyası ve verileri kaldırılır." -#: instances/templates/instances/settings_tab.html:268 -#: instances/templates/instances/settings_tab.html:343 +#: instances/templates/instances/settings_tab.html:256 +#: instances/templates/instances/settings_tab.html:331 msgid "Device details" msgstr "Aygıt ayrıntıları" -#: instances/templates/instances/settings_tab.html:270 +#: instances/templates/instances/settings_tab.html:258 msgid "Cache" msgstr "Önbellek" -#: instances/templates/instances/settings_tab.html:272 +#: instances/templates/instances/settings_tab.html:260 msgid "Discard" msgstr "Discard" -#: instances/templates/instances/settings_tab.html:288 +#: instances/templates/instances/settings_tab.html:276 #, python-format msgid "PCIe slots: %(free)s free of %(total)s" msgstr "PCIe yuvaları: %(total)s yuvadan %(free)s boş" -#: instances/templates/instances/settings_tab.html:288 +#: instances/templates/instances/settings_tab.html:276 #, python-format msgid "%(next_free)s free from the next start" msgstr "sonraki başlatmadan itibaren %(next_free)s boş" -#: instances/templates/instances/settings_tab.html:292 +#: instances/templates/instances/settings_tab.html:280 msgid "Add PCIe slots" msgstr "PCIe yuvası ekle" -#: instances/templates/instances/settings_tab.html:304 +#: instances/templates/instances/settings_tab.html:292 msgid "Network devices" msgstr "Ağ aygıtları" -#: instances/templates/instances/settings_tab.html:314 +#: instances/templates/instances/settings_tab.html:302 msgid "no target" msgstr "hedef yok" -#: instances/templates/instances/settings_tab.html:318 -#: instances/templates/instances/settings_tab.html:349 +#: instances/templates/instances/settings_tab.html:306 +#: instances/templates/instances/settings_tab.html:337 msgid "unknown" msgstr "bilinmiyor" -#: instances/templates/instances/settings_tab.html:319 +#: instances/templates/instances/settings_tab.html:307 msgid "Link state form" msgstr "Bağlantı durumu formu" -#: instances/templates/instances/settings_tab.html:324 +#: instances/templates/instances/settings_tab.html:312 #: interfaces/templates/link_badge.html:1 msgid "Link up" msgstr "Bağlantı açık" -#: instances/templates/instances/settings_tab.html:324 +#: instances/templates/instances/settings_tab.html:312 #: interfaces/templates/link_badge.html:1 msgid "Link down" msgstr "Bağlantı kapalı" -#: instances/templates/instances/settings_tab.html:333 +#: instances/templates/instances/settings_tab.html:321 msgid "Add QoS" msgstr "QoS ekle" -#: instances/templates/instances/settings_tab.html:335 +#: instances/templates/instances/settings_tab.html:323 msgid "Delete network device form" msgstr "Ağ aygıtı silme formu" -#: instances/templates/instances/settings_tab.html:337 +#: instances/templates/instances/settings_tab.html:325 #, python-format msgid "" "Remove network card %(mac)s? A running VM loses its connection through it at " @@ -4877,7 +4889,7 @@ msgstr "" "%(mac)s ağ kartı kaldırılsın mı? Çalışan bir sanal makine bu kart üzerinden " "bağlantısını hemen kaybeder." -#: instances/templates/instances/settings_tab.html:345 +#: instances/templates/instances/settings_tab.html:333 #: interfaces/templates/create_iface_block.html:26 #: interfaces/templates/interface.html:43 #: interfaces/templates/interface.html:120 @@ -4889,19 +4901,19 @@ msgstr "" msgid "Type" msgstr "Tip" -#: instances/templates/instances/settings_tab.html:349 +#: instances/templates/instances/settings_tab.html:337 msgid "IPv6" msgstr "IPv6" -#: instances/templates/instances/settings_tab.html:353 +#: instances/templates/instances/settings_tab.html:341 msgid "QoS limits" msgstr "QoS sınırları" -#: instances/templates/instances/settings_tab.html:353 +#: instances/templates/instances/settings_tab.html:341 msgid "inbound, outbound" msgstr "gelen, giden" -#: instances/templates/instances/settings_tab.html:356 +#: instances/templates/instances/settings_tab.html:344 msgid "" "Average and peak are in KiB/s, burst in KiB. A running VM gets a change after" " it is powered off and on." @@ -4909,7 +4921,7 @@ msgstr "" "Ortalama ve tepe KiB/s, ani yük KiB cinsindendir. Çalışan bir sanal makine " "değişikliği kapatılıp açıldıktan sonra alır." -#: instances/templates/instances/settings_tab.html:359 +#: instances/templates/instances/settings_tab.html:347 msgid "" "In most configurations, macvtap does not work for host to guest network " "communication" @@ -4917,25 +4929,25 @@ msgstr "" "macvtap birçok yapılandırmada sunucu ile sanal makine ağı arasındaki " "iletişimde çalışmaz" -#: instances/templates/instances/settings_tab.html:369 +#: instances/templates/instances/settings_tab.html:357 #, python-format msgid "Edit eth%(nic)s" msgstr "eth%(nic)s düzenle" -#: instances/templates/instances/settings_tab.html:384 +#: instances/templates/instances/settings_tab.html:372 #, python-format msgid "%(nic)s, as it is" msgstr "%(nic)s, olduğu gibi" -#: instances/templates/instances/settings_tab.html:429 +#: instances/templates/instances/settings_tab.html:417 msgid "Add network QoS form" msgstr "Ağ QoS ekleme formu" -#: instances/templates/instances/settings_tab.html:435 +#: instances/templates/instances/settings_tab.html:423 msgid "The VM has no network device." msgstr "Sanal makinenin ağ aygıtı yok." -#: instances/templates/instances/settings_tab.html:443 +#: instances/templates/instances/settings_tab.html:431 msgid "" "Devices of the host given to the VM. The VM starts only on a host that has " "them; it is not migrated while it has them, and its clones get none." @@ -4944,130 +4956,130 @@ msgstr "" "sahip bir sunucuda başlar; bunlara sahipken taşınmaz ve klonları bunları " "almaz." -#: instances/templates/instances/settings_tab.html:446 +#: instances/templates/instances/settings_tab.html:434 msgid "The host's devices could not be read." msgstr "Sunucunun aygıtları okunamadı." -#: instances/templates/instances/settings_tab.html:447 +#: instances/templates/instances/settings_tab.html:435 msgid "Reading the host's devices…" msgstr "Sunucunun aygıtları okunuyor…" -#: instances/templates/instances/settings_tab.html:455 +#: instances/templates/instances/settings_tab.html:443 msgid "USB device" msgstr "USB aygıtı" -#: instances/templates/instances/settings_tab.html:456 +#: instances/templates/instances/settings_tab.html:444 msgid "Chosen by" msgstr "Seçim ölçütü" -#: instances/templates/instances/settings_tab.html:457 -#: instances/templates/instances/settings_tab.html:492 +#: instances/templates/instances/settings_tab.html:445 +#: instances/templates/instances/settings_tab.html:480 msgid "Running VM" msgstr "Çalışan sanal makine" -#: instances/templates/instances/settings_tab.html:458 -#: instances/templates/instances/settings_tab.html:493 +#: instances/templates/instances/settings_tab.html:446 +#: instances/templates/instances/settings_tab.html:481 msgid "Next start" msgstr "Sonraki başlatma" -#: instances/templates/instances/settings_tab.html:466 +#: instances/templates/instances/settings_tab.html:454 #, python-format msgid "Its address %(bus)s/%(device)s" msgstr "Adresi %(bus)s/%(device)s" -#: instances/templates/instances/settings_tab.html:466 +#: instances/templates/instances/settings_tab.html:454 msgid "Its model: any device of it" msgstr "Modeli: bu modelin herhangi bir aygıtı" -#: instances/templates/instances/settings_tab.html:467 +#: instances/templates/instances/settings_tab.html:455 #, python-format msgid "Has %(bus)s/%(device)s" msgstr "%(bus)s/%(device)s üzerinde" -#: instances/templates/instances/settings_tab.html:468 -#: instances/templates/instances/settings_tab.html:502 +#: instances/templates/instances/settings_tab.html:456 +#: instances/templates/instances/settings_tab.html:490 msgid "Yes" msgstr "Evet" -#: instances/templates/instances/settings_tab.html:468 -#: instances/templates/instances/settings_tab.html:502 +#: instances/templates/instances/settings_tab.html:456 +#: instances/templates/instances/settings_tab.html:490 msgid "No" msgstr "Hayır" -#: instances/templates/instances/settings_tab.html:475 +#: instances/templates/instances/settings_tab.html:463 msgid "Remove the USB device" msgstr "USB aygıtını kaldır" -#: instances/templates/instances/settings_tab.html:476 +#: instances/templates/instances/settings_tab.html:464 msgid "Remove this USB device from the VM? A running VM loses it at once." msgstr "" "Bu USB aygıtı sanal makineden kaldırılsın mı? Çalışan bir sanal makine onu " "hemen kaybeder." -#: instances/templates/instances/settings_tab.html:491 +#: instances/templates/instances/settings_tab.html:479 msgid "PCI device" msgstr "PCI aygıtı" -#: instances/templates/instances/settings_tab.html:501 +#: instances/templates/instances/settings_tab.html:489 msgid "Has it" msgstr "Var" -#: instances/templates/instances/settings_tab.html:507 +#: instances/templates/instances/settings_tab.html:495 msgid "Remove the PCI device" msgstr "PCI aygıtını kaldır" -#: instances/templates/instances/settings_tab.html:508 +#: instances/templates/instances/settings_tab.html:496 msgid "A paused VM, or one with a saved state, does not change its PCI devices" msgstr "" "Duraklatılmış ya da durumu kaydedilmiş bir sanal makinenin PCI aygıtları " "değiştirilemez" -#: instances/templates/instances/settings_tab.html:509 +#: instances/templates/instances/settings_tab.html:497 msgid "" "Remove this PCI device from the VM? A running VM's guest has to let it go." msgstr "" "Bu PCI aygıtı sanal makineden kaldırılsın mı? Çalışan bir sanal makinede " "konuk sistemin aygıtı bırakması gerekir." -#: instances/templates/instances/settings_tab.html:521 +#: instances/templates/instances/settings_tab.html:509 msgid "Network interface" msgstr "Ağ arabirimi" -#: instances/templates/instances/settings_tab.html:522 +#: instances/templates/instances/settings_tab.html:510 msgid "running VM and next start" msgstr "çalışan sanal makine ve sonraki başlatma" -#: instances/templates/instances/settings_tab.html:522 +#: instances/templates/instances/settings_tab.html:510 msgid "running VM only" msgstr "yalnızca çalışan sanal makine" -#: instances/templates/instances/settings_tab.html:522 +#: instances/templates/instances/settings_tab.html:510 msgid "next start only" msgstr "yalnızca sonraki başlatmada" -#: instances/templates/instances/settings_tab.html:522 +#: instances/templates/instances/settings_tab.html:510 msgid "changed in the XML editor" msgstr "XML düzenleyicide değiştirilir" -#: instances/templates/instances/settings_tab.html:526 +#: instances/templates/instances/settings_tab.html:514 msgid "The VM has no host devices." msgstr "Sanal makinenin sunucu aygıtı yok." -#: instances/templates/instances/settings_tab.html:533 +#: instances/templates/instances/settings_tab.html:521 msgid "Migration route" msgstr "Taşıma yolu" -#: instances/templates/instances/settings_tab.html:536 +#: instances/templates/instances/settings_tab.html:524 #: networks/templates/network.html:393 msgid "From" msgstr "Başlangıç" -#: instances/templates/instances/settings_tab.html:541 +#: instances/templates/instances/settings_tab.html:529 #: networks/templates/network.html:397 msgid "To" msgstr "Bitiş" -#: instances/templates/instances/settings_tab.html:550 +#: instances/templates/instances/settings_tab.html:538 msgid "" "The VM is running: it migrates live, or paused for the transfer when Live " "migration is off." @@ -5075,15 +5087,15 @@ msgstr "" "Sanal makine çalışıyor: canlı taşınır, Canlı olarak taşı kapalıysa aktarım " "süresince duraklatılır." -#: instances/templates/instances/settings_tab.html:551 +#: instances/templates/instances/settings_tab.html:539 msgid "The VM is paused: it stays paused on the destination." msgstr "Sanal makine duraklatılmış: hedefte de duraklatılmış kalır." -#: instances/templates/instances/settings_tab.html:552 +#: instances/templates/instances/settings_tab.html:540 msgid "The VM is shut off: it moves offline." msgstr "Sanal makine kapalı: çevrimdışı taşınır." -#: instances/templates/instances/settings_tab.html:553 +#: instances/templates/instances/settings_tab.html:541 msgid "" "Both hosts need the same emulator; the VM's definition leaves the source " "host." @@ -5091,35 +5103,35 @@ msgstr "" "İki sunucuda da aynı emülatör olmalıdır; sanal makinenin tanımı kaynak " "sunucudan kaldırılır." -#: instances/templates/instances/settings_tab.html:562 +#: instances/templates/instances/settings_tab.html:550 msgid "Checking the hosts…" msgstr "Sunucular denetleniyor…" -#: instances/templates/instances/settings_tab.html:562 +#: instances/templates/instances/settings_tab.html:550 msgid "The hosts could not be checked." msgstr "Sunucular denetlenemedi." -#: instances/templates/instances/settings_tab.html:563 +#: instances/templates/instances/settings_tab.html:551 msgid "No host can take the VM now." msgstr "Şu anda sanal makineyi alabilecek sunucu yok." -#: instances/templates/instances/settings_tab.html:563 +#: instances/templates/instances/settings_tab.html:551 msgid "Checking the disks…" msgstr "Diskler denetleniyor…" -#: instances/templates/instances/settings_tab.html:564 +#: instances/templates/instances/settings_tab.html:552 msgid "The disks could not be checked." msgstr "Diskler denetlenemedi." -#: instances/templates/instances/settings_tab.html:569 +#: instances/templates/instances/settings_tab.html:557 msgid "Transfer settings" msgstr "Aktarım ayarları" -#: instances/templates/instances/settings_tab.html:575 +#: instances/templates/instances/settings_tab.html:563 msgid "Live migration" msgstr "Canlı olarak taşı" -#: instances/templates/instances/settings_tab.html:577 +#: instances/templates/instances/settings_tab.html:565 msgid "" "The VM keeps running while its memory is copied. Off, it is paused for the " "transfer." @@ -5127,11 +5139,11 @@ msgstr "" "Belleği kopyalanırken sanal makine çalışmaya devam eder. Kapalıysa aktarım " "süresince duraklatılır." -#: instances/templates/instances/settings_tab.html:584 +#: instances/templates/instances/settings_tab.html:572 msgid "Auto converge" msgstr "Otomatik yavaşlat" -#: instances/templates/instances/settings_tab.html:586 +#: instances/templates/instances/settings_tab.html:574 msgid "" "Slows the guest's CPUs so that a busy VM's live migration can finish. Only " "with Live migration." @@ -5139,21 +5151,21 @@ msgstr "" "Yoğun bir sanal makinenin canlı taşımasının bitebilmesi için konuk sistemin " "CPU'larını yavaşlatır. Yalnızca canlı taşımada." -#: instances/templates/instances/settings_tab.html:591 +#: instances/templates/instances/settings_tab.html:579 msgid "Compressed" msgstr "Sıkıştırılmış" -#: instances/templates/instances/settings_tab.html:593 +#: instances/templates/instances/settings_tab.html:581 msgid "Compresses the memory sent: less network, more CPU on both hosts." msgstr "" "Gönderilen belleği sıkıştırır: daha az ağ trafiği, iki sunucuda da daha fazla" " CPU." -#: instances/templates/instances/settings_tab.html:598 +#: instances/templates/instances/settings_tab.html:586 msgid "Unsafe migration" msgstr "Güvensiz şekilde taşı" -#: instances/templates/instances/settings_tab.html:600 +#: instances/templates/instances/settings_tab.html:588 msgid "" "Skips libvirt's safety checks, such as a disk cache mode that can corrupt " "data in a migration." @@ -5161,11 +5173,11 @@ msgstr "" "libvirt'in güvenlik denetimlerini atlar; örneğin taşımada veriyi bozabilecek " "bir disk önbellek modu." -#: instances/templates/instances/settings_tab.html:606 +#: instances/templates/instances/settings_tab.html:594 msgid "Delete the source files of copied disks" msgstr "Kopyalanan disklerin kaynak dosyalarını sil" -#: instances/templates/instances/settings_tab.html:608 +#: instances/templates/instances/settings_tab.html:596 msgid "" "After a migration that copied disks, their files on the source host go. Disks" " on shared storage stay." @@ -5173,22 +5185,22 @@ msgstr "" "Diskleri kopyalayan bir taşımadan sonra kaynak sunucudaki dosyaları silinir. " "Paylaşımlı depolamadaki diskler kalır." -#: instances/templates/instances/settings_tab.html:617 +#: instances/templates/instances/settings_tab.html:605 msgid "Migration runs as a background job." msgstr "Taşıma arka planda bir iş olarak çalışır." -#: instances/templates/instances/settings_tab.html:631 +#: instances/templates/instances/settings_tab.html:619 msgid "" "This is the definition for the VM's next start; a saved change applies then." msgstr "" "Bu, sanal makinenin sonraki başlatmasındaki tanımdır; kaydedilen değişiklik o" " zaman uygulanır." -#: instances/templates/instances/settings_tab.html:638 +#: instances/templates/instances/settings_tab.html:626 msgid "Review changes" msgstr "Değişiklikleri incele" -#: instances/templates/instances/settings_tab.html:642 +#: instances/templates/instances/settings_tab.html:630 msgid "" "The request did not go through; your edit is still in the editor. Try again, " "or copy it and reload the page." @@ -5196,19 +5208,19 @@ msgstr "" "İstek iletilemedi; düzenlemeniz hâlâ düzenleyicide. Yeniden deneyin ya da " "kopyalayıp sayfayı yeniden yükleyin." -#: instances/templates/instances/settings_tab.html:646 +#: instances/templates/instances/settings_tab.html:634 msgid "Review the XML change" msgstr "XML değişikliğini incele" -#: instances/templates/instances/settings_tab.html:651 +#: instances/templates/instances/settings_tab.html:639 msgid "The XML is the same as the VM's definition; there is nothing to save." msgstr "XML, sanal makinenin tanımıyla aynı; kaydedilecek bir şey yok." -#: instances/templates/instances/settings_tab.html:665 +#: instances/templates/instances/settings_tab.html:653 msgid "Instance owners" msgstr "Sanal makine sahipleri" -#: instances/templates/instances/settings_tab.html:668 +#: instances/templates/instances/settings_tab.html:656 msgid "" "Every owner can power the VM and open its console. A new owner has no other " "right until it is given one." @@ -5216,19 +5228,19 @@ msgstr "" "Her sahip sanal makineyi açıp kapatabilir ve konsolunu açabilir. Yeni bir " "sahibin, verilene kadar başka bir hakkı yoktur." -#: instances/templates/instances/settings_tab.html:686 +#: instances/templates/instances/settings_tab.html:674 msgid "Edit rights" msgstr "Hakları düzenle" -#: instances/templates/instances/settings_tab.html:695 +#: instances/templates/instances/settings_tab.html:683 msgid "The VM has no owner: only administrators can use it." msgstr "Sanal makinenin sahibi yok: yalnızca yöneticiler kullanabilir." -#: instances/templates/instances/settings_tab.html:702 +#: instances/templates/instances/settings_tab.html:690 msgid "Console settings" msgstr "Konsol ayarları" -#: instances/templates/instances/settings_tab.html:704 +#: instances/templates/instances/settings_tab.html:692 msgid "" "The running console keeps its current settings; changes here apply after the " "VM is shut down and started." @@ -5236,39 +5248,39 @@ msgstr "" "Çalışan konsol mevcut ayarlarını korur; buradaki değişiklikler sanal makine " "kapatılıp başlatıldıktan sonra uygulanır." -#: instances/templates/instances/settings_tab.html:711 +#: instances/templates/instances/settings_tab.html:699 msgid "The settings below apply to a VNC console." msgstr "Aşağıdaki ayarlar VNC konsolu için geçerlidir." -#: instances/templates/instances/settings_tab.html:713 +#: instances/templates/instances/settings_tab.html:701 msgid "The VNC settings appear once the console type VNC is saved." msgstr "VNC ayarları, konsol tipi VNC olarak kaydedildiğinde görünür." -#: instances/templates/instances/settings_tab.html:721 +#: instances/templates/instances/settings_tab.html:709 msgid "VNC connection" msgstr "VNC bağlantısı" -#: instances/templates/instances/settings_tab.html:726 +#: instances/templates/instances/settings_tab.html:714 msgid "Only administrators can change this." msgstr "Bunu yalnızca yöneticiler değiştirebilir." -#: instances/templates/instances/settings_tab.html:726 +#: instances/templates/instances/settings_tab.html:714 msgid "Beyond localhost the console is reachable from the network." msgstr "localhost dışında konsola ağdan erişilebilir." -#: instances/templates/instances/settings_tab.html:737 +#: instances/templates/instances/settings_tab.html:725 msgid "VNC password" msgstr "VNC parolası" -#: instances/templates/instances/settings_tab.html:740 +#: instances/templates/instances/settings_tab.html:728 msgid "A password is set." msgstr "Parola ayarlanmış." -#: instances/templates/instances/settings_tab.html:740 +#: instances/templates/instances/settings_tab.html:728 msgid "No password is set." msgstr "Parola ayarlanmamış." -#: instances/templates/instances/settings_tab.html:750 +#: instances/templates/instances/settings_tab.html:738 msgid "" "Up to 8 characters (an accented letter counts as two), used with \"Set a new " "one\"." @@ -5276,20 +5288,20 @@ msgstr "" "En fazla 8 karakter (aksanlı bir harf iki sayılır), \"Yenisini belirle\" ile " "kullanılır." -#: instances/templates/instances/settings_tab.html:757 +#: instances/templates/instances/settings_tab.html:745 msgid "Save console settings" msgstr "Konsol ayarlarını kaydet" -#: instances/templates/instances/settings_tab.html:766 +#: instances/templates/instances/settings_tab.html:754 msgid "Create a clone" msgstr "Bir klon oluştur" -#: instances/templates/instances/settings_tab.html:767 +#: instances/templates/instances/settings_tab.html:755 #, python-format msgid "Source VM: %(name)s" msgstr "Kaynak sanal makine: %(name)s" -#: instances/templates/instances/settings_tab.html:769 +#: instances/templates/instances/settings_tab.html:757 msgid "" "The clone gets a new, empty TPM: keys in this VM's TPM, such as BitLocker's, " "do not come along." @@ -5297,69 +5309,69 @@ msgstr "" "Klon yeni ve boş bir TPM alır: bu sanal makinenin TPM'indeki anahtarlar, " "örneğin BitLocker'ınkiler, klona geçmez." -#: instances/templates/instances/settings_tab.html:774 -#: instances/templates/instances/settings_tab.html:787 -#: instances/templates/instances/settings_tab.html:790 +#: instances/templates/instances/settings_tab.html:762 +#: instances/templates/instances/settings_tab.html:775 +#: instances/templates/instances/settings_tab.html:778 msgid "Clone name" msgstr "Klon adı" -#: instances/templates/instances/settings_tab.html:782 -#: instances/templates/instances/settings_tab.html:814 +#: instances/templates/instances/settings_tab.html:770 +#: instances/templates/instances/settings_tab.html:802 msgid "Guess" msgstr "Tahmin" -#: instances/templates/instances/settings_tab.html:785 +#: instances/templates/instances/settings_tab.html:773 msgid "The DHCP file has no free name to suggest." msgstr "DHCP dosyasında önerilecek boş ad yok." -#: instances/templates/instances/settings_tab.html:788 +#: instances/templates/instances/settings_tab.html:776 msgid "Automatic" msgstr "Otomatik" -#: instances/templates/instances/settings_tab.html:808 +#: instances/templates/instances/settings_tab.html:796 msgid "New MAC address" msgstr "Yeni MAC adresi" -#: instances/templates/instances/settings_tab.html:811 +#: instances/templates/instances/settings_tab.html:799 msgid "Random" msgstr "Rastgele" -#: instances/templates/instances/settings_tab.html:829 +#: instances/templates/instances/settings_tab.html:817 #, python-format msgid "Pool: %(pool)s" msgstr "Havuz: %(pool)s" -#: instances/templates/instances/settings_tab.html:830 +#: instances/templates/instances/settings_tab.html:818 msgid "New volume name" msgstr "Yeni birim adı" -#: instances/templates/instances/settings_tab.html:836 +#: instances/templates/instances/settings_tab.html:824 msgid "Preallocate qcow2 metadata" msgstr "qcow2 meta verisini önceden ayır" -#: instances/templates/instances/settings_tab.html:841 +#: instances/templates/instances/settings_tab.html:829 msgid "The VM has no disk to copy." msgstr "Sanal makinenin kopyalanacak diski yok." -#: instances/templates/instances/settings_tab.html:860 +#: instances/templates/instances/settings_tab.html:848 msgid "The VM's size to start from; the quota counts the larger of the two." msgstr "" "Başlangıç olarak sanal makinenin boyutu; kota ikisinden büyük olanı sayar." -#: instances/templates/instances/settings_tab.html:863 +#: instances/templates/instances/settings_tab.html:851 msgid "Start the clone when it is made" msgstr "Klon oluşturulunca başlat" -#: instances/templates/instances/settings_tab.html:867 +#: instances/templates/instances/settings_tab.html:855 msgid "Optional details" msgstr "İsteğe bağlı ayrıntılar" -#: instances/templates/instances/settings_tab.html:868 -#: instances/templates/instances/settings_tab.html:900 +#: instances/templates/instances/settings_tab.html:856 +#: instances/templates/instances/settings_tab.html:888 msgid "Title" msgstr "Başlık" -#: instances/templates/instances/settings_tab.html:875 +#: instances/templates/instances/settings_tab.html:863 msgid "" "The clone gets none of the VM's host devices: one VM holds a device of the " "host." @@ -5367,46 +5379,46 @@ msgstr "" "Klon, sanal makinenin sunucu aygıtlarını almaz: bir sunucu aygıtını tek bir " "sanal makine tutar." -#: instances/templates/instances/settings_tab.html:878 +#: instances/templates/instances/settings_tab.html:866 msgid "Cloning runs as a background job." msgstr "Klonlama arka planda bir iş olarak çalışır." -#: instances/templates/instances/settings_tab.html:896 +#: instances/templates/instances/settings_tab.html:884 msgid "VM details" msgstr "Sanal makine ayrıntıları" -#: instances/templates/instances/settings_tab.html:897 +#: instances/templates/instances/settings_tab.html:885 msgid "A title and description to identify the VM." msgstr "Sanal makineyi tanımlamak için bir başlık ve açıklama." -#: instances/templates/instances/settings_tab.html:914 +#: instances/templates/instances/settings_tab.html:902 msgid "" "A template is a VM to clone: it is not counted in quotas and cannot be " "started." msgstr "" "Şablon, klonlanacak bir sanal makinedir: kotalarda sayılmaz ve başlatılamaz." -#: instances/templates/instances/settings_tab.html:921 +#: instances/templates/instances/settings_tab.html:909 msgid "Use as a template" msgstr "Şablon olarak kullan" -#: instances/templates/instances/settings_tab.html:924 +#: instances/templates/instances/settings_tab.html:912 msgid "Only administrators and staff can change this." msgstr "Bunu yalnızca yöneticiler ve personel değiştirebilir." -#: instances/templates/instances/settings_tab.html:934 +#: instances/templates/instances/settings_tab.html:922 msgid "Primary video model" msgstr "Birincil video modeli" -#: instances/templates/instances/settings_tab.html:935 +#: instances/templates/instances/settings_tab.html:923 msgid "The graphics device the guest sees." msgstr "Konuk sistemin gördüğü grafik aygıtı." -#: instances/templates/instances/settings_tab.html:956 +#: instances/templates/instances/settings_tab.html:944 msgid "Random number generator" msgstr "Rastgele sayı üreteci" -#: instances/templates/instances/settings_tab.html:957 +#: instances/templates/instances/settings_tab.html:945 msgid "" "A virtio device that feeds the guest's entropy from the host: a new VM does " "not wait for it at boot. From the next start." @@ -5414,19 +5426,19 @@ msgstr "" "Konuk sistemin entropisini sunucudan besleyen bir virtio aygıtı: yeni bir " "sanal makine açılışta onu beklemez. Sonraki başlatmadan itibaren." -#: instances/templates/instances/settings_tab.html:963 +#: instances/templates/instances/settings_tab.html:951 msgid "Virtio RNG" msgstr "Virtio RNG" -#: instances/templates/instances/settings_tab.html:966 +#: instances/templates/instances/settings_tab.html:954 msgid "The VM has its own RNG device: change it in the XML editor." msgstr "Sanal makinenin kendi RNG aygıtı var: XML düzenleyicide değiştirin." -#: instances/templates/instances/settings_tab.html:974 +#: instances/templates/instances/settings_tab.html:962 msgid "TPM" msgstr "TPM" -#: instances/templates/instances/settings_tab.html:975 +#: instances/templates/instances/settings_tab.html:963 msgid "" "An emulated TPM 2.0, as Windows 11 needs with UEFI Secure Boot. Its state " "stays on the host until the VM is destroyed: a TPM added again has it back. " @@ -5436,19 +5448,19 @@ msgstr "" "2.0. Durumu sanal makine yok edilene kadar sunucuda kalır: yeniden eklenen " "TPM onu geri alır. Bir sonraki başlatmadan itibaren." -#: instances/templates/instances/settings_tab.html:984 +#: instances/templates/instances/settings_tab.html:972 msgid "The VM has its own TPM: change it in the XML editor." msgstr "Sanal makinenin kendi TPM'i var: XML düzenleyicide değiştirin." -#: instances/templates/instances/settings_tab.html:986 +#: instances/templates/instances/settings_tab.html:974 msgid "This host offers no TPM 2.0: install swtpm on it." msgstr "Bu sunucu TPM 2.0 sunmuyor: üzerine swtpm kurun." -#: instances/templates/instances/settings_tab.html:994 +#: instances/templates/instances/settings_tab.html:982 msgid "When the guest crashes" msgstr "Konuk sistem çöktüğünde" -#: instances/templates/instances/settings_tab.html:995 +#: instances/templates/instances/settings_tab.html:983 msgid "" "For a crash the guest reports, not a hang. Stop keeps a VM that crashes again" " and again down for a look. From the next start." @@ -5457,39 +5469,39 @@ msgstr "" " tekrar çöken bir sanal makineyi incelemek için kapalı tutar. Sonraki " "başlatmadan itibaren." -#: instances/templates/instances/settings_tab.html:1002 +#: instances/templates/instances/settings_tab.html:990 msgid "Restart" msgstr "Yeniden başlat" -#: instances/templates/instances/settings_tab.html:1003 +#: instances/templates/instances/settings_tab.html:991 #: interfaces/templates/interface.html:16 networks/templates/network.html:16 #: storages/templates/storage.html:18 msgid "Stop" msgstr "Durdur" -#: instances/templates/instances/settings_tab.html:1011 +#: instances/templates/instances/settings_tab.html:999 #, python-format msgid "%(action)s: change it in the XML editor." msgstr "%(action)s: XML düzenleyicide değiştirin." -#: instances/templates/instances/settings_tab.html:1019 +#: instances/templates/instances/settings_tab.html:1007 msgid "QEMU guest agent" msgstr "QEMU konuk ajanı" -#: instances/templates/instances/settings_tab.html:1020 +#: instances/templates/instances/settings_tab.html:1008 msgid "The channel to the agent in the guest: a running VM gets it at once." msgstr "" "Konuk sistemdeki ajana giden kanal: çalışan bir sanal makine onu hemen alır." -#: instances/templates/instances/settings_tab.html:1021 +#: instances/templates/instances/settings_tab.html:1009 msgid "Agent" msgstr "Ajan" -#: instances/templates/instances/settings_tab.html:1022 +#: instances/templates/instances/settings_tab.html:1010 msgid "VM not running" msgstr "Sanal makine çalışmıyor" -#: instances/templates/instances/settings_tab.html:1023 +#: instances/templates/instances/settings_tab.html:1011 msgid "No channel" msgstr "Kanal yok" @@ -6107,8 +6119,8 @@ msgid "Snapshot was not deleted: %(err)s" msgstr "Anlık görüntü silinmedi: %(err)s" #: instances/views.py:1819 -msgid "Check at least one device to boot from." -msgstr "Önyükleme için en az bir aygıt işaretleyin." +msgid "Add at least one device to the boot order." +msgstr "Ön yükleme sırasına en az bir aygıt ekleyin." #: instances/views.py:1833 msgid "Boot order changed. It applies at the next start." @@ -8996,12 +9008,12 @@ msgstr "" #: vrtManager/instance.py:1088 msgid "Invalid Device Type for boot order" -msgstr "Önyükleme sırası için geçersiz aygıt türü" +msgstr "Ön yükleme sırası için geçersiz aygıt türü" #: vrtManager/instance.py:1091 #, python-format msgid "Boot device %(dev)s is not in the definition" -msgstr "Önyükleme aygıtı %(dev)s tanımda yok" +msgstr "Ön yükleme aygıtı %(dev)s tanımda yok" #: vrtManager/instance.py:1111 #, python-format diff --git a/locale/zh/LC_MESSAGES/django.mo b/locale/zh/LC_MESSAGES/django.mo index 90529ac1f20ced137b438985d7085251850702f4..1d2438368ed4fc24cf0deb2fc721a39d6fe738c7 100644 GIT binary patch delta 40987 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 delta 40762 zcmZAA1#}hX-nQ|b;O=e#LU4B|?(VL^J-E}sr8vP|iWK+YTA&mtr3G5t-AjwK$amfQ z`Ex$jJ8RAPJ?=AmCk4*yzhXXr8PmI-F!C%P*S=^zUuyhN!slxg)91T7M5#Vsk(EAQ zF)WG&u`lMwwO9kMV-V(8<@0618kht7qtaJk0sIk@;d@j+30C{t@qD=mWFVmps(~?> z5;tN=JZbUhYka<>#51DG7sG7W0@LDnb2Ww#KaLv6Gt7!9e{ki?qw0rYF`wu2%^;wH zXHYZy7mH)AwXR|p%tCx7Ho^TE8D9yOprm=5P+8r+5D@gl07RO@}d z9`x_)M?gz?7aL-}4X(inSep1!Y=pP41{U4u^M&F#RQe;c%qEvV4?B?l0Lx*`&29^3 z;5WoiU@eTi#pm+q6s4WWE&iW@HkY&4Tuox;{6}5EDQDQ0|8J$Ax8_#I}$y;ubA?_~Wo;&c&i&zoXq;5jzw_=HpXinfu;ls?QsRCV>05mFgw1-_?T(0 zTf#!9C2WK#usv!^Jk%juXzsxz#Q(&o_#89hKUf@7?DP591)tY|fMyh9znei7tWCTZ z7Q`c{)Bg@Nqx1*d-d4wNh;Kmc|tV4V*>a;($c&?*9AAR|TquML|qdNm* zFc_*jl zgPLIOpWIm+ge{40SDgNRiB9@_v#=)Wak-1Cko0GFdRt>#;v=yv-p4GM^^_ZEUCc~; z9_qP1jA|#rX?KRo;eW)#uo!kd)HBn347}a49OoM|k zCCe?~KJ1NaaU}*R{epX3dpSMdQ34IgNOIAwL^rHV zd?6Oad#Dc6{o!U%4mH5$s3q=*TGBqK6&#MixDj=Ben+juOVkA4U}TK_r?!;+Pv8&G z0czwqQ7cjl6JQgIcSUVMKhz-`h8=M-s=G$- zH;aH8UZ4bAfokvv%z+zG1G<8m`8^E6mzWn5Tz2ttn2mTltcg=m^{!(Ee298_VqI|q zPl%pII+%b)J{C2Q`KW;`N9C_UJ!accOT7yTtux@^sBCel&HN=k2>7-QBTik zR68?Jhi~>()?YJPNkS^zj5@`qQ6s*9+Ov0<9OGVd1Ivu6mlKm=5!4x}jhaYb)Xc}D zW;_Ffa2{$vdr({W_!{eW zs1BB*X1*CU&;uBR7f};@>k&}FlsBB&%wnhtRZ%lTV7|?ez%M8JUI}&~i*j|Gr%WRN)kA2``veP-o#5mc_?d0(0JRE6^1+uz{#8 znS?qMbFmJtK&{k2s4WS+>mKhIsD83zJU#z;3Fz>Z!8F(cHR2(t4!%PTWHG9P)mR3% zqB{QD@_qMQehk!8lo&O!)Tk8=!8}+J)lQhCf8SsNI)r1e6fVd5cpGzI;rs4mvmK@< zJ_^&}N=$*rFcaQDZDEuLZU9M8OPvOjVt&+?Rz+<^WArrBE(A1yL8wzb8}&4-MlIp* zSPO5W4qcvyu6#38{ejp7$6*lOLUk1Q$h8+A*=t{VRL2ES6RG%!^^ZZI6A96yV^k6C{;T!#cz zXn|U)uBfvx5;d@;=JLp=?*QSE)im>A=UOHYiNSZ-{Hg|Gom_6Vqf zJE#sGVt)LH+Pl0@U3w)9A>JId$D=ShhNBu@h&q%jEdL&ABL84UjQz~5KpxZzltE3v zt4$ydfi|d9+7mUx@u;(K0~g~f>t7iK0t9`zpBZ0WC29oG2Eb<_m)RP@ARI1ROR zr!YSLj@pvDs1Gk}-A)tcEUt7mmjd(6p!NC|8N1(Q38mjy%)Y5LmsrVblz&3xo z$FUo#;~A**6_@}wU~fE#HR#`$?;p39!%+=SKrQujtb~hEBfoFyuTW>^6PCwFZ}^6c zm9ZpFG0$K@;<4ZI4#Bcm90#Kg_fGWk5I9euFh+UjKF>>_It)V{vcVP~g$apIK@D&j zY6~`6d=F}+PM8-lG4Xq-J^vSzW6bwF0hsYU>#qiyl8_WTU=$pN$#4{EMHZksUV$3e zPSgq5P%E$wwW3>4?Hoo;^f&V|a=1O;Z35b>Y`y^h zjPjzExCd&<24hK_j4F2;HIUy?hcN$HVLgMdcZ9EV{$)Sll~0ZbA(!2iV|75O*Py@>p zCBXmtgu>XI_y|mg*U{4wej=bHDHPQ$U2)V>R>Fl?7d5~as4aPmI_)u|xdG-x4d5FL z!NxciJL!Ff}79SctzuZ6t;_+`VLpbM@U$q{cF_H`(nBo$3rcB22^?u z)E*bNcop<_jG9O&>do2_BjH@sz!zdBT#qI2H;;gpHhwHO)8rUPJQr#u@?sc%gIeQxqXn7wuc)X^~1UXRB%m?@4s-Q!VD z$9B|*$yL+}C5-EqHXZ7*YLA*oIBEh5P#rJE2Dk<_uurIR(c<}6*7L<9pgqihI+cY` z9W+Ee_iZr?E=M(R3WM=HX2tiI12e{Vds`dz!s&!M1A|Z>LesD~uEex>3;o~!eF@x1 z<70U;Qd+zfYGpcOCG3mZf_c8zdSaKq2KCsUKs|P!u{5Si65#*MW^>e`n~3UoD(cKE zN3GOq)YEVtJg4eJZhp z{MM)r+o3w_hMLeIOJ9v4#5bYpUqnsh7OK4Wl7Jfch3wU3v-BmQ+POevOfVdA;P*70eo_nKeK?_pMO_=!M$zQJ4|KQS~BFTX7JB^!@)B0ge1VYN=mafjDVh z!--H^lonMkBWjECpjNCHY67*)_Nc8Jg8H=cEWQVIMh>6`d_r+O|GyDX2Uk!dzlmC^ zziHbId4@X3Rkc_?;03)QbIzn)x-<(%-lArx|$u z)!=&)bckYPbREP;RR}^YRaVrJ7eF;w617#;P%G6QHIY7+@1g2XLe-yzIvYzZeT${< z$>_NbkC9N40vAwQkvP~@Oo93|3r5W}Giu2T;Q=g(LHH5%3QwEK4X`-s@K#10=1@$J z(=jt{L$!0oBanr_9n==Y4sp+KFlyv=Q4O^~<@ZOOfhnlxd_Ah;%a;BYgNY}}><(Ws z)C%`Ql^cUfa z)Fw{sCNE9ov9lbOV9sp%Xn_SK`r?wtcMA5x=+9M z*n#*W48q8{+~<8Jvp#C?M`0#hgPOoEs1KnlSRLc#4)FgvuQ_^ENLWumBYlH90|oQA zrEQG*7TW^#Tu(v&V}zQ?7SxP)qn_)tsF`0tZP_Kuzm0mezeClFm)Ev5uRZ@kB$Os2 zkJ$_L>fDNYFFZpn`QNC9KATDNxh=?vA*2^Y&A2sctGc5O=TKDrY32gd09WPX`PYm# zk)S<4ggR8$F)iM)cwm0la5U5@PizLEI?921yozHwY;5s?_zm${sHf&PRQn&WDh7B3 zT*d0B0-Z4zhGPsog6iNjYKgC)25`&rpP^>*7PT_If-XN9>TG314QvJKDLI51;1%?L zIQ>UJds3*7TdI<%cwJP(O)cIQ)j(I&QjSFpaJuC$Ks{C~Q1!N%`%sVJG1N+5N7a9U z48-&OOF$i_EbL~O0X4%csJ$>4k>NFoh&Ez7E!~3X#^eF0{f_|u(j6)4zF1E%e7>3o0xpwxM zzoC}=A=bj^#ogXF#Af_8s3FEq$g4J z{zR?h6V%oOlyvRJLOoRpQ3J_alILHix)=$XNomw+t!D8~sG0Raed8H{8sKbH1B)zw z6>5OnE&WH-SviBM_ZwTN# zunnj;<6hLv&!EcRM0NB6)zN25k6qdw%2cSWY3317Lv2w@+Y1ZgM$CzKF&8E*;~t|j z7(%=$>Wqv)&2+NGXP_R_#i$AF#yofkwF0lO9Y!nb`t`aIP{F~dk&ZyU!>3q*8CZt+ zQq&>3joQ=Ks4e)2nrYN>ZY7hV^0T2jEP&dAs+bvDp*~~AAuI3s))L4{!T~Gr5cS6K7R+yHe*n_^3BkFD@WOAoH(RwOrS=0(h!sCL?+-WR=5Ur>%=3_br3 z2g`J=9b59@F7x)Iif!aUEwvl`DcOSKX|O zo<`D`fGQ3~E$w{N={$fM*l|>cm(YK@QHSpZYNh@|H5|LDE0+)zPl5h{Sb8?pgz}6k}w$uqn0RoHFx@(;W*+GFc=e5cLOVAmP8G(BI@uq!P(dWx8O%h-&DhG z%|6r{_84kHw`zFqP(36;hwCrY%s*H>a!pq-F6yaBg33>UI`!#Mhcz#1kE@{`<0hz? z&PFZ$MpXSHsHf&Qs{UDzfGXawglDKX;78QbrmW?bDm!K)o(I)oGt7tmP@j5hQ16N3 zs8j!srDv<{R+%I?x=w*LoNA5R6l>ACYY?gzkSbFfPe~g$DB9;HIoQSzi;ut25zQ# zQ4QBZE%9heUx<1i>_I)>*RTu5Yv_Ie8H}p83ajH4EU4!{OC$G7rk2=2XsI6+*-gAd;c6*obBWeI2%+ej)4<@5g-&~I2F}#af`n4V1H=+Aj zhY)Ry(@?Ao7-s&@h>VI;4M`&G*{)bo7_wX~7Dx-AGsbzBn*Vt3S5 zt-#870<&QJZf?d!F+cHcsK;$7>P#F%wG*woYbOLXQLi}xHMkU2;78Q+e+NAb>EV`a z73xex3v+L{yr@@q57gez$4q#`jMCH1I6G=UZBb9v91Ow>PS5woGLrRjFPH|Xku5=; zjXS7@qx5!W$K1s0m?N+x@hzy8dx_eL_v3Vr`Z5Q zDKHGRA~!7k6KcjG{Q~@dcDpX>=~;)V@Fc3^d)Nt6_jiYQ4C-(m#7g)QwGu@J@NX+uQU2ay8nXN z1$7utpqBm>>gkCyD!{iCi(pE;gqq0TsHY*@=m7tp4XcG(>1CtoC^3QaBs8ik2B*#Dsq{SGR9yP-3mR}L|+*U^_`bMM5%|m(Y_2L+eYG9f918SwVptkIsr9Z}~ z#Q(zh_#XAR#hl?LRv7CLFNXT&GznwVzi&PPb-WsN7`I^({0Y^;byUM|Q6v9^>L5nA zeMdxXO?K2CH$bhx0MywThkATBSpGSzLHsp(Q3#Zo>6WyT*#tG?t{5HrpjKok#>Np? z6{nycyGy7UMV{r#Cq%WI3M*iGRQ-+^3A>>Vch6Zo|0=kV1nvEH)CxqP8a$1f>1EUk zJwdI^TTF;?X1nr1s2LZ;xL5&IufCP-HvMDAnK6)f;wb3 zQ7iEnHG|iv2Hs*vj55c4N9>Mz!<|IE7x+^s{&*GCSF+)l8E2wCjP`j1$`kkxwWOuz zxr!5U0P*vv0ac&xmcAKk#X6y8+ygb!Z!Lc+YU>uF%6*SI#A{Joa1J%0i>R&iZW2%j z&rmDy0rjaDZGk)GA*e%D5p@VVp&r99tcI&C{u;{>&%V$-|6!;ZPe2WH5$dVgfZBpH z$gA7)T_T_n|ATsQd_OI%6)@ciN@$Z{iqf1skokhkAU9gqfiwhFgN~=YBh$hIZAp|BZVS?(%4Ih5T6%G_ z9O{r&L$y;Iwbv~yzccC#^+J^!xPs?jfng+Q=|){n(wCyjuR-no2Gm(N zjyk+oE&l-q5r2wmC(ie7KuJ*p%7`kT`+Ls?ijkn1RX`oKTBs#zgleEOY6*K=d^oD1 z38+Ih3$@3qP=|MqrJpr#qS||fDi>*`Gnq#~hax+wqui*KD1sVLNz@srjEk`Y>T!&+ z${otgn1T36%!DgZ`KQch7)(6gYWEpY0Cm_~Vn*~PSYQL{Fr7nvad?J9N6oO2*&20< zJEJ=6j~e+9)XXNL2D%7!m{y|7ZANY34%ABRMXk_T)Ie{d>fOZ@dj6jhP{UEzxdxJ= z8c2m&()4B)RK?t=1`DHBrZVcAQg77ECu0#@fWdekHL>@o`hn|RKQYl$LOe@IW~MgN zqZ$lB4X6NWNsFOQc}3LY*9^79y-?-mqE=!tYD-t3`q_Z0zeDK(eA!*k^RJJ~Qybi? zHgKc+a4CXyN$-hS@F?cQr>N7La+CXsrUK?C-UfAOXQSQ=8?h*!KusWEvrCVMI`vtw z23Ft9^RIXMd=k{a7Sx`dG_RrF@vl$~N8aL0gXxGDLcJjyqE@0OYGuZvo~8w;EsDT` zcniy5vaK$?iD!XP*qn?FsKXU=n|qh1Mm1O&HNY0Aj{BkZb{1;y_h41LfUPlTdw{Pm zj=(DT25V#K9c}{Cu@rG{EdgabMlDJ4oo*l#P@jhP&C(G8{=XM6AC>+JOJlWN?kAo} zSb_LKREJS^yRYT7uoLk)SRZ|RTz?IaL+|-k5zrToov1h01=Q(&YewJe;wi8g>DjP7 zw#R&U3boXqP)||HeeNq(Hq_SEMYY!%wUUETD>oJWpa0tl=sACl+DqSl_xt^n*n;RF zRQey-0AE>pr30>^m8gOIjJfe67R8(g-H-1b%@wFad;>FMoI{)$J^uv>D5Dx`hJ#QI zZATTnYx%JcyLd6P4VEVVJJhK@h5B*+1?uU^al|dThjoabN1c_BqwdG?GU#b(`V-I= zj6*HqDvR$#o%#!?C4O$k{L!U{U>wp*VFs*$6|pBC!3ZpmgO9n#_8|Jt8fu`$kMsQJ zATaQ_E3gtf5dRfbpzsNICi-Gi;}BYp5*@I^%w7 zZid>z$*9A<154r`W>W7L*FXbYNyb#v3<{ogk5OgR63)O%s)%JV-LEda4eB{wje3(l zz}A@doGa(yZsJE!Z_1&+x$>J)1M*%H7)~JJ@9y~xNA2Y$tcD*@XQ1+Vx0Io%j@F`H z#kcS&#=hY8{yl1mOJ8(9!1O}Ze}w8V@DKNX2}V9OJ>LiddgV?sm!dxPwwrrVhw_NU ze={$kUb#0>EA|HUO)18o&divacm>p{Z-Xgtn5ED0r}O-6C!h|_qB_2TYWTjzKcG%| zq)YAvk^uFJ4ncKX1oi%?hRn#<*z((&{ZIoKXYu8z{rGsG)O8z`N!v^uO86 zl$Tw8A+sFnGod!BekV&Gf_j|CV-8%6+N$%Yjz6RNiFd`m|EDIPnTMcen$zON&9Y_{ z)Elw3#W$KePy^j({)y_~Z!_Sk%a4mn&t~z$S9$(*DC&_Q`_?U# z_nLcZ^5A~byPytPmh0}fV`Wf>bRM?BUr~=;{u^!ry;1LlUvKdItKk$kU56!6D^VXc z(qfkX8hK&V9+yX*?iQ$-3_>mG1k{YeQ3INf8qh)11RkRf??+2d_P~`di_uB1g8sk% zQ&#~JLQym6i8>rZEj|S`v-zkF7o!Ha64lXG)YEbdwG~&)kEn9#9y)WFMKLMq6|sbt zwgmxwO7*e=^H5(XR-tD0GwM_D1$M)dk6ik?ZS$)99@YOxh-OC$^nYwDLXF`NYOJ?W zRUe^_Q<2CnJq$JH{-`mIF=wFWzQp2NQ17?{sLi-&=`YL=kpn${MvN$~;|!>d%VT`3 zhC$dIwOGSYyEo0^^DVvsRWAay%Lh;${({=o2dIH0jOyCUhJ}e&i|PgXfAKYn1bs4} zKrLR(Xo2oK3hHyICTgbLun`VI?bXqP|=`K-CM5=?0h!ix4l5N*{)r zz&O;FdN&BgcR_!+c?WM%9ZKC(!@LN0MSe;u}yCxPuzt zdsIK^<2rL;H@!lN6VTyWgKB6m>d+iPHSi2;V5E3~zW!JT^^*MwwIUBtPk8e9ZlI}A z?c~6DnBU@OEdM;J{#{H!|Gr2GTtX7m<5vJ1Vnfs(Z9p}67t7-l)RyE)=w?z3m0t<9 zQZ>z%sKeL89A_>?eIehCo+>0x6zG3<1*00ugL?TDMjf&`mOdRdz_}LRV;)8=?N8vizYq zllVAng{hOdH|kK-iY>vSco;R2|4>^S-AnEcQ7P2Sd!i200MrbIU_BgT@k^+3cTju# z*o>4S(EmA?8r4A&td12h1ZSYy+l@NhM^R6O_nd%cmNcb1?d4HtqABWwvx}vVMU8kN zY6X5r?d@NvhNGl%FP3!IeCT*bqtHh6}LwyT__57z#7wG@- zup(+83s4;#Le21m#V=znRYWau{2-T~1{Kd^mO!mkRn&k-So(BSyNglpm6eLqzi+P< zIAR6PqRzlYi(j_p?qO9rN7E~~6p*m=SRWS@J;vUosD2BupNAUID%9lmq266Tp^m`^)OpJv;@ath z>Ug+0F2r*UPO$=uQ5DvqI(lOMhkEj2Wpm@d#)JIZ-n$XVyj?ix#MgDksNc2Aqs4zZtbP`z`+>>XmTK;txH#ZQ`-@ErM%Q1$j^a~=JJs&@s| z?i1wOo#*?DfZjFnv%5oA0JU^&ur-cAy=!ix-c7}FxI;AzlMx?}8t_uAhWAh%<<03P zRt7bYMyRc5hsqz|mv_K8D=^3W-rRy3=>hW?s^V$Xl3um=6Vw*`hg$l?xm>xlW-hZN z29aMAHJ~s_|GuFFRB-~TgK#Ub!s44Peh5|WjK%*zeX!lN^t8EM!&y*USrGNQFN*rP zsV45mMyQoYkcW4W_CA<^3Km1ntQO|RmZ(EG1@*zT8CCHLYR1n|PeHW2?s3hC8elb4 zy#}cK0TvHO4R{Bt{)@ak|9b65&*vJ*iTYi51Jp_^K;^GP{U+#F)Qjl}s)H2y-5wW5 zEomLpH}RIJju)T?6oHz+Vbp}5qS_BE!1J#H2@ANHrACb`H>yHqREK>~4KB0v{g(a^ zHISqQT{}fkulceT?}N%8hC0+sP+M~V)!q@0fCg|K)8Ru*fzb=O^bDAfcn;Lkx5C=k z8}-qC6gAM;h22UOM$N1_s(d%pgglGS#W=**VF9J@CZMH#jymlzinz~>_^1xrpwic& zM!pr*!A{h`kDI@uI=qZ}T%V!#xWc0$RE? zsHNSD>fjV=>HjounDI-#ki?=a5quTF@p7vxI0iDiy zsK;X$>JynXxB*rE5^7*E%ea}QL=7Z2s>4DSFK1RQ!}G5W z>sWz~ID~j#)Q|ozQBOnMvTlG`un6%=sD_85Ivj@@;2d+A<*!4n>{d%ZW}Zb2=u%nF zHE^Es)2;%-KShSRJ;wUV3^q-wWq@{6sMwA@D*yn(JBP`7GN?|y=|z0>_O$9LA^h& zVR!U$RSfk1k<^8#(;2;zGY#r&<(RZ)Ij>8I{psT@pSWh zRQU+hO8)5Lp6@IHJ-=72K;$Z}fdr@ql3P5xna?b0mNqM)22j)D?NA+dMSUg=#1Xgy zRjzPV<@5a2AfS$#qL#Kh>J{msW-=M|KA4Fb`36hhg=**^>J@we_37!W=DsP#L#=2k zR6BW4^$TMnEGzZ=H?)i{sDk}a4G%SEpa!@GHKV<#0sVw3e+vuXLyM=W?#czD_B=1D zei@6`xBPbKfBt(}!en#4xf=CYZO2l00M+3qOOH~+y=vo`70qFoQT0$O@F!}EpP>en zq^4^pQ%#ny)i5CK{yRp zpq92kW4Bc^a31mFsDZU^;wCf(HIb>PEt;)#J^!l+Ou@~#9!oWKBYcXg@E)}_zGg0- z!OV)9Ngj)rK&@PPi`PVb_%y(1*aTHR6tyBf&{M()0!48OYHxnB0yj|&yhaV=Eo$VS z%(%^6hiOq;kpcV&-UB01-xubf4(rk8JpcM4ae)Nw=_kv`(ZVfdNi0Ho zZ`AjJb(Vh8{D^wa^R{$P#c*0>$rM7(YU^kP|s>hM154HdVO8&FQv3n>(9;0*LPgiBPevs==QsFgW^YA>LR zTlzAn8GncR;;{;g;alVzk>|_THPHW`E32SB7RRAJCKsR%%_>ZXd$Ay1vGfGp+;2ic zPy?=l8dxXPlFzpEU8pVn19eDKc6Te72dnAxzaxPGWNgC@n7xOa@eC|X{3vQ^|3fuU zEX-LOYZ32&n(Fc5n=~UFyaUDnC6U<2ezV5x;V>KN$@@3c>kD|^- zaBsKwRZwT)d(`2)f_j_+`?#ggg*p?RP)ofLwe+9yA*Sl<{)1cOeu4gfN3}9~<;d7e zAfF22cFfn`&F}$gKp(L*rW+9G|69eaQ8Rjo$}c?7m2ZODiZIl`r=V73o5desW#X|1 zxq1x-@%-zt89;*G1FJ0KENaPLp_V+)U^l~xs1+EF>No;5!%L_={s((uks*Qpzg@5v zbtV!Hb?uc#4bVev+2Wx*|CtC}CqYIY<~qoRT9HuH>7R)i@tFAt^*qP<);)ezQ4KCc z4eTmvV4qMOrlcR8iK3_hg`&z&^$2K&XHiRb54E>3hr3gs7qvxoP>GYZsC`dw29Eqz?9cCTn8tRT3@eI^T9Kx#j z3N?doM!OD%qS{%F+M;WypBoa7afh@u>dZ_+4eSbr>G}WH61t3aOEv*@7FJsP7u1X% zqXrUhoU;V#UEUQ{el%){H=qV^0ksve$Ga8Fg{_H~LDgH1x%B++C7=c#`xE$UjT2nF zEb0t&MRmLw^?o>wno0ie+zdxz-2i@C#$%+XpTyP?e}F0h|;1OXo&h4?q`lc&3G27{Atu@!ada97oP6kq-{|7 z15k%|8hToyGX(UUzCiZGmvM&s&KHhRi9bRex|gV}h!pO&Dhp~R<;|w3Gtv`PZW*@5 z*$nIf1@!u`<@j6R37m&*gDbLh-q-p=sEf_pnJvnndR4(dZJ)YAK*R%9sZ-M_)o_ny(2 zjcV{Js@x-szek;csEgfiI8viJ$dBr{I%RsI(0i^p@+1hX#Hq2~E(L_ih0pepu7?b#62 zlCH-{xCQk_+hOSe%Ur#vs1=BhdP+i2-=d46wx|wjOFEzq>lkwxCfD=7pMV;;Xg)Oq zm%H@jW-hZls-dQ+nfFI^JQmgQJWJn#aflyAP4F!0a9+Yb_zb;z1VUH1=YI#5BK`>V zg2?*4+sh89CG$}E8?XsJLp>#xR=P7X4|@}Th1&CWtDIq|6&#Ej@VDlaRXqPnSWJSJ zextbqvk~8C@dv0GJV)*2JJiggtacqF!XV;lQ7cmlbqJfGI_`_PaUeFpHK>VvTJ5=+ zm0aVNup4SX9;$<>sI6Iq8o)MG!~0PUU$ppT)WBY&_S*M@n@~DbdI)M@`OR8pSI+|D zP_N7ts0u%!I=q0|+Z&h<|H8_cX|0=44{T3-F=_=PuXEoMVxe9z6;Kmdikiqq^GDPQ zdzT4lCQ;VAk;gEzpej^C<+niXX{g1!q5oZvn(;E!V|>Ws56x&BTz&{@;1y64or0A2 zeA`^WcLgMs2{B^TlzcHN`5wDY;x@- z!l-)wgZu$LolqU-vUnM@vRTV)haNgoqP-o&H&c|q5+?FiI#>5X{N=&hp=U;&WTU~)#W_MKj zM9hJ!P~UKVNBz7IbDR5$RuqGXw?UO3h23y5Y6W9$cPo$t_4oy&wxBfXEY;i2^RJP2 zCPDT@&1e8>DMwrSOw>{?u=rZb--7DsuzAY7fO@=cSUlzqw_=G=A7aT-{dM;U1Q6(p z>YzWW!7->AO+^i4E$Xq^gId}fs4e(}YAA50GX|=Be2WL6-uanP6Dw}%l})b}0iEWC z7zLZ58VEIep*k9Y{(+$eG8OeE+>RQ+8S}h(1y%mG#h;=c+t;WGe0F-iv=Odg2`oZJ zB~*dosD_uAtIQ4Nc5^Rk0!PdfsFgfz@hcX;iCWPYX3SmMBA&lY1T@3isD|pJI&Na= ztx+>+huW$({11PV$$v#v1+KT|qGcY>yQ@T8VV=;A8GuZ z9A9m#f0?wQq_whvt8Q-Mw@KG`23`EQao=b1-$!BnE0gi%>Ow{^g>@~UlhfoSC7y*r z>FREId+98~!ZmC#3#qGXh^1engVz>*LjCTP(`WuR+`v7E^4TM2=1;@=tGWMKWR2XW zf*u!LC+KWh_^n}yyrc}L9!=gSHwvj~Y34HBY#=Q<@!G`W(83hlN!fPXOKcsokQU0V zs~LAT(%TasOZX6VyAVHaWqGE3)yS((dLqJU>5r?2FS-q{1YV%i*jAw&*5Iy4g#x7W zH+uZn8U~Qf!XF5qCbcc)me@cp5RXN9K6-tx$k!F0@>OZ)efX_!lX;N{=^A3K@Rt>Q zGa1geF4_OT!)YxAEu3+~^sOc}h_uVpZA|(`dZ>VDh_501^|jO@vB)pWeV8`tP)=Vp zjzspufA*o%Zs8-mR9-W(k2BD3D8kop|FxXlQG`yBHh3l1m?}%T zTVJL3rR;Qz7bmZbg@2|kUHdFPSf{nUb^4Nq_$zC^NZdoz0CySY%qN@g6yYydY0{2; z)!A0U)v2Sa?pNuGkD&9_-ZrNb6Dgl4{uX9eF268$-EB)LCg|M-$e&G)8#m5vja(4EH&)gbXVVcQ4|) zCKA@qDY`Nc{)U#as3zC9giDgvhL&$q_ZZ=BR!{kL2=^m>1^3^?$@UeZPCWuitPPdh z9gPo#WHeHN%!6cBBHW%z!Q9!x(~L~!{i(WKjcxE*t(!g62q9dW=8{t;HZ>PhE*Uj- zEh0aYb=8wRU56~*nLJ%Ta4)1?{;r@eh;ZDmhL({w`K$`xHZo1Xzv1T?$y-X4qGTGY zeGK*CK8bsk^+3@7r=dGgZUNz+DASklDlB6&$xAO2C_m?`-c;`u@r;b-FlEb;KZ)5b z#Xq=5>g)e7GHVg39NueGBJTmseWF@k%tX-+4y?Wg=%A`fk$J6c=&7|v(P<)(Zp(wY(8tsfn9{pJ5(=0d}|UeHK;3Y4RfXT+~t zX9tO|IiUkUYB`z?8|XdojEo~7a^?z^OYq|`{#b#?kb^_Nh#7lWS3-IX>{a}RSxednk% zll=IKYySO6n8T86?KNDVNY_cR<2z4W+&{r+}5Z--kD(?d+@3^1P*0&5YDdADnuZu@WyNzS$ zZvlB?8WiW#Z&iMX!Hbnu#cvQ1zpWx8-*viL*F1d-pLv~9F~h0k@D|x;=G`fmL=MulpeS@^`X=4UuJ6Idh zNQ)D`Y<#jLAE?c*VSVE%sVgz|4nH$KySLp^l==(xb@ij&e<>Y8{jT(*pJ{rN_T`#H z`bUk0@`Xs>k4s5ANm>aCHKNVAq+KNb1NG-yAOBKDS1aNHw9hZ_+?#MU1=Eq)hsN~B z`pa=G4W%B6LahG!b#9Ig?l^&63}TY z!j%}vcr3$Rn8IbP+&b(_x!R=bx<|QC&4eqr!}pFhbp1kl8p=nbd^E!K8016ZugR}Z zT0k_L|9WfS5t$=xN!36-I{ul0*YOo)Msg=3UW;4TdhY7n;oK7`6H3D`un+mgDZ7~X zWE%`c{C}GF6M3!3%St?wJ_)ZAcu!&*5_KKsp3ME~tBSR0bQkfJ%%CO?puB!7qiYKB ziVS=m;VY!?<37S9c2Z{#Q{vnlz1au2g|{!IR-C*_M-S|h%P`D%wxn3B#bZq~ zTQcS4vS!9pHsx38KU?~1%1pFr|3R7Qv=L$D&e2Cg!aL}10{`5DuPl*xM7ndgBXaHtOr?*CmP-Zi6U5{u?*DlHq!AQg(6K=q*D-K4ZtsC6=sCUiE4=24dcXaLrmbOy= zclS-K;hK#80S)A#(`FR9Lj%ibASL#S!8e0?8XkS`6BlNZBZ~p&#bPkoK8- zGilvOD}}wV2X}JnC8A6)hU#Z8T{Em<{_zsuWYPlhErs9WB;$W03+X>uy1bsZ(W19qkbT?fe1Rf3@`rlnit4zP$hbeJ{v15RKNm90*C;=^nr&nfpSc{RCp zb)}3Q01`@VVU>yZtxzYJjkUogUf3(Jr5H3&J9cx^**KoHZ ztv~l))@+7Cl$7ws#YM#vPk`IQfwy`~NF4 zA2u}bBljITOlgJpQBl`7qzxl)9u;)mBL0$a%Ad)as*(n*P|KDpY`MOqdHxJ)GGnqHY z22kGy)sGV2liP{ft+;<9y{D>hRkAToC zgLpT>x9Q*}>1ot3*9pS9e!(8(>na@i%U4q(8EEV~?hI7iWQA3zF|&P3JOK^=!@ZOI zN8AetPoSaJ+%+k8n)nFnFCpCGtNQ$h6kmMuGN>)ANPGe1K4=j7O+hkdRG&_MCUI4G z=GMpp~k zszsd`3}ZFw>POw^7*1MY{ZP?}jK9O*&rTKNZ<^{%)-T~{<|ON$g!I|mZ|Qt3g;R1* zrr{@)s!jMu8gGvA@H-m)kD8AtzlZ#yr0W_<`RC-_v-mdB3adQUrEC)NYLb^aeA%2t zUM70_OiE5tdXf7pB}dWP*H<(0pHi-`O>qX9!zrsPfbuO#kA?$@Kc$_^l>NcVo~Q10 z$}YfPD3g@@C4^5=_E}_pi+YwsT?MJ6s|^(sQb^ZO1~Q-cS}MFD9+mV?l#4~$8Y|PD z^t5zP5*yG~7i*8GZwTf7vvw7)9KLLBq83?68Ni*xT3AD=FIOGX2h&;#TY@6QGt*)< z?n*Z0xQwO``SFSGA*?Go@xsI-hbNeqNPkYmm!Fj7q}(O^4Yg-;pKyhJD+sscUPsSs zx${wGgZ22MMn~Qbi$9@_sgy}TPen+-%iYuRex<$Kjut4|SMYw~wU+6d%sO&jqjw^o^4+bHiHO-_7E;&^<$9Vg2D8%I?>F?lxt17 zbhNRVGJjz@;{2fs_MJk>NvJ`_N$y01J=8UUin_k1gD8xC2aW3*{M9m-u(Ykz$wXaU zU1&27;o~+ir41y$ntJCH;i^fQT5b!mPLq+D#>>&zeXPQrhjd*UU;#SMLE0fIeT(Z&KhH4NT_FU>z4yEv}N3ZAW@>$_J5G1#@vXA>5Ptl?cbO$xNkuM&b!cPfZh?gW^*MHVYX5z6e z&E>fNeGE@2zm|Hrt*ml75bjL*3WS$hz3(VfBoaIM8-cH{rxbq8-N^=0hVb+7-OCDl zCKVYLcPg)exzNfAE zq%EPH8Lmut*zz=9Vk=*aa)~V5o3h=l?>|YuKzJWxE6N?6@Fea=+)s#aCclb}sVZSz zp^PORcMHNbC^N;z9!i}rS5DU#e+Q4i4GN58aJRTOQlcsavyncHI~@(gC0>sPH(?o@ zShBAcLXGbH(lS1$tgg(IokE?xRwsz|a#6334JdLX5z;^Cmmv)iDcu-@(3_ujVbj{(ucOP)&>qfJ;?-=Ge?!@7sZzgf*|-!7(_f`1rzPSn`<_RM@RbIqe=d+zO-8jV1)4gd^?rk0$@BV^= z_a`sEzu|iu`RPXiKc|SQu2=7km=!57G*d*Ltbwzm&xuqhFnL70e1R<@M~o~KxI0Ni z .boot-node { counter-increment: boot; } +.boot-step { + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 1.75rem; + height: 1.75rem; + border-radius: 50%; + border: 2px solid var(--bs-primary); + color: var(--bs-primary); + background: var(--bs-body-bg); + font-size: .8rem; + font-weight: 600; + position: relative; + z-index: 1; } - -.boot-sequence > label:has(> input:checked) { - counter-increment: boot; -} - -.boot-rank { - width: 1rem; - text-align: center; -} - -.boot-rank::before { - content: "—"; -} - -.boot-sequence > label:has(> input:checked) .boot-rank::before { - content: counter(boot); +.boot-chain .boot-step::before { content: counter(boot); } +.boot-chain > .boot-node:not(:last-child)::after { + content: ""; + position: absolute; + left: calc(.875rem - 1px); + top: calc(50% + .875rem); + height: calc(100% - 1.75rem); + border-left: 2px solid var(--bs-border-color); } +.boot-spare .boot-step { visibility: hidden; } +/* on a narrow screen a device's buttons go below its name, not over it */ +.boot-text { min-width: 10rem; flex-basis: 10rem; } +.boot-chain .boot-spare-only, .boot-spare .boot-chain-only { display: none !important; } /* a log message keeps a readable width when its table scrolls on a phone */ .log-message { diff --git a/static/js/instance_page.js b/static/js/instance_page.js index 1304d3af..b2c7eadf 100644 --- a/static/js/instance_page.js +++ b/static/js/instance_page.js @@ -154,35 +154,37 @@ // every NIC of the clone a new address: one the VM has would clash with it document.querySelectorAll("[data-new-mac]").forEach(function (input) { random_mac(input.name); }); - // the boot order: the checked devices, top to bottom, as "disk:vda,cdrom:sda" - function set_orderlist() { - var order = $('#b_order input:checked').map(function () { return this.value; }).get(); - $('#bootorder').val(order.join(',')); + // the boot order: the devices of #boot-chain in turn, as "disk:vda,cdrom:sda"; each moves on its own + var chain = document.getElementById("boot-chain"); + if (chain) { + var spare = document.getElementById("boot-spare"); + var refresh = function () { + var nodes = Array.from(chain.children); + document.getElementById("bootorder").value = nodes.map(function (node) { return node.dataset.bootValue; }).join(","); + document.getElementById("boot-chain-empty").hidden = nodes.length > 0; + nodes.forEach(function (node, i) { + node.querySelector('[data-boot="up"]').disabled = i === 0; + node.querySelector('[data-boot="down"]').disabled = i === nodes.length - 1; + }); + }; + document.getElementById("boot_opt").addEventListener("click", function (event) { + var button = event.target.closest("[data-boot]"); + if (!button) return; + var node = button.closest(".boot-node"); + var action = button.dataset.boot; + if (action === "up") chain.insertBefore(node, node.previousElementSibling); + if (action === "down") chain.insertBefore(node.nextElementSibling, node); + if (action === "remove") spare.prepend(node); + if (action === "add") chain.append(node); + refresh(); + // the keyboard stays on the device that moved + var same = { up: "up", down: "down", remove: "add", add: "remove" }[action]; + var target = node.querySelector('[data-boot="' + same + '"]'); + if (target.disabled) target = node.querySelector('.boot-chain-only [data-boot]:not([disabled])'); + target.focus(); + }); + refresh(); } - set_orderlist(); - $('#b_order').on('change', 'input', set_orderlist); - $('#boot_order_up').on('click', function () { - $('#b_order label input:checked').each(function () { - var label = $(this).parent(); - var newPos = label.index() - 1; - if (newPos > -1) { - $('#b_order label').eq(newPos).before(label); - } - }); - set_orderlist(); - }); - $('#boot_order_down').on('click', function () { - var countOptions = $('#b_order label').length; - var countSelected = $('#b_order label input:checked').length; - $('#b_order label input:checked').each(function () { - var label = $(this).parent(); - var newPos = label.index() + countSelected; - if (newPos < countOptions) { - $('#b_order label').eq(newPos).after(label); - } - }); - set_orderlist(); - }); // the Host devices tab's add forms: loaded once, when the tab first opens var hostDevices = document.getElementById("host-devices");