Moving task cache update into task creation transaction

Doing this we avoid inclusion of task cache update statement into the next
transaction which may cause different problems such as deadlocks.
(update happens inside make_astute_message() function)

Change-Id: I865b98beb621bee089cf79f1304498fd3637d64f
Closes-Bug: #1618852
This commit is contained in:
Georgy Kibardin 2017-03-15 13:36:05 +03:00
parent 847e9a81b9
commit 2caa56fa6e
1 changed files with 12 additions and 21 deletions

View File

@ -946,24 +946,18 @@ class StopDeploymentTask(object):
}
}
)
db().commit()
return rpc_message
@classmethod
def execute(cls, task, deploy_task=None, provision_task=None):
db().commit()
messages = []
if provision_task:
rpc.cast(
'naily',
cls.message(task, provision_task),
service=True
)
messages.append(cls.message(task, provision_task))
if deploy_task:
rpc.cast(
'naily',
cls.message(task, deploy_task),
service=True
)
messages.append(cls.message(task, deploy_task))
db().commit()
for msg in messages:
rpc.cast('naily', msg, service=True)
class ResetEnvironmentTask(object):
@ -1962,8 +1956,9 @@ class CheckRepoAvailability(BaseNetworkVerification):
return rpc_message
def execute(self):
message = self.get_message()
db().commit()
rpc.cast('naily', self.get_message())
rpc.cast('naily', message)
def _get_nodes_to_check(self):
nodes = [{'uid': consts.MASTER_NODE_UID}]
@ -2091,11 +2086,9 @@ class CreateStatsUserTask(object):
@classmethod
def execute(cls, task, primary_controller):
message = cls.message(task, primary_controller)
db().commit()
rpc.cast(
'naily',
cls.message(task, primary_controller)
)
rpc.cast('naily', message)
class RemoveStatsUserTask(object):
@ -2124,11 +2117,9 @@ class RemoveStatsUserTask(object):
@classmethod
def execute(cls, task, primary_controller):
message = cls.message(task, primary_controller)
db().commit()
rpc.cast(
'naily',
cls.message(task, primary_controller)
)
rpc.cast('naily', message)
class UpdateOpenstackConfigTask(BaseDeploymentTask):