Explorar el Código

Merge pull request #236 from Dany9966/minion-disk-attach-update

Minion machine disk attachment update
Daniel Vincze hace 3 años
padre
commit
ca0e9f731e
Se han modificado 2 ficheros con 24 adiciones y 4 borrados
  1. 1 1
      coriolis/providers/replicator.py
  2. 23 3
      coriolis/tasks/minion_pool_tasks.py

+ 1 - 1
coriolis/providers/replicator.py

@@ -661,7 +661,7 @@ class Replicator(object):
             utils.exec_ssh_cmd(
                 ssh,
                 "sudo %(replicator_cmd)s gen-certs -output-dir "
-                "%(cert_dir)s -certificate-hosts %(extra_hosts)s" % {
+                "%(cert_dir)s -certificate-hosts 127.0.0.1,%(extra_hosts)s" % {
                     "replicator_cmd": REPLICATOR_PATH,
                     "cert_dir": remote_base_dir,
                     "extra_hosts": ip,

+ 23 - 3
coriolis/tasks/minion_pool_tasks.py

@@ -377,6 +377,11 @@ class _BaseVolumesMinionMachineAttachmentTask(base.TaskRunner):
         raise NotImplementedError(
             "No minion disk attachment task info field specified.")
 
+    @classmethod
+    def _get_minion_connection_info_task_info_field(cls):
+        raise NotImplementedError(
+            "No minion disk attachment task info field specified.")
+
     @classmethod
     def _get_provider_disk_operation(cls, provider):
         raise NotImplementedError(
@@ -410,8 +415,11 @@ class _BaseVolumesMinionMachineAttachmentTask(base.TaskRunner):
         volumes_info = self._get_volumes_info_from_task_info(task_info)
         minion_properties = task_info[
             self._get_minion_properties_task_info_field()]
+        minion_connection_info = task_info[
+            self._get_minion_connection_info_task_info_field()]
         res = self._get_provider_disk_operation(provider)(
-            ctxt, connection_info, minion_properties, volumes_info)
+            ctxt, connection_info, minion_properties,
+            minion_connection_info, volumes_info)
 
         missing_result_props = [
             prop for prop in ["volumes_info", "minion_properties"]
@@ -419,9 +427,9 @@ class _BaseVolumesMinionMachineAttachmentTask(base.TaskRunner):
         if missing_result_props:
             raise exception.CoriolisException(
                 "The following properties were missing from minion disk "
-                "operation '%s' from platform '%s'." % (
+                "operation '%s' from platform '%s': %s" % (
                     self._get_provider_disk_operation.__name__,
-                    platform_to_target))
+                    platform_to_target, missing_result_props))
 
         field_name_map = self._get_minion_task_info_field_mappings()
         result = {
@@ -474,6 +482,10 @@ class AttachVolumesToSourceMinionTask(_BaseAttachVolumesToTransferMinionTask):
     def _get_minion_properties_task_info_field(cls):
         return "origin_minion_provider_properties"
 
+    @classmethod
+    def _get_minion_connection_info_task_info_field(cls):
+        return "origin_minion_connection_info"
+
     @classmethod
     def get_volumes_info_from_task_info(cls, task_info):
         return task_info["volumes_info"]
@@ -505,6 +517,10 @@ class AttachVolumesToDestinationMinionTask(
     def _get_minion_properties_task_info_field(cls):
         return "destination_minion_provider_properties"
 
+    @classmethod
+    def _get_minion_connection_info_task_info_field(cls):
+        return "destination_minion_connection_info"
+
     @classmethod
     def _get_provider_disk_operation(cls, provider):
         return provider.attach_volumes_to_minion
@@ -553,6 +569,10 @@ class AttachVolumesToOSMorphingMinionTask(
     def _get_minion_properties_task_info_field(cls):
         return "osmorphing_minion_provider_properties"
 
+    @classmethod
+    def _get_minion_connection_info_task_info_field(cls):
+        return "osmorphing_minion_connection_info"
+
     @classmethod
     def _get_provider_disk_operation(cls, provider):
         return provider.attach_volumes_to_minion