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

Adds proper OpenStack hypervisor matching

Alessandro Pilotti 10 лет назад
Родитель
Сommit
ec898bf132
2 измененных файлов с 12 добавлено и 1 удалено
  1. 1 0
      coriolis/constants.py
  2. 11 1
      coriolis/providers/openstack/__init__.py

+ 1 - 0
coriolis/constants.py

@@ -22,6 +22,7 @@ DISK_FORMAT_VHDX = 'vhdx'
 
 HYPERVISOR_VMWARE = "vmware"
 HYPERVISOR_HYPERV = "hyperv"
+HYPERVISOR_QEMU = "qemu"
 HYPERVISOR_KVM = "kvm"
 HYPERVISOR_XENSERVER = "xenserver"
 

+ 11 - 1
coriolis/providers/openstack/__init__.py

@@ -452,11 +452,14 @@ class ImportProvider(base.BaseImportProvider):
 
                 guest_conn_info = migr_resources.get_guest_connection_info()
 
+            osmorphing_hypervisor_type = self._get_osmorphing_hypervisor_type(
+                hypervisor_type)
+
             self._event_manager.progress_update(
                 "Preparing instance for target platform")
             osmorphing_manager.morph_image(guest_conn_info,
                                            os_type,
-                                           hypervisor_type,
+                                           osmorphing_hypervisor_type,
                                            constants.PLATFORM_OPENSTACK,
                                            nics_info,
                                            self._event_manager)
@@ -498,6 +501,13 @@ class ImportProvider(base.BaseImportProvider):
         self._create_target_instance(
             nova, flavor_name, instance_name, keypair_name, ports, volumes)
 
+    def _get_osmorphing_hypervisor_type(self, hypervisor_type):
+        if (hypervisor_type and
+                hypervisor_type.lower() == constants.HYPERVISOR_QEMU):
+            return constants.HYPERVISOR_KVM
+        elif hypervisor_type:
+            return hypervisor_type.lower()
+
     @utils.retry_on_error()
     def _create_target_instance(self, nova, flavor_name, instance_name,
                                 keypair_name, ports, volumes):