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
(cherry picked from commit 2caa56fa6e)
This commit is contained in:
Georgy Kibardin 2017-03-15 13:36:05 +03:00
parent 94b19f4edf
commit d7ee3e8e4b
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):