Browse Source

Merge pull request #121 from aznashwan/dont-sanitize-db-results

Do not sanitize action info before saving to DB.
Nashwan Azhari 6 năm trước cách đây
mục cha
commit
4749866783
2 tập tin đã thay đổi với 19 bổ sung7 xóa
  1. 15 3
      coriolis/conductor/rpc/server.py
  2. 4 4
      coriolis/tasks/replica_tasks.py

+ 15 - 3
coriolis/conductor/rpc/server.py

@@ -731,7 +731,21 @@ class ConductorServerEndpoint(object):
                 "instances. Ensure that the replica has been executed "
                 "successfully priorly" % replica_id)
 
+        # ensure we're passing the updated target-env options on the
+        # parent Replica itself in case of a Replica update:
+        dest_env = copy.deepcopy(replica.destination_environment)
+        dest_env['network_map'] = replica.network_map
+        dest_env['storage_mappings'] = replica.storage_mappings
+        for instance in replica.instances:
+            replica.info[instance].update({
+                "target_environment": dest_env})
+
         self._check_execution_tasks_sanity(execution, replica.info)
+
+        # update the action info for all of the Replicas' instnaces:
+        for instance in replica.instances:
+            db_api.update_transfer_action_info_for_instance(
+                ctxt, replica.id, instance, replica.info[instance])
         db_api.add_replica_tasks_execution(ctxt, execution)
         LOG.info("Replica tasks execution created: %s", execution.id)
 
@@ -1960,9 +1974,7 @@ class ConductorServerEndpoint(object):
                             task_result)})
                 updated_task_info = (
                     db_api.update_transfer_action_info_for_instance(
-                        ctxt, action_id, task.instance,
-                        utils.sanitize_task_info(
-                            task_result)))
+                        ctxt, action_id, task.instance, task_result))
             else:
                 action = db_api.get_action(ctxt, action_id)
                 updated_task_info = action.info[task.instance]

+ 4 - 4
coriolis/tasks/replica_tasks.py

@@ -238,12 +238,12 @@ class DeleteReplicaDisksTask(base.TaskRunner):
         if volumes_info:
             LOG.warn(
                 "'volumes_info' should have been void after disk "
-                "deletion task but it is: %s" % volumes_info)
-        elif volumes_info is None:
-            volumes_info = []
+                "deletion task but it is: %s" % (
+                    utils.sanitize_task_info({
+                        'volumes_info': volumes_info})))
 
         return {
-            'volumes_info': volumes_info}
+            'volumes_info': []}
 
 
 class DeployReplicaSourceResourcesTask(base.TaskRunner):