Include active nodes when matching nodes by profile

When matching nodes by profile, consider nodes in either the 'active'
or 'available' provisioning states. Unless nodes in the 'active' state
are included, the derived parameters workflow fails on stack updates.

Co-Authored-By: Alan Bishop <abishop@redhat.com>
Change-Id: I575d0c358b9efccdefddb26258839def43ebeafd
Closes-Bug: #1752893
This commit is contained in:
John Fulton 2018-03-02 15:33:09 +00:00 committed by Alan Bishop
parent c0ffcbff9c
commit 4820e11d1e
1 changed files with 12 additions and 1 deletions

View File

@ -926,19 +926,30 @@ workflows:
- tripleo-common-managed
tasks:
get_active_nodes:
action: ironic.node_list maintenance=false provision_state='active' detail=true
on-success: get_available_nodes
on-error: set_status_failed_get_active_nodes
get_available_nodes:
action: ironic.node_list maintenance=false provision_state='available' detail=true
on-success: get_matching_nodes
on-error: set_status_failed_get_available_nodes
get_matching_nodes:
with-items: node in <% task(get_available_nodes).result %>
with-items: node in <% task(get_available_nodes).result + task(get_active_nodes).result %>
action: tripleo.baremetal.get_profile node=<% $.node %>
on-success: send_message
on-error: set_status_failed_get_matching_nodes
publish:
matching_nodes: <% let(input_profile_name => $.profile) -> task().result.where($.profile = $input_profile_name).uuid %>
set_status_failed_get_active_nodes:
on-success: send_message
publish:
status: FAILED
message: <% task(get_active_nodes).result %>
set_status_failed_get_available_nodes:
on-success: send_message
publish: