From a6f9e4b5731f72456031e7c1b321aa195e23e836 Mon Sep 17 00:00:00 2001 From: catborise Date: Thu, 5 Nov 2026 16:37:39 +0300 Subject: [PATCH] fix(instances): the page of a VM removed outside the panel sends the user to the list The page checked only that the VM's host answers; a VM undefined with virsh then failed at its first read and the page was a server error. It now says the VM is no longer on its host and goes back to the list, whose sync forgets the record (tr and zh too). --- instances/tests/test_vm_page_records.py | 12 +- instances/views.py | 9 + locale/tr/LC_MESSAGES/django.mo | Bin 192531 -> 192619 bytes locale/tr/LC_MESSAGES/django.po | 215 ++++++++++++------------ locale/zh/LC_MESSAGES/django.mo | Bin 180027 -> 180119 bytes locale/zh/LC_MESSAGES/django.po | 215 ++++++++++++------------ 6 files changed, 240 insertions(+), 211 deletions(-) diff --git a/instances/tests/test_vm_page_records.py b/instances/tests/test_vm_page_records.py index c8cf8990..93ce9df6 100644 --- a/instances/tests/test_vm_page_records.py +++ b/instances/tests/test_vm_page_records.py @@ -1,10 +1,13 @@ -"""The VM page reads the user's rights from the VM's own record.""" +"""The VM page reads the user's rights from the VM's own record, and a VM +removed outside the panel sends the user back to the list.""" from unittest.mock import PropertyMock, patch from django.contrib.auth import get_user_model +from django.contrib.messages import get_messages from django.test import TestCase from django.urls import reverse +from libvirt import VIR_ERR_NO_DOMAIN, libvirtError from accounts.models import UserInstance from computes.models import Compute @@ -42,3 +45,10 @@ class VmPageRecordsTestCase(TestCase): response = self.page() self.assertEqual(response.status_code, 200) self.assertEqual(response.context["userinstance"].instance, self.vm) + + def test_a_vm_removed_outside_the_panel_sends_the_user_to_the_list(self): + error = libvirtError("Domain not found") + error.get_error_code = lambda: VIR_ERR_NO_DOMAIN + response = self.page(wvm_error=error) + self.assertRedirects(response, reverse("instances:index"), fetch_redirect_response=False) + self.assertEqual([str(m) for m in get_messages(response.wsgi_request)], ["'web' is no longer on its host."]) diff --git a/instances/views.py b/instances/views.py index 32404c5f..a169a37f 100755 --- a/instances/views.py +++ b/instances/views.py @@ -46,6 +46,7 @@ from libvirt import (VIR_DOMAIN_PAUSED, VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA, VIR_DOMAIN_UNDEFINE_NVRAM, VIR_DOMAIN_XML_INACTIVE, + VIR_ERR_NO_DOMAIN, VIR_ERR_NO_SUPPORT, libvirtError) from logs.audit import audit, audit_vm, changed_fields, failed_vm @@ -265,6 +266,14 @@ def instance(request, pk): msg = _("The host of '%(name)s' cannot be reached right now.") % {"name": instance.name} messages.error(request, msg + _(" Jobs on it can be followed under Jobs in the menu.")) return redirect(reverse("instances:index")) + try: + instance.proxy + except libvirtError as err: + if err.get_error_code() != VIR_ERR_NO_DOMAIN: + raise + # removed outside the panel: the list's sync forgets its record + messages.error(request, _("'%(name)s' is no longer on its host.") % {"name": instance.name}) + return redirect(reverse("instances:index")) # The page only reads the VM, and its getters read the same XML some 30 # times: libvirt is asked once per kind of XML. with instance.proxy.cached_reads(): diff --git a/locale/tr/LC_MESSAGES/django.mo b/locale/tr/LC_MESSAGES/django.mo index 339f0a76710564a79fafe36f298578b4a48b53d4..729d6c960095d6d4fb1c80d96dc472f7c828caf4 100644 GIT binary patch delta 42974 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 WzU9pJ%=&Is+Zr>sY-{Y)(Eop|k<2~- diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index 9cbb13a7..74b8d35e 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-05 13:17+0000\n" +"POT-Creation-Date: 2026-11-05 13: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" @@ -2922,7 +2922,7 @@ msgstr "" msgid "Create VM" msgstr "Sanal makine oluştur" -#: instances/jobs.py:759 instances/jobs.py:804 instances/views.py:2482 +#: instances/jobs.py:759 instances/jobs.py:804 instances/views.py:2491 msgid "A virtual machine with this name already exists" msgstr "Bu isimde bir sanal makine mevcut" @@ -3282,7 +3282,7 @@ msgid "Disk source" msgstr "Disk kaynağı" #: instances/templates/add_instance_volume.html:21 -#: instances/templates/create_instance_w2.html:134 instances/views.py:2501 +#: instances/templates/create_instance_w2.html:134 instances/views.py:2510 msgid "New disk" msgstr "Yeni disk" @@ -3654,7 +3654,7 @@ msgstr "Özel CPU modelleri" msgid "Size (GiB)" msgstr "Boyut (GiB)" -#: instances/templates/create_instance_w2.html:161 instances/views.py:2502 +#: instances/templates/create_instance_w2.html:161 instances/views.py:2511 msgid "Existing volumes" msgstr "Mevcut birimler" @@ -3690,7 +3690,7 @@ msgstr "Aygıt" msgid "Remove" msgstr "Kaldır" -#: instances/templates/create_instance_w2.html:194 instances/views.py:2503 +#: instances/templates/create_instance_w2.html:194 instances/views.py:2512 msgid "Clone from template" msgstr "Şablondan klonla" @@ -5853,38 +5853,43 @@ msgstr "Geçersiz MAC adresi" msgid "More MAC addresses than networks" msgstr "Ağlardan daha fazla MAC adresi" -#: instances/views.py:171 +#: instances/views.py:172 msgid "Enter an IP address, a network such as 192.0.2.0/24, or a MAC address." msgstr "Bir IP adresi, 192.0.2.0/24 gibi bir ağ ya da bir MAC adresi girin." -#: instances/views.py:177 instances/views.py:211 +#: instances/views.py:178 instances/views.py:212 msgid "Too many searches are still running; try again shortly." msgstr "Çok fazla arama hâlâ çalışıyor; birazdan yeniden deneyin." -#: instances/views.py:259 +#: instances/views.py:260 #, python-format msgid "The host %(host)s of '%(name)s' cannot be reached: %(error)s" msgstr "'%(name)s' sanal makinesinin sunucusu %(host)s erişilemiyor: %(error)s" -#: instances/views.py:265 +#: instances/views.py:266 #, python-format msgid "The host of '%(name)s' cannot be reached right now." msgstr "'%(name)s' sanal makinesinin sunucusuna şu anda erişilemiyor." -#: instances/views.py:266 +#: instances/views.py:267 msgid " Jobs on it can be followed under Jobs in the menu." msgstr " Üzerindeki işler menüdeki İşler bölümünden izlenebilir." -#: instances/views.py:368 +#: instances/views.py:275 +#, python-format +msgid "'%(name)s' is no longer on its host." +msgstr "'%(name)s' artık sunucusunda yok." + +#: instances/views.py:373 msgid "There is no other host to migrate to." msgstr "Taşınacak başka bir sunucu yok." -#: instances/views.py:370 +#: instances/views.py:375 msgid "A VM migrates when it is running, paused or shut off." msgstr "" "Sanal makine çalışırken, duraklatılmışken ya da kapalıyken taşınabilir." -#: instances/views.py:372 +#: instances/views.py:377 msgid "" "A VM with snapshots cannot be migrated: its snapshots stay on this host. " "Delete them first." @@ -5892,7 +5897,7 @@ msgstr "" "Anlık görüntüsü olan bir sanal makine taşınamaz: anlık görüntüleri bu " "sunucuda kalır. Önce onları silin." -#: instances/views.py:374 +#: instances/views.py:379 msgid "" "A VM with host devices cannot be migrated: the destination may not have them." " Remove them first." @@ -5900,11 +5905,11 @@ msgstr "" "Sunucu aygıtları olan bir sanal makine taşınamaz: hedefte bu aygıtlar " "olmayabilir. Önce onları kaldırın." -#: instances/views.py:636 +#: instances/views.py:641 msgid "The VM was moved meanwhile; try again." msgstr "Sanal makine bu arada taşındı; yeniden deneyin." -#: instances/views.py:748 +#: instances/views.py:757 msgid "" "The running VM has no free PCI slot for another disk on this bus: choose the " "scsi bus if the VM has a SCSI controller, or shut the VM down and add the " @@ -5917,7 +5922,7 @@ msgstr "" "yuvaları ekle, sonraki başlatmadan itibaren ona boş yuvalar verir. Yeni bir " "birim havuzunda kalır, mevcut birim olarak eklenebilir." -#: instances/views.py:752 +#: instances/views.py:761 msgid "" "The running VM has no free PCI slot for the SCSI controller the disk needs: " "shut the VM down and add the disk then; Add PCIe slots on the Disks tab gives" @@ -5929,191 +5934,191 @@ msgstr "" "PCIe yuvaları ekle, sonraki başlatmadan itibaren ona boş yuvalar verir. Yeni " "bir birim havuzunda kalır, mevcut birim olarak eklenebilir." -#: instances/views.py:770 +#: instances/views.py:779 #, python-format msgid "Invalid disk options: %(options)s" msgstr "Geçersiz disk seçenekleri: %(options)s" -#: instances/views.py:780 instances/views.py:795 +#: instances/views.py:789 instances/views.py:804 msgid "Templates cannot be started." msgstr "Şablon makineler başlatılamaz." -#: instances/views.py:891 +#: instances/views.py:900 #, python-format msgid "Disk %(path)s was kept: a disk file that stays needs it" msgstr "%(path)s diski korundu: kalan bir disk dosyası ona ihtiyaç duyuyor" -#: instances/views.py:897 +#: instances/views.py:906 #, python-format msgid "The VM is removed, but disk %(path)s was not deleted: %(err)s" msgstr "Sanal makine kaldırıldı, ancak %(path)s diski silinmedi: %(err)s" -#: instances/views.py:906 +#: instances/views.py:915 #, python-format msgid "Disk %(path)s is used by another VM and was kept" msgstr "" "%(path)s diski başka bir sanal makine tarafından kullanılıyor ve korundu" -#: instances/views.py:1028 +#: instances/views.py:1037 #, python-format msgid "Set the gstfsd key of %(compute)s first (Computes, edit the host)" msgstr "" "Önce %(compute)s sunucusunun gstfsd anahtarını ayarlayın (Sunucular, sunucuyu" " düzenle)" -#: instances/views.py:1035 instances/views.py:1050 instances/views.py:1059 +#: instances/views.py:1044 instances/views.py:1059 instances/views.py:1068 #, python-format msgid "gstfsd error: %(err)s" msgstr "gstfsd hatası: %(err)s" -#: instances/views.py:1060 +#: instances/views.py:1069 msgid "the reply is not signed with the key" msgstr "yanıt anahtarla imzalanmamış" -#: instances/views.py:1068 +#: instances/views.py:1077 msgid "Shut the VM down, or start its QEMU guest agent, and try again" msgstr "" "Sanal makineyi kapatın ya da QEMU konuk ajanını başlatın ve yeniden deneyin" -#: instances/views.py:1081 +#: instances/views.py:1090 msgid "The change may still be made when the agent answers again." msgstr "Ajan yeniden yanıt verdiğinde değişiklik yine de yapılabilir." -#: instances/views.py:1108 +#: instances/views.py:1117 msgid "Reset root password" msgstr "Root parolasını sıfırla" -#: instances/views.py:1112 +#: instances/views.py:1121 msgid "Enter a password" msgstr "Bir parola girin" -#: instances/views.py:1126 +#: instances/views.py:1135 msgid "Select an SSH public key" msgstr "Bir SSH açık anahtarı seçin" -#: instances/views.py:1148 +#: instances/views.py:1157 #, python-format msgid "Installed new SSH public key %(keyname)s" msgstr "Yeni %(keyname)s SSH açık anahtarı yüklendi" -#: instances/views.py:1168 +#: instances/views.py:1177 msgid "Enter a whole number of vCPUs" msgstr "vCPU sayısı için bir tam sayı girin" -#: instances/views.py:1172 +#: instances/views.py:1181 msgid "Shut off the VM to change its vCPUs" msgstr "vCPU'larını değiştirmek için sanal makineyi kapatın" -#: instances/views.py:1175 +#: instances/views.py:1184 msgid "The current vCPUs cannot be more than the maximum" msgstr "Geçerli vCPU sayısı en fazla değerden büyük olamaz" -#: instances/views.py:1182 +#: instances/views.py:1191 #, python-format msgid "%(quota)s: cannot resize the CPU of '%(instance_name)s'." msgstr "%(quota)s: '%(instance_name)s' CPU'su yeniden boyutlandırılamıyor." -#: instances/views.py:1190 +#: instances/views.py:1199 #, python-format msgid "vCPUs set to %(cur)s (maximum %(max)s)" msgstr "vCPU sayısı %(cur)s olarak ayarlandı (en fazla %(max)s)" -#: instances/views.py:1209 +#: instances/views.py:1218 msgid "Enter a whole number for memory" msgstr "Bellek için bir tam sayı girin" -#: instances/views.py:1212 +#: instances/views.py:1221 msgid "The current memory cannot be more than the maximum" msgstr "Geçerli bellek en fazla değerden büyük olamaz" -#: instances/views.py:1216 +#: instances/views.py:1225 #, python-format msgid "%(quota)s: cannot resize the memory of '%(instance_name)s'." msgstr "%(quota)s: '%(instance_name)s' belleği yeniden boyutlandırılamıyor." -#: instances/views.py:1222 +#: instances/views.py:1231 #, python-format msgid "Memory set to %(cur)s MiB (maximum %(max)s MiB)" msgstr "Bellek %(cur)s MiB olarak ayarlandı (en fazla %(max)s MiB)" -#: instances/views.py:1242 +#: instances/views.py:1251 msgid "Enter disk sizes as whole GiB" msgstr "Disk boyutlarını tam GiB olarak girin" -#: instances/views.py:1246 +#: instances/views.py:1255 #, python-format msgid "%(dev)s is %(size)s: a disk cannot shrink" msgstr "%(dev)s boyutu %(size)s: disk küçültülemez" -#: instances/views.py:1254 +#: instances/views.py:1263 msgid "No disks were selected or valid for resizing." msgstr "Boyutlandırma için seçilmiş ya da geçerli disk yok." -#: instances/views.py:1263 +#: instances/views.py:1272 #, python-format msgid "%(quota)s: cannot resize the disks of '%(instance_name)s'." msgstr "%(quota)s: '%(instance_name)s' diskleri yeniden boyutlandırılamıyor." -#: instances/views.py:1275 +#: instances/views.py:1284 #, python-format msgid "The storage pool of %(dev)s cannot resize its volumes" msgstr "%(dev)s diskinin depolama havuzu birimlerini boyutlandıramaz" -#: instances/views.py:1277 +#: instances/views.py:1286 #, python-format msgid "Disk is resized: %(dev)s" msgstr "Disk boyutu değiştirildi: %(dev)s" -#: instances/views.py:1371 +#: instances/views.py:1380 msgid "The VM's machine has no PCIe slots to add" msgstr "Sanal makinenin makine tipinde eklenecek PCIe yuvası yok" -#: instances/views.py:1376 +#: instances/views.py:1385 #, python-format msgid "%(count)s PCIe slots added" msgstr "%(count)s PCIe yuvası eklendi" -#: instances/views.py:1378 +#: instances/views.py:1387 #, python-format msgid "%(count)s PCIe slots added: the VM gets them at its next start" msgstr "" "%(count)s PCIe yuvası eklendi: sanal makine bunları sonraki başlatmasında " "alır" -#: instances/views.py:1424 +#: instances/views.py:1433 #, python-format msgid "%(volume)s is already a disk of this VM" msgstr "%(volume)s zaten bu sanal makinenin bir diski" -#: instances/views.py:1514 +#: instances/views.py:1523 msgid "Volume changes are applied. But it will be activated after shutdown" msgstr "" "Birim değişiklikleri uygulandı. Ama yeniden başlatıldıktan sonra uygulanacak" -#: instances/views.py:1519 +#: instances/views.py:1528 msgid "Volume is changed successfully." msgstr "Birim başarıyla değiştirildi." -#: instances/views.py:1537 +#: instances/views.py:1546 #, python-format msgid "Disk %(dev)s is not a storage volume of this instance" msgstr "%(dev)s diski bu sanal makinenin bir depolama birimi değil" -#: instances/views.py:1544 +#: instances/views.py:1553 #, python-format msgid "Disk %(dev)s has a pending change; delete it once the VM is shut down" msgstr "" "%(dev)s diskinin bekleyen bir değişikliği var; sanal makine kapatıldığında " "silin" -#: instances/views.py:1559 +#: instances/views.py:1568 #, python-format msgid "Volume %(vol)s is used by another VM; detach it instead" msgstr "" "%(vol)s birimi başka bir sanal makine tarafından kullanılıyor; onun yerine " "ayırın" -#: instances/views.py:1571 +#: instances/views.py:1580 #, python-format msgid "" "The guest has not released disk %(dev)s yet; volume %(vol)s was kept. Delete " @@ -6122,57 +6127,57 @@ msgstr "" "Konuk sistem %(dev)s diskini henüz bırakmadı; %(vol)s birimi korundu. Sanal " "makine kapatıldığında depolama havuzundan silin." -#: instances/views.py:1582 +#: instances/views.py:1591 #, python-format msgid "Disk %(dev)s was detached, but its volume was kept: %(err)s" msgstr "%(dev)s diski ayrıldı, ancak birimi korundu: %(err)s" -#: instances/views.py:1608 +#: instances/views.py:1617 #, python-format msgid "This VM cannot take a CD-ROM on the %(bus)s bus now" msgstr "Bu sanal makineye şu anda %(bus)s veri yolunda CD-ROM eklenemez" -#: instances/views.py:1611 +#: instances/views.py:1620 msgid "A USB CD-ROM needs an ISO image: libvirt has no empty USB drive" msgstr "USB CD-ROM bir ISO imajı ister: libvirt boş USB sürücü desteklemiyor" -#: instances/views.py:1692 +#: instances/views.py:1701 #, python-format msgid "Pool %(pool)s was not read again: %(err)s" msgstr "%(pool)s havuzu yeniden okunamadı: %(err)s" -#: instances/views.py:1713 +#: instances/views.py:1722 #, python-format msgid "Snapshot was not deleted: %(err)s" msgstr "Anlık görüntü silinmedi: %(err)s" -#: instances/views.py:1828 +#: instances/views.py:1837 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:1842 +#: instances/views.py:1851 msgid "Boot order changed. It applies at the next start." msgstr "Ön yükleme sırası değiştirildi. Sonraki başlatmada uygulanır." -#: instances/views.py:1844 +#: instances/views.py:1853 msgid "Boot order changed successfully." msgstr "Ön yükleme sırası başarıyla değiştirildi." -#: instances/views.py:1864 +#: instances/views.py:1873 msgid "The XML is empty" msgstr "XML boş" -#: instances/views.py:1868 instances/views.py:2492 +#: instances/views.py:1877 instances/views.py:2501 #, python-format msgid "The XML is not well-formed: %(error)s" msgstr "XML düzgün biçimlendirilmemiş: %(error)s" -#: instances/views.py:1870 +#: instances/views.py:1879 #, python-format msgid "The XML must keep the VM's UUID %(uuid)s." msgstr "XML, sanal makinenin %(uuid)s UUID'sini korumalıdır." -#: instances/views.py:1874 +#: instances/views.py:1883 msgid "" "The definition has changed since the editor was opened. Reload the page to " "edit the current one." @@ -6180,40 +6185,40 @@ msgstr "" "Düzenleyici açıldığından beri tanım değişti. Geçerli tanımı düzenlemek için " "sayfayı yeniden yükleyin." -#: instances/views.py:1886 +#: instances/views.py:1895 msgid "The XML definition was saved." msgstr "XML tanımı kaydedildi." -#: instances/views.py:1888 +#: instances/views.py:1897 msgid "The XML definition was saved; the VM uses it from its next start." msgstr "" "XML tanımı kaydedildi; sanal makine onu sonraki başlatmasından itibaren " "kullanır." -#: instances/views.py:1969 +#: instances/views.py:1978 msgid "Select one network interface to change" msgstr "Değiştirilecek bir ağ arabirimi seçin" -#: instances/views.py:2007 +#: instances/views.py:2016 msgid "Network Device Config is changed. Please shutdown instance to activate." msgstr "" "Ağ aygıtı yapılandırması değiştirildi. Aktifleştirmek için lütfen sanal " "makineyi kapatın." -#: instances/views.py:2009 +#: instances/views.py:2018 msgid "Network device changed" msgstr "Ağ aygıtı değiştirildi" -#: instances/views.py:2021 +#: instances/views.py:2030 msgid "No network selected" msgstr "Ağ seçilmedi" -#: instances/views.py:2026 +#: instances/views.py:2035 #, python-format msgid "The VM already has a network device with MAC %(mac)s" msgstr "Sanal makinede %(mac)s MAC adresli bir ağ aygıtı zaten var" -#: instances/views.py:2045 +#: instances/views.py:2054 msgid "" "The running VM has no free PCI slot for another network device: shut it down " "and add the device then; Add PCIe slots on the Disks tab gives it free ones " @@ -6223,21 +6228,21 @@ msgstr "" "aygıtı sonra ekleyin; Diskler sekmesindeki PCIe yuvaları ekle, sonraki " "başlatmadan itibaren ona boş yuvalar verir." -#: instances/views.py:2086 instances/views.py:2092 +#: instances/views.py:2095 instances/views.py:2101 msgid "The VM has it" msgstr "Sanal makinede var" -#: instances/views.py:2123 +#: instances/views.py:2132 #, python-format msgid "The host has no USB device %(device)s" msgstr "Sunucuda %(device)s USB aygıtı yok" -#: instances/views.py:2144 +#: instances/views.py:2153 #, python-format msgid "The host has no PCI device %(device)s" msgstr "Sunucuda %(device)s PCI aygıtı yok" -#: instances/views.py:2162 +#: instances/views.py:2171 #, python-format msgid "" "Removal of PCI device %(address)s requested: the guest has not let it go yet;" @@ -6247,20 +6252,20 @@ msgstr "" "bırakmadı; bırakana ya da sanal makine durana kadar çalışan sanal makinede " "kalır." -#: instances/views.py:2207 instances/views.py:2237 +#: instances/views.py:2216 instances/views.py:2246 msgid "Select a network interface and a QoS direction" msgstr "Bir ağ arabirimi ve bir QoS yönü seçin" -#: instances/views.py:2210 vrtManager/network.py:459 +#: instances/views.py:2219 vrtManager/network.py:459 msgid "QoS rates must be whole numbers" msgstr "QoS hızları tam sayı olmalıdır" -#: instances/views.py:2217 networks/views.py:229 +#: instances/views.py:2226 networks/views.py:229 #, python-format msgid "%(qos_dir)s QoS is set" msgstr "%(qos_dir)s QoS ayarlandı" -#: instances/views.py:2222 +#: instances/views.py:2231 #, python-format msgid "" "%(qos_dir)s QoS is set. A running VM gets it after it is powered off and on." @@ -6268,12 +6273,12 @@ msgstr "" "%(qos_dir)s QoS ayarlandı. Çalışan bir sanal makine, kapatılıp açıldıktan " "sonra bunu alır." -#: instances/views.py:2244 networks/views.py:255 +#: instances/views.py:2253 networks/views.py:255 #, python-format msgid "%(qos_dir)s QoS is deleted" msgstr "%(qos_dir)s QoS silindi" -#: instances/views.py:2249 +#: instances/views.py:2258 #, python-format msgid "" "%(qos_dir)s QoS is deleted. A running VM keeps the old limit until it is " @@ -6282,21 +6287,21 @@ msgstr "" "%(qos_dir)s QoS silindi. Çalışan bir sanal makine, kapatılıp açılana kadar " "eski sınırı korur." -#: instances/views.py:2277 +#: instances/views.py:2286 msgid "Only one owner is allowed and the one already added" msgstr "Sadece bir sahibe izin verilmiştir ve bir sahip zaten eklenmiş" -#: instances/views.py:2279 +#: instances/views.py:2288 #, python-format msgid "%(user)s is already an owner" msgstr "%(user)s zaten bir sahip" -#: instances/views.py:2323 +#: instances/views.py:2332 #, python-format msgid "Console settings were not saved: %(errors)s" msgstr "Konsol ayarları kaydedilmedi: %(errors)s" -#: instances/views.py:2345 +#: instances/views.py:2354 msgid "" "Error setting console password. You should check that your instance have an " "graphic device." @@ -6304,65 +6309,65 @@ msgstr "" "Konsol parolası ayarlanırken hata oluştu. Sanal makinenin bir grafik aygıtına" " sahip olduğundan emin olunuz." -#: instances/views.py:2392 +#: instances/views.py:2401 msgid "Shut the VM down to change whether it is a template." msgstr "Şablon olup olmadığını değiştirmek için sanal makineyi kapatın." -#: instances/views.py:2398 +#: instances/views.py:2407 #, python-format msgid "%(quota)s: '%(instance_name)s' stays a template." msgstr "%(quota)s: '%(instance_name)s' şablon olarak kalıyor." -#: instances/views.py:2480 +#: instances/views.py:2489 msgid "The XML has no name" msgstr "XML'de ad yok" -#: instances/views.py:2494 webvirtcloud/middleware.py:126 +#: instances/views.py:2503 webvirtcloud/middleware.py:126 #, python-format msgid "libvirt Error - %(exception)s" msgstr "libvirt Hatası - %(exception)s" -#: instances/views.py:2501 +#: instances/views.py:2510 msgid "An empty disk of the size you set" msgstr "Belirlediğiniz boyutta boş bir disk" -#: instances/views.py:2502 +#: instances/views.py:2511 msgid "Volumes already in a pool" msgstr "Bir havuzda zaten bulunan birimler" -#: instances/views.py:2503 +#: instances/views.py:2512 msgid "A copy of a template volume" msgstr "Bir şablon biriminin kopyası" -#: instances/views.py:2592 +#: instances/views.py:2601 msgid "You haven't defined any storage pools" msgstr "Hiç bir depolama havuzu tanımlamadınız" -#: instances/views.py:2594 +#: instances/views.py:2603 msgid "You haven't defined any network pools" msgstr "Hiç bir ağ havuzu tanımlamadınız" -#: instances/views.py:2657 +#: instances/views.py:2666 msgid "Flavor Created" msgstr "Flavor Oluşturuldu" -#: instances/views.py:2665 +#: instances/views.py:2674 msgid "Create Flavor" msgstr "Kullanıcı Oluştur" -#: instances/views.py:2680 +#: instances/views.py:2689 msgid "Flavor Updated" msgstr "Flavor Güncellendi" -#: instances/views.py:2686 +#: instances/views.py:2695 msgid "Update Flavor" msgstr "Flavor Güncelle" -#: instances/views.py:2698 +#: instances/views.py:2707 msgid "Flavor Deleted" msgstr "Flavor Silindi" -#: instances/views.py:2704 +#: instances/views.py:2713 msgid "Only the size template goes; VMs made from it keep their size." msgstr "" "Yalnızca boyut şablonu silinir; ondan oluşturulan sanal makineler boyutlarını" diff --git a/locale/zh/LC_MESSAGES/django.mo b/locale/zh/LC_MESSAGES/django.mo index 96d0c71b29f33ea9dd4c78d9c943060e4a8f4698..d624f42e7ff6db5e13301f887033b3aba9474e6a 100644 GIT binary patch delta 42974 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 delta 42897 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 GpZ@?U#WtJ( diff --git a/locale/zh/LC_MESSAGES/django.po b/locale/zh/LC_MESSAGES/django.po index d44f000c..52a908ee 100644 --- a/locale/zh/LC_MESSAGES/django.po +++ b/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-05 13:17+0000\n" +"POT-Creation-Date: 2026-11-05 13:37+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2807,7 +2807,7 @@ msgstr "libvirt 没有复制的结果;请检查这些卷,然后处理此任 msgid "Create VM" msgstr "创建虚拟机" -#: instances/jobs.py:759 instances/jobs.py:804 instances/views.py:2482 +#: instances/jobs.py:759 instances/jobs.py:804 instances/views.py:2491 msgid "A virtual machine with this name already exists" msgstr "同名虚拟机已存在" @@ -3157,7 +3157,7 @@ msgid "Disk source" msgstr "磁盘来源" #: instances/templates/add_instance_volume.html:21 -#: instances/templates/create_instance_w2.html:134 instances/views.py:2501 +#: instances/templates/create_instance_w2.html:134 instances/views.py:2510 msgid "New disk" msgstr "新磁盘" @@ -3521,7 +3521,7 @@ msgstr "自定义 CPU 型号" msgid "Size (GiB)" msgstr "大小(GiB)" -#: instances/templates/create_instance_w2.html:161 instances/views.py:2502 +#: instances/templates/create_instance_w2.html:161 instances/views.py:2511 msgid "Existing volumes" msgstr "已有卷" @@ -3557,7 +3557,7 @@ msgstr "设备" msgid "Remove" msgstr "移除" -#: instances/templates/create_instance_w2.html:194 instances/views.py:2503 +#: instances/templates/create_instance_w2.html:194 instances/views.py:2512 msgid "Clone from template" msgstr "从模板克隆" @@ -5563,53 +5563,58 @@ msgstr "无效的 MAC 地址" msgid "More MAC addresses than networks" msgstr "MAC 地址数量多于网络数量" -#: instances/views.py:171 +#: instances/views.py:172 msgid "Enter an IP address, a network such as 192.0.2.0/24, or a MAC address." msgstr "请输入 IP 地址、网络(如 192.0.2.0/24)或 MAC 地址。" -#: instances/views.py:177 instances/views.py:211 +#: instances/views.py:178 instances/views.py:212 msgid "Too many searches are still running; try again shortly." msgstr "仍在运行的搜索过多;请稍后再试。" -#: instances/views.py:259 +#: instances/views.py:260 #, python-format msgid "The host %(host)s of '%(name)s' cannot be reached: %(error)s" msgstr "无法连接“%(name)s”所在的主机 %(host)s:%(error)s" -#: instances/views.py:265 +#: instances/views.py:266 #, python-format msgid "The host of '%(name)s' cannot be reached right now." msgstr "目前无法连接“%(name)s”所在的主机。" -#: instances/views.py:266 +#: instances/views.py:267 msgid " Jobs on it can be followed under Jobs in the menu." msgstr " 其上的任务可在菜单的“任务”中跟踪。" -#: instances/views.py:368 +#: instances/views.py:275 +#, python-format +msgid "'%(name)s' is no longer on its host." +msgstr "“%(name)s”已不在其主机上。" + +#: instances/views.py:373 msgid "There is no other host to migrate to." msgstr "没有其他可迁移到的主机。" -#: instances/views.py:370 +#: instances/views.py:375 msgid "A VM migrates when it is running, paused or shut off." msgstr "虚拟机在运行、暂停或关机状态下均可迁移。" -#: instances/views.py:372 +#: instances/views.py:377 msgid "" "A VM with snapshots cannot be migrated: its snapshots stay on this host. " "Delete them first." msgstr "有快照的虚拟机无法迁移:其快照保留在本主机上。请先删除快照。" -#: instances/views.py:374 +#: instances/views.py:379 msgid "" "A VM with host devices cannot be migrated: the destination may not have them." " Remove them first." msgstr "有主机设备的虚拟机无法迁移:目标主机可能没有这些设备。请先移除它们。" -#: instances/views.py:636 +#: instances/views.py:641 msgid "The VM was moved meanwhile; try again." msgstr "该虚拟机在此期间已被移动;请重试。" -#: instances/views.py:748 +#: instances/views.py:757 msgid "" "The running VM has no free PCI slot for another disk on this bus: choose the " "scsi bus if the VM has a SCSI controller, or shut the VM down and add the " @@ -5619,7 +5624,7 @@ msgstr "" "运行中的虚拟机在此总线上没有可用 PCI 插槽来添加磁盘:如果虚拟机有 SCSI 控制器,请选择 scsi " "总线;或关闭虚拟机后再添加磁盘。“磁盘”选项卡上的“添加 PCIe 插槽”可使其从下次启动起获得可用插槽。新卷会保留在其存储池中,可作为现有卷挂载。" -#: instances/views.py:752 +#: instances/views.py:761 msgid "" "The running VM has no free PCI slot for the SCSI controller the disk needs: " "shut the VM down and add the disk then; Add PCIe slots on the Disks tab gives" @@ -5629,272 +5634,272 @@ msgstr "" "运行中的虚拟机没有可用 PCI 插槽来添加磁盘所需的 SCSI 控制器:请关闭虚拟机后再添加磁盘。“磁盘”选项卡上的“添加 PCIe " "插槽”可使其从下次启动起获得可用插槽。新卷会保留在其存储池中,可作为现有卷挂载。" -#: instances/views.py:770 +#: instances/views.py:779 #, python-format msgid "Invalid disk options: %(options)s" msgstr "无效的磁盘选项:%(options)s" -#: instances/views.py:780 instances/views.py:795 +#: instances/views.py:789 instances/views.py:804 msgid "Templates cannot be started." msgstr "模板无法启动。" -#: instances/views.py:891 +#: instances/views.py:900 #, python-format msgid "Disk %(path)s was kept: a disk file that stays needs it" msgstr "磁盘 %(path)s 已保留:某个保留的磁盘文件依赖它" -#: instances/views.py:897 +#: instances/views.py:906 #, python-format msgid "The VM is removed, but disk %(path)s was not deleted: %(err)s" msgstr "虚拟机已删除,但磁盘 %(path)s 未被删除:%(err)s" -#: instances/views.py:906 +#: instances/views.py:915 #, python-format msgid "Disk %(path)s is used by another VM and was kept" msgstr "磁盘 %(path)s 正被另一台虚拟机使用,已保留" -#: instances/views.py:1028 +#: instances/views.py:1037 #, python-format msgid "Set the gstfsd key of %(compute)s first (Computes, edit the host)" msgstr "请先设置 %(compute)s 的 gstfsd 密钥(计算节点,编辑该主机)" -#: instances/views.py:1035 instances/views.py:1050 instances/views.py:1059 +#: instances/views.py:1044 instances/views.py:1059 instances/views.py:1068 #, python-format msgid "gstfsd error: %(err)s" msgstr "gstfsd 错误:%(err)s" -#: instances/views.py:1060 +#: instances/views.py:1069 msgid "the reply is not signed with the key" msgstr "回复未使用该密钥签名" -#: instances/views.py:1068 +#: instances/views.py:1077 msgid "Shut the VM down, or start its QEMU guest agent, and try again" msgstr "请关闭虚拟机,或启动其 QEMU 客户机代理,然后重试" -#: instances/views.py:1081 +#: instances/views.py:1090 msgid "The change may still be made when the agent answers again." msgstr "当代理再次响应时,此更改仍可能生效。" -#: instances/views.py:1108 +#: instances/views.py:1117 msgid "Reset root password" msgstr "重置 root 密码" -#: instances/views.py:1112 +#: instances/views.py:1121 msgid "Enter a password" msgstr "请输入密码" -#: instances/views.py:1126 +#: instances/views.py:1135 msgid "Select an SSH public key" msgstr "请选择 SSH 公钥" -#: instances/views.py:1148 +#: instances/views.py:1157 #, python-format msgid "Installed new SSH public key %(keyname)s" msgstr "已安装新的 SSH 公钥 %(keyname)s" -#: instances/views.py:1168 +#: instances/views.py:1177 msgid "Enter a whole number of vCPUs" msgstr "请输入整数个 vCPU" -#: instances/views.py:1172 +#: instances/views.py:1181 msgid "Shut off the VM to change its vCPUs" msgstr "请关闭虚拟机以更改其 vCPU" -#: instances/views.py:1175 +#: instances/views.py:1184 msgid "The current vCPUs cannot be more than the maximum" msgstr "当前 vCPU 数不能超过最大值" -#: instances/views.py:1182 +#: instances/views.py:1191 #, python-format msgid "%(quota)s: cannot resize the CPU of '%(instance_name)s'." msgstr "%(quota)s:无法调整“%(instance_name)s”的 CPU。" -#: instances/views.py:1190 +#: instances/views.py:1199 #, python-format msgid "vCPUs set to %(cur)s (maximum %(max)s)" msgstr "vCPU 已设为 %(cur)s(最大 %(max)s)" -#: instances/views.py:1209 +#: instances/views.py:1218 msgid "Enter a whole number for memory" msgstr "请输入整数内存值" -#: instances/views.py:1212 +#: instances/views.py:1221 msgid "The current memory cannot be more than the maximum" msgstr "当前内存不能超过最大值" -#: instances/views.py:1216 +#: instances/views.py:1225 #, python-format msgid "%(quota)s: cannot resize the memory of '%(instance_name)s'." msgstr "%(quota)s:无法调整“%(instance_name)s”的内存。" -#: instances/views.py:1222 +#: instances/views.py:1231 #, python-format msgid "Memory set to %(cur)s MiB (maximum %(max)s MiB)" msgstr "内存已设为 %(cur)s MiB(最大 %(max)s MiB)" -#: instances/views.py:1242 +#: instances/views.py:1251 msgid "Enter disk sizes as whole GiB" msgstr "请以整数 GiB 输入磁盘大小" -#: instances/views.py:1246 +#: instances/views.py:1255 #, python-format msgid "%(dev)s is %(size)s: a disk cannot shrink" msgstr "%(dev)s 为 %(size)s:磁盘不能缩小" -#: instances/views.py:1254 +#: instances/views.py:1263 msgid "No disks were selected or valid for resizing." msgstr "未选择磁盘或没有可调整大小的有效磁盘。" -#: instances/views.py:1263 +#: instances/views.py:1272 #, python-format msgid "%(quota)s: cannot resize the disks of '%(instance_name)s'." msgstr "%(quota)s:无法调整“%(instance_name)s”的磁盘。" -#: instances/views.py:1275 +#: instances/views.py:1284 #, python-format msgid "The storage pool of %(dev)s cannot resize its volumes" msgstr "%(dev)s 所在的存储池无法调整其卷的大小" -#: instances/views.py:1277 +#: instances/views.py:1286 #, python-format msgid "Disk is resized: %(dev)s" msgstr "磁盘已调整大小:%(dev)s" -#: instances/views.py:1371 +#: instances/views.py:1380 msgid "The VM's machine has no PCIe slots to add" msgstr "该虚拟机的机器类型没有可添加的 PCIe 插槽" -#: instances/views.py:1376 +#: instances/views.py:1385 #, python-format msgid "%(count)s PCIe slots added" msgstr "已添加 %(count)s 个 PCIe 插槽" -#: instances/views.py:1378 +#: instances/views.py:1387 #, python-format msgid "%(count)s PCIe slots added: the VM gets them at its next start" msgstr "已添加 %(count)s 个 PCIe 插槽:虚拟机在下次启动时获得它们" -#: instances/views.py:1424 +#: instances/views.py:1433 #, python-format msgid "%(volume)s is already a disk of this VM" msgstr "%(volume)s 已是此虚拟机的磁盘" -#: instances/views.py:1514 +#: instances/views.py:1523 msgid "Volume changes are applied. But it will be activated after shutdown" msgstr "卷更改已应用,但将在关机后生效" -#: instances/views.py:1519 +#: instances/views.py:1528 msgid "Volume is changed successfully." msgstr "卷已成功更改。" -#: instances/views.py:1537 +#: instances/views.py:1546 #, python-format msgid "Disk %(dev)s is not a storage volume of this instance" msgstr "磁盘 %(dev)s 不是此虚拟机的存储卷" -#: instances/views.py:1544 +#: instances/views.py:1553 #, python-format msgid "Disk %(dev)s has a pending change; delete it once the VM is shut down" msgstr "磁盘 %(dev)s 有待生效的更改;请在虚拟机关机后删除它" -#: instances/views.py:1559 +#: instances/views.py:1568 #, python-format msgid "Volume %(vol)s is used by another VM; detach it instead" msgstr "卷 %(vol)s 正被另一台虚拟机使用;请改为分离它" -#: instances/views.py:1571 +#: instances/views.py:1580 #, python-format msgid "" "The guest has not released disk %(dev)s yet; volume %(vol)s was kept. Delete " "it from the storage pool once the VM is shut down." msgstr "客户机尚未释放磁盘 %(dev)s;卷 %(vol)s 已保留。请在虚拟机关机后从存储池中删除它。" -#: instances/views.py:1582 +#: instances/views.py:1591 #, python-format msgid "Disk %(dev)s was detached, but its volume was kept: %(err)s" msgstr "磁盘 %(dev)s 已分离,但其卷已保留:%(err)s" -#: instances/views.py:1608 +#: instances/views.py:1617 #, python-format msgid "This VM cannot take a CD-ROM on the %(bus)s bus now" msgstr "该虚拟机现在无法在 %(bus)s 总线上添加 CD-ROM" -#: instances/views.py:1611 +#: instances/views.py:1620 msgid "A USB CD-ROM needs an ISO image: libvirt has no empty USB drive" msgstr "USB CD-ROM 需要 ISO 镜像:libvirt 不支持空的 USB 驱动器" -#: instances/views.py:1692 +#: instances/views.py:1701 #, python-format msgid "Pool %(pool)s was not read again: %(err)s" msgstr "未重新读取存储池 %(pool)s:%(err)s" -#: instances/views.py:1713 +#: instances/views.py:1722 #, python-format msgid "Snapshot was not deleted: %(err)s" msgstr "快照未删除:%(err)s" -#: instances/views.py:1828 +#: instances/views.py:1837 msgid "Add at least one device to the boot order." msgstr "请至少向启动顺序中添加一个设备。" -#: instances/views.py:1842 +#: instances/views.py:1851 msgid "Boot order changed. It applies at the next start." msgstr "启动顺序已更改,将在下次启动时生效。" -#: instances/views.py:1844 +#: instances/views.py:1853 msgid "Boot order changed successfully." msgstr "启动顺序已成功更改。" -#: instances/views.py:1864 +#: instances/views.py:1873 msgid "The XML is empty" msgstr "XML 为空" -#: instances/views.py:1868 instances/views.py:2492 +#: instances/views.py:1877 instances/views.py:2501 #, python-format msgid "The XML is not well-formed: %(error)s" msgstr "XML 格式不正确:%(error)s" -#: instances/views.py:1870 +#: instances/views.py:1879 #, python-format msgid "The XML must keep the VM's UUID %(uuid)s." msgstr "XML 必须保留虚拟机的 UUID %(uuid)s。" -#: instances/views.py:1874 +#: instances/views.py:1883 msgid "" "The definition has changed since the editor was opened. Reload the page to " "edit the current one." msgstr "自打开编辑器以来定义已被更改。请重新加载页面以编辑当前定义。" -#: instances/views.py:1886 +#: instances/views.py:1895 msgid "The XML definition was saved." msgstr "XML 定义已保存。" -#: instances/views.py:1888 +#: instances/views.py:1897 msgid "The XML definition was saved; the VM uses it from its next start." msgstr "XML 定义已保存;虚拟机从下次启动起使用它。" -#: instances/views.py:1969 +#: instances/views.py:1978 msgid "Select one network interface to change" msgstr "请选择一个要更改的网络接口" -#: instances/views.py:2007 +#: instances/views.py:2016 msgid "Network Device Config is changed. Please shutdown instance to activate." msgstr "网络设备配置已更改。请关闭虚拟机以使其生效。" -#: instances/views.py:2009 +#: instances/views.py:2018 msgid "Network device changed" msgstr "网络设备已更改" -#: instances/views.py:2021 +#: instances/views.py:2030 msgid "No network selected" msgstr "未选择网络" -#: instances/views.py:2026 +#: instances/views.py:2035 #, python-format msgid "The VM already has a network device with MAC %(mac)s" msgstr "虚拟机已有 MAC 地址为 %(mac)s 的网络设备" -#: instances/views.py:2045 +#: instances/views.py:2054 msgid "" "The running VM has no free PCI slot for another network device: shut it down " "and add the device then; Add PCIe slots on the Disks tab gives it free ones " @@ -5902,137 +5907,137 @@ msgid "" msgstr "" "运行中的虚拟机没有可用 PCI 插槽来添加网络设备:请关机后再添加设备。“磁盘”选项卡上的“添加 PCIe 插槽”可使其从下次启动起获得可用插槽。" -#: instances/views.py:2086 instances/views.py:2092 +#: instances/views.py:2095 instances/views.py:2101 msgid "The VM has it" msgstr "虚拟机已有此设备" -#: instances/views.py:2123 +#: instances/views.py:2132 #, python-format msgid "The host has no USB device %(device)s" msgstr "主机上没有 USB 设备 %(device)s" -#: instances/views.py:2144 +#: instances/views.py:2153 #, python-format msgid "The host has no PCI device %(device)s" msgstr "主机上没有 PCI 设备 %(device)s" -#: instances/views.py:2162 +#: instances/views.py:2171 #, python-format msgid "" "Removal of PCI device %(address)s requested: the guest has not let it go yet;" " it stays in the running VM until it does or the VM stops." msgstr "已请求移除 PCI 设备 %(address)s:客户机尚未释放它;在客户机释放或虚拟机停止之前,它仍保留在运行中的虚拟机中。" -#: instances/views.py:2207 instances/views.py:2237 +#: instances/views.py:2216 instances/views.py:2246 msgid "Select a network interface and a QoS direction" msgstr "请选择网络接口和 QoS 方向" -#: instances/views.py:2210 vrtManager/network.py:459 +#: instances/views.py:2219 vrtManager/network.py:459 msgid "QoS rates must be whole numbers" msgstr "QoS 速率必须为整数" -#: instances/views.py:2217 networks/views.py:229 +#: instances/views.py:2226 networks/views.py:229 #, python-format msgid "%(qos_dir)s QoS is set" msgstr "%(qos_dir)s QoS 已设置" -#: instances/views.py:2222 +#: instances/views.py:2231 #, python-format msgid "" "%(qos_dir)s QoS is set. A running VM gets it after it is powered off and on." msgstr "%(qos_dir)s QoS 已设置。运行中的虚拟机需关机再开机后才能生效。" -#: instances/views.py:2244 networks/views.py:255 +#: instances/views.py:2253 networks/views.py:255 #, python-format msgid "%(qos_dir)s QoS is deleted" msgstr "%(qos_dir)s QoS 已删除" -#: instances/views.py:2249 +#: instances/views.py:2258 #, python-format msgid "" "%(qos_dir)s QoS is deleted. A running VM keeps the old limit until it is " "powered off and on." msgstr "%(qos_dir)s QoS 已删除。运行中的虚拟机在关机再开机之前保留旧的限制。" -#: instances/views.py:2277 +#: instances/views.py:2286 msgid "Only one owner is allowed and the one already added" msgstr "只允许一个所有者,且已添加" -#: instances/views.py:2279 +#: instances/views.py:2288 #, python-format msgid "%(user)s is already an owner" msgstr "%(user)s 已是所有者" -#: instances/views.py:2323 +#: instances/views.py:2332 #, python-format msgid "Console settings were not saved: %(errors)s" msgstr "控制台设置未保存:%(errors)s" -#: instances/views.py:2345 +#: instances/views.py:2354 msgid "" "Error setting console password. You should check that your instance have an " "graphic device." msgstr "设置控制台密码出错。请检查虚拟机是否有图形设备。" -#: instances/views.py:2392 +#: instances/views.py:2401 msgid "Shut the VM down to change whether it is a template." msgstr "请关闭虚拟机以更改其是否为模板。" -#: instances/views.py:2398 +#: instances/views.py:2407 #, python-format msgid "%(quota)s: '%(instance_name)s' stays a template." msgstr "%(quota)s:“%(instance_name)s”仍为模板。" -#: instances/views.py:2480 +#: instances/views.py:2489 msgid "The XML has no name" msgstr "XML 中没有名称" -#: instances/views.py:2494 webvirtcloud/middleware.py:126 +#: instances/views.py:2503 webvirtcloud/middleware.py:126 #, python-format msgid "libvirt Error - %(exception)s" msgstr "libvirt 错误 - %(exception)s" -#: instances/views.py:2501 +#: instances/views.py:2510 msgid "An empty disk of the size you set" msgstr "按设定大小创建的空磁盘" -#: instances/views.py:2502 +#: instances/views.py:2511 msgid "Volumes already in a pool" msgstr "存储池中已有的卷" -#: instances/views.py:2503 +#: instances/views.py:2512 msgid "A copy of a template volume" msgstr "模板卷的副本" -#: instances/views.py:2592 +#: instances/views.py:2601 msgid "You haven't defined any storage pools" msgstr "您尚未定义任何存储池" -#: instances/views.py:2594 +#: instances/views.py:2603 msgid "You haven't defined any network pools" msgstr "您尚未定义任何网络池" -#: instances/views.py:2657 +#: instances/views.py:2666 msgid "Flavor Created" msgstr "规格已创建" -#: instances/views.py:2665 +#: instances/views.py:2674 msgid "Create Flavor" msgstr "创建规格" -#: instances/views.py:2680 +#: instances/views.py:2689 msgid "Flavor Updated" msgstr "规格已更新" -#: instances/views.py:2686 +#: instances/views.py:2695 msgid "Update Flavor" msgstr "更新规格" -#: instances/views.py:2698 +#: instances/views.py:2707 msgid "Flavor Deleted" msgstr "规格已删除" -#: instances/views.py:2704 +#: instances/views.py:2713 msgid "Only the size template goes; VMs made from it keep their size." msgstr "仅删除此规格;由它创建的虚拟机保持其大小。"