Kaynağa Gözat

Refactors 'validate_replica_import_input'.

This patch adds 'check_os_morphing_resources" and
"check_final_vm_resources" kwargs to 'validate_replica_import_input'
method, so that it's aware whether or not to check for migration inputs.
Daniel Vincze 6 yıl önce
ebeveyn
işleme
318328cca8

+ 2 - 1
coriolis/providers/base.py

@@ -265,7 +265,8 @@ class BaseReplicaImportValidationProvider(
 
     @abc.abstractmethod
     def validate_replica_import_input(
-            self, ctxt, connection_info, target_environment, export_info):
+            self, ctxt, connection_info, target_environment, export_info,
+            check_os_morphing_resources=False, check_final_vm_params=False):
         """ Validates the provided Replica parameters """
         pass
 

+ 6 - 1
coriolis/tasks/migration_tasks.py

@@ -74,7 +74,12 @@ class ValidateMigrationSourceInputsTask(
 
 class ValidateMigrationDestinationInputsTask(
         replica_tasks.ValidateReplicaExecutionDestinationInputsTask):
-    pass
+    def _validate_provider_replica_import_input(
+            self, provider, ctxt, conn_info, target_environment, export_info):
+        provider.validate_replica_import_input(
+            ctxt, conn_info, target_environment, export_info,
+            check_os_morphing_resources=True,
+            check_final_vm_params=True)
 
 
 class DeleteMigrationSourceResourcesTask(

+ 10 - 3
coriolis/tasks/replica_tasks.py

@@ -470,6 +470,13 @@ class ValidateReplicaExecutionSourceInputsTask(base.TaskRunner):
 
 
 class ValidateReplicaExecutionDestinationInputsTask(base.TaskRunner):
+    def _validate_provider_replica_import_input(
+            self, provider, ctxt, conn_info, target_environment, export_info):
+        provider.validate_replica_import_input(
+            ctxt, conn_info, target_environment, export_info,
+            check_os_morphing_resources=False,
+            check_final_vm_params=False)
+
     def run(self, ctxt, instance, origin, destination, task_info,
             event_handler):
         event_manager = events.EventManager(event_handler)
@@ -497,9 +504,9 @@ class ValidateReplicaExecutionDestinationInputsTask(base.TaskRunner):
         # NOTE: the target environment JSON schema should have been validated
         # upon accepting the Replica API creation request.
         target_environment = destination.get("target_environment", {})
-        destination_provider.validate_replica_import_input(
-            ctxt, destination_connection_info, target_environment,
-            export_info)
+        self._validate_provider_replica_import_input(
+            destination_provider, ctxt, destination_connection_info,
+            target_environment, export_info)
 
         return task_info