Merge "Wait for the stack lock to be released"

This commit is contained in:
Jenkins 2015-05-05 13:26:27 +00:00 committed by Gerrit Code Review
commit e294154f17
1 changed files with 26 additions and 9 deletions

View File

@ -328,15 +328,32 @@ class HeatIntegrationTest(testscenarios.WithScenarios,
env_files = files or {}
parameters = parameters or {}
stack_name = stack_identifier.split('/')[0]
self.client.stacks.update(
stack_id=stack_identifier,
stack_name=stack_name,
template=template,
files=env_files,
disable_rollback=disable_rollback,
parameters=parameters,
environment=env
)
build_timeout = self.conf.build_timeout
build_interval = self.conf.build_interval
start = timeutils.utcnow()
while timeutils.delta_seconds(start,
timeutils.utcnow()) < build_timeout:
try:
self.client.stacks.update(
stack_id=stack_identifier,
stack_name=stack_name,
template=template,
files=env_files,
disable_rollback=disable_rollback,
parameters=parameters,
environment=env
)
except heat_exceptions.HTTPConflict as ex:
# FIXME(sirushtim): Wait a little for the stack lock to be
# released and hopefully, the stack should be updatable again.
if ex.error['error']['type'] != 'ActionInProgress':
raise ex
time.sleep(build_interval)
else:
break
kwargs = {'stack_identifier': stack_identifier,
'status': expected_status}
if expected_status in ['ROLLBACK_COMPLETE']: