Просмотр исходного кода

Improves VMare export exception handling

Alessandro Pilotti 10 лет назад
Родитель
Сommit
4a81c8003c
2 измененных файлов с 8 добавлено и 1 удалено
  1. 4 0
      coriolis/exception.py
  2. 4 1
      coriolis/providers/vmware_vsphere/__init__.py

+ 4 - 0
coriolis/exception.py

@@ -197,6 +197,10 @@ class FileNotFound(NotFound):
     message = _("File %(file_path)s could not be found.")
 
 
+class InstanceNotFound(NotFound):
+    message = _("Instance \"%(instance_name)s\" could not be found.")
+
+
 class Duplicate(CoriolisException):
     pass
 

+ 4 - 1
coriolis/providers/vmware_vsphere/__init__.py

@@ -69,7 +69,10 @@ class ExportProvider(base.BaseExportProvider):
         # TODO: provide path selection
         datacenter = si.content.rootFolder.childEntity[0]
         vms = datacenter.vmFolder.childEntity
-        vm = [vm for vm in vms if vm.name == instance_name][0]
+        l = [vm for vm in vms if vm.name == instance_name]
+        if not l:
+            raise exception.InstanceNotFound(instance_name=instance_name)
+        vm = l[0]
 
         firmware_type_map = {
             vim.vm.GuestOsDescriptor.FirmwareType.bios: 'BIOS',