Alessandro Pilotti 10 лет назад
Родитель
Сommit
51219c9f51

+ 4 - 5
coriolis/api/v1/migrations.py

@@ -11,9 +11,8 @@ class MigrationController(object):
         super(MigrationController, self).__init__()
 
     def show(self, req, id):
-        return migration_view.format_migration(
-            req, self._migration_api.get_migration(
-                req.environ["coriolis.context"], id))
+        return migration_view.single(req, self._migration_api.get_migration(
+            req.environ["coriolis.context"], id))
 
     def index(self, req):
         return migration_view.collection(
@@ -49,8 +48,8 @@ class MigrationController(object):
 
     def create(self, req, body):
         origin, destination, instances = self._validate_create_body(body)
-        self._migration_api.start(
-            req.environ['coriolis.context'], origin, destination, instances)
+        return migration_view.single(req, self._migration_api.start(
+            req.environ['coriolis.context'], origin, destination, instances))
 
     def delete(self, req, id):
         self._migration_api.stop(req.environ['coriolis.context'], id)

+ 6 - 2
coriolis/api/v1/views/migration_view.py

@@ -1,7 +1,7 @@
 import itertools
 
 
-def format_migration(req, migration, keys=None):
+def _format_migration(req, migration, keys=None):
     def transform(key, value):
         if keys and key not in keys:
             return
@@ -11,7 +11,11 @@ def format_migration(req, migration, keys=None):
         transform(k, v) for k, v in migration.items()))
 
 
+def single(req, migration):
+    return {"migration": _format_migration(req, migration)}
+
+
 def collection(req, migrations):
-    formatted_migrations = [format_migration(req, m)
+    formatted_migrations = [_format_migration(req, m)
                             for m in migrations]
     return {'migrations': formatted_migrations}

+ 1 - 1
coriolis/conductor/rpc/client.py

@@ -18,7 +18,7 @@ class ConductorClient(object):
             ctxt, 'get_migration', migration_id=migration_id)
 
     def begin_migrate_instances(self, ctxt, origin, destination, instances):
-        self._client.call(
+        return self._client.call(
             ctxt, 'migrate_instances', origin=origin, destination=destination,
             instances=instances)
 

+ 2 - 0
coriolis/conductor/rpc/server.py

@@ -46,6 +46,8 @@ class ConductorServerEndpoint(object):
             self._rpc_worker_client.begin_export_instance(
                 ctxt, task.id, origin, instance)
 
+        return self.get_migration(ctxt, migration.id)
+
     def stop_instances_migration(self, ctxt, migration_id):
         migration = db_api.get_migration(ctxt, migration_id)
         for task in migration.tasks:

+ 2 - 2
coriolis/migrations/api.py

@@ -6,8 +6,8 @@ class API(object):
         self._rpc_client = rpc_client.ConductorClient()
 
     def start(self, ctxt, origin, destination, instances):
-        self._rpc_client.begin_migrate_instances(ctxt, origin, destination,
-                                                 instances)
+        return self._rpc_client.begin_migrate_instances(
+            ctxt, origin, destination, instances)
 
     def stop(ctxt, self, migration_id):
         self._rpc_client.stop_instances_migration(ctxt, migration_id)