Alessandro Pilotti 10 лет назад
Родитель
Сommit
e44b801339
2 измененных файлов с 11 добавлено и 3 удалено
  1. 9 2
      coriolis/conductor/rpc/server.py
  2. 2 1
      coriolis/db/api.py

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

@@ -5,6 +5,7 @@ from oslo_log import log as logging
 from coriolis import constants
 from coriolis import constants
 from coriolis.db import api as db_api
 from coriolis.db import api as db_api
 from coriolis.db.sqlalchemy import models
 from coriolis.db.sqlalchemy import models
+from coriolis import exception
 from coriolis.worker.rpc import client as rpc_worker_client
 from coriolis.worker.rpc import client as rpc_worker_client
 
 
 VERSION = "1.0"
 VERSION = "1.0"
@@ -61,8 +62,14 @@ class ConductorServerEndpoint(object):
 
 
         return self.get_migration(ctxt, migration.id)
         return self.get_migration(ctxt, migration.id)
 
 
-    def delete_migration(self, ctxt, migration_id):
+    def _get_migration(self, ctxt, migration_id):
         migration = db_api.get_migration(ctxt, migration_id)
         migration = db_api.get_migration(ctxt, migration_id)
+        if not migration:
+            raise exception.NotFound("Migration not found: %s" % migration_id)
+        return migration
+
+    def delete_migration(self, ctxt, migration_id):
+        migration = self._get_migration(ctxt, migration_id)
         for task in migration.tasks:
         for task in migration.tasks:
             if task.status == constants.TASK_STATUS_STARTED:
             if task.status == constants.TASK_STATUS_STARTED:
                 raise exception.CoriolisException(
                 raise exception.CoriolisException(
@@ -70,7 +77,7 @@ class ConductorServerEndpoint(object):
         db_api.delete_migration(ctxt, migration_id)
         db_api.delete_migration(ctxt, migration_id)
 
 
     def stop_instances_migration(self, ctxt, migration_id):
     def stop_instances_migration(self, ctxt, migration_id):
-        migration = db_api.get_migration(ctxt, migration_id)
+        migration = self._get_migration(ctxt, migration_id)
         for task in migration.tasks:
         for task in migration.tasks:
             if task.status == constants.TASK_STATUS_STARTED:
             if task.status == constants.TASK_STATUS_STARTED:
                 self._rpc_worker_client.stop_task(
                 self._rpc_worker_client.stop_task(

+ 2 - 1
coriolis/db/api.py

@@ -5,6 +5,7 @@ from oslo_db.sqlalchemy import enginefacade
 from sqlalchemy import orm
 from sqlalchemy import orm
 
 
 from coriolis.db.sqlalchemy import models
 from coriolis.db.sqlalchemy import models
+from coriolis import exception
 
 
 CONF = cfg.CONF
 CONF = cfg.CONF
 db_options.set_defaults(CONF)
 db_options.set_defaults(CONF)
@@ -79,7 +80,7 @@ def delete_migration(context, migration_id):
     count = _soft_delete_aware_query(context, models.Migration).filter_by(
     count = _soft_delete_aware_query(context, models.Migration).filter_by(
         project_id=context.tenant, id=migration_id).soft_delete()
         project_id=context.tenant, id=migration_id).soft_delete()
     if count == 0:
     if count == 0:
-        raise exception.CoriolisException("0 entries were soft deleted")
+        raise exception.NotFound("0 entries were soft deleted")
 
 
 
 
 @enginefacade.writer
 @enginefacade.writer