Fix Swift ring deployment and Newton to Ocata upgrades

If an upgrade started without the latest newton/stable version of
tripleo-common, this currently will fail because the temporary URLs are
not created.

While debugging this I noticed that the workflow is not correct;
actually the Swift ring temporary URLs need to be created always before
starting the deployment. Without this patch, temporary URLs were not
created if validations are not run - which was the case when upgrading
the overcloud.

This needs to be fixed for Ocata even if the latest stable/newton
release has been deployed before the upgrade started, otherwise it might
just fail later on (if there are any deployments without doing the
validations).

Closes-Bug: 1669068
Change-Id: I765498c668932e3c95caeb53e4b73d00990898f4
This commit is contained in:
Christian Schwede 2017-03-01 19:09:04 +01:00
parent 380a2d8622
commit d51deebc7d
1 changed files with 16 additions and 16 deletions

View File

@ -121,7 +121,7 @@ workflows:
queue_name: <% $.queue_name %>
on-complete:
- run_validations: <% $.run_validations %>
- get_heat_stack: <% not $.run_validations %>
- check_container: <% not $.run_validations %>
run_validations:
workflow: tripleo.validations.v1.run_groups
@ -130,7 +130,7 @@ workflows:
- 'pre-deployment'
plan: <% $.container %>
queue_name: <% $.queue_name %>
on-success: get_heat_stack
on-success: check_container
on-error: set_validations_failed
set_validations_failed:
@ -139,19 +139,6 @@ workflows:
status: FAILED
message: <% task(run_validations).result %>
get_heat_stack:
action: heat.stacks_get stack_id=<% $.container %>
on-error: check_container
on-success:
- set_stack_in_progress: <% "_IN_PROGRESS" in task(get_heat_stack).result.stack_status %>
- deploy: <% not "_IN_PROGRESS" in task(get_heat_stack).result.stack_status %>
set_stack_in_progress:
on-success: send_message
publish:
status: FAILED
message: The Heat stack is busy.
check_container:
action: swift.head_container container=<% $.container %>
on-success: get_tempurl
@ -190,7 +177,20 @@ workflows:
parameters:
SwiftRingPutTempurl: <% task(put_tempurl).result %>
container: <% $.container %>
on-success: deploy
on-success: get_heat_stack
get_heat_stack:
action: heat.stacks_get stack_id=<% $.container %>
on-error: deploy
on-success:
- set_stack_in_progress: <% "_IN_PROGRESS" in task(get_heat_stack).result.stack_status %>
- deploy: <% not "_IN_PROGRESS" in task(get_heat_stack).result.stack_status %>
set_stack_in_progress:
on-success: send_message
publish:
status: FAILED
message: The Heat stack is busy.
deploy:
action: tripleo.deployment.deploy