Просмотр исходного кода

Merge pull request #58 from Dany9966/replica-type

Add 'type' field to tasks executions.
Nashwan Azhari 6 лет назад
Родитель
Сommit
c7ffd1471c

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

@@ -316,6 +316,7 @@ class ConductorServerEndpoint(object):
         execution.id = str(uuid.uuid4())
         execution.status = constants.EXECUTION_STATUS_RUNNING
         execution.action = replica
+        execution.type = constants.EXECUTION_TYPE_REPLICA_EXECUTION
 
         for instance in execution.action.instances:
             get_instance_info_task = self._create_task(
@@ -440,6 +441,7 @@ class ConductorServerEndpoint(object):
         execution.id = str(uuid.uuid4())
         execution.status = constants.EXECUTION_STATUS_RUNNING
         execution.action = replica
+        execution.type = constants.EXECUTION_TYPE_REPLICA_DISKS_DELETE
 
         has_tasks = False
         for instance in replica.instances:
@@ -599,6 +601,7 @@ class ConductorServerEndpoint(object):
         migration.executions = [execution]
         execution.status = constants.EXECUTION_STATUS_RUNNING
         execution.number = 1
+        execution.type = constants.EXECUTION_TYPE_REPLICA_DEPLOY
 
         for instance in instances:
             validate_replica_desployment_inputs_task = self._create_task(
@@ -697,6 +700,7 @@ class ConductorServerEndpoint(object):
         execution = models.TasksExecution()
         execution.status = constants.EXECUTION_STATUS_RUNNING
         execution.number = 1
+        execution.type = constants.EXECUTION_TYPE_MIGRATION
         migration.executions = [execution]
         migration.instances = instances
         migration.info = {}
@@ -1128,6 +1132,7 @@ class ConductorServerEndpoint(object):
         execution.id = str(uuid.uuid4())
         execution.status = constants.EXECUTION_STATUS_RUNNING
         execution.action = replica
+        execution.type = constants.EXECUTION_TYPE_REPLICA_UPDATE
 
         LOG.debug(
             "Replica '%s' info pre-replica-update: %s",

+ 6 - 0
coriolis/constants.py

@@ -119,3 +119,9 @@ VALID_COMPRESSION_FORMATS = [
     COMPRESSION_FORMAT_GZIP,
     COMPRESSION_FORMAT_ZLIB
 ]
+
+EXECUTION_TYPE_REPLICA_EXECUTION = "replica_execution"
+EXECUTION_TYPE_REPLICA_DISKS_DELETE = "replica_disks_delete"
+EXECUTION_TYPE_REPLICA_DEPLOY = "replica_deploy"
+EXECUTION_TYPE_MIGRATION = "migration"
+EXECUTION_TYPE_REPLICA_UPDATE = "replica_update"

+ 17 - 0
coriolis/db/sqlalchemy/migrate_repo/versions/011_adds_execution_type.py

@@ -0,0 +1,17 @@
+# Copyright 2019 Cloudbase Solutions Srl
+# All Rights Reserved.
+
+import sqlalchemy
+
+
+def upgrade(migrate_engine):
+    meta = sqlalchemy.MetaData()
+    meta.bind = migrate_engine
+
+    # add 'type' column to 'tasks_execution':
+    tasks_execution = sqlalchemy.Table(
+        'tasks_execution', meta, autoload=True)
+
+    execution_type = sqlalchemy.Column(
+        "type", sqlalchemy.String(20))
+    tasks_execution.create_column(execution_type)

+ 1 - 0
coriolis/db/sqlalchemy/models.py

@@ -84,6 +84,7 @@ class TasksExecution(BASE, models.TimestampMixin, models.ModelBase,
                              backref=orm.backref('execution'))
     status = sqlalchemy.Column(sqlalchemy.String(100), nullable=False)
     number = sqlalchemy.Column(sqlalchemy.Integer, nullable=False)
+    type = sqlalchemy.Column(sqlalchemy.String(20))
 
 
 class BaseTransferAction(BASE, models.TimestampMixin, models.ModelBase,