Make the validations workflow a bit more robust

The validations workflows would fail in strange ways in certain
conditions. This refactors the workflows a bit and makes the result
checking more robust by using the get() yaql function.

Change-Id: I6e37df8989cab507c4f404094d127db1bac51c1b
Closes-Bug: #1723170
This commit is contained in:
Brad P. Crochet 2018-01-19 14:36:27 -05:00 committed by Dougal Matthews
parent aa44e05495
commit 25170a889a
1 changed files with 62 additions and 96 deletions

View File

@ -303,23 +303,19 @@ workflows:
deploy_kernel_name: <% $.deploy_kernel_name %>
deploy_ramdisk_name: <% $.deploy_ramdisk_name %>
on-success: send_message
on-error: fail_check_images
publish:
kernel_id: <% task().result.kernel_id %>
ramdisk_id: <% task().result.ramdisk_id %>
warnings: <% task().result.warnings %>
errors: <% task().result.errors %>
on-error: send_message
publish-on-error:
kernel_id: <% task().result.kernel_id %>
ramdisk_id: <% task().result.ramdisk_id %>
warnings: <% task().result.warnings %>
errors: <% task().result.errors %>
fail_check_images:
on-success: send_message
publish:
status: FAILED
message: <% task(check_images).result %>
message: <% task().result %>
send_message:
action: zaqar.queue_post
@ -364,21 +360,17 @@ workflows:
input:
roles_info: <% $.roles_info %>
on-success: send_message
on-error: fail_check_flavors
publish:
flavors: <% task().result.flavors %>
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
on-error: send_message
publish-on-error:
flavors: {}
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
fail_check_flavors:
on-success: send_message
publish:
status: FAILED
message: <% task(check_flavors).result %>
message: <% task().result %>
send_message:
action: zaqar.queue_post
@ -419,20 +411,17 @@ workflows:
get_ironic_nodes:
action: ironic.node_list
on-success: check_node_boot_configuration
on-error: failed_get_ironic_nodes
input:
provision_state: available
maintenance: false
detail: true
on-success: check_node_boot_configuration
publish:
nodes: <% task().result %>
failed_get_ironic_nodes:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(get_ironic_nodes).result %>
message: <% task().result %>
check_node_boot_configuration:
action: tripleo.validations.check_node_boot_configuration
@ -442,19 +431,15 @@ workflows:
ramdisk_id: <% $.ramdisk_id %>
with-items: node in <% $.nodes %>
on-success: send_message
on-error: fail_check_node_boot_configuration
publish:
errors: <% task().result.errors.flatten() %>
warnings: <% task().result.warnings.flatten() %>
on-error: send_message
publish-on-error:
errors: <% task().result.errors.flatten() %>
warnings: <% task().result.warnings.flatten() %>
fail_check_node_boot_configuration:
on-success: send_message
publish:
status: FAILED
message: <% task(check_node_boot_configuration).result %>
message: <% task().result %>
send_message:
action: zaqar.queue_post
@ -493,19 +478,16 @@ workflows:
get_ironic_nodes:
action: ironic.node_list
on-success: verify_profiles
on-error: failed_get_ironic_nodes
input:
maintenance: false
detail: true
on-success: verify_profiles
publish:
nodes: <% task().result %>
failed_get_ironic_nodes:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(get_ironic_nodes).result %>
message: <% task().result %>
verify_profiles:
action: tripleo.validations.verify_profiles
@ -513,19 +495,15 @@ workflows:
nodes: <% $.nodes %>
flavors: <% $.flavors %>
on-success: send_message
on-error: fail_verify_profiles
publish:
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
on-error: send_message
publish-on-error:
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
fail_verify_profiles:
on-success: send_message
publish:
status: Failed
message: <% task(verify_profiles).result %>
status: FAILED
message: <% task().result %>
send_message:
action: zaqar.queue_post
@ -568,15 +546,12 @@ workflows:
get_hypervisor_statistics:
action: nova.hypervisors_statistics
on-success: get_stack
on-error: fail_get_hypervisor_statistics
publish:
statistics: <% task().result %>
fail_get_hypervisor_statistics:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(get_hypervisor_statistics).result %>
message: <% task().result %>
errors: []
warnings: []
statistics: null
@ -586,45 +561,39 @@ workflows:
input:
stack_id: <% $.stack_id %>
on-success: get_associated_nodes
on-error: get_associated_nodes
publish:
stack: <% task().result %>
on-error: get_associated_nodes
publish-on-error:
stack: null
get_associated_nodes:
action: ironic.node_list
on-success: get_available_nodes
on-error: fail_get_associated_nodes
input:
associated: true
on-success: get_available_nodes
publish:
associated_nodes: <% task().result %>
fail_get_associated_nodes:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(get_associated_nodes).result %>
message: <% task().result %>
errors: []
warnings: []
get_available_nodes:
action: ironic.node_list
on-success: check_nodes_count
on-error: fail_get_available_nodes
input:
provision_state: available
associated: false
maintenance: false
on-success: check_nodes_count
publish:
available_nodes: <% task().result %>
fail_get_available_nodes:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(get_available_nodes).result %>
message: <% task().result %>
errors: []
warnings: []
@ -638,19 +607,16 @@ workflows:
parameters: <% $.parameters %>
default_role_counts: <% $.default_role_counts %>
on-success: send_message
on-error: fail_check_nodes_count
publish:
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
fail_check_nodes_count:
on-success: send_message
publish:
on-error: send_message
publish-on-error:
status: FAILED
message: <% task(check_nodes_count).result %>
message: <% task().result %>
statistics: null
errors: <% task(check_nodes_count).result.errors %>
warnings: <% task(check_nodes_count).result.warnings %>
errors: <% task().result.errors %>
warnings: <% task().result.warnings %>
send_message:
action: zaqar.queue_post
@ -705,15 +671,15 @@ workflows:
run_validations: <% $.run_validations %>
queue_name: <% $.queue_name %>
publish:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
kernel_id: <% task().result.kernel_id %>
ramdisk_id: <% task().result.ramdisk_id %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
kernel_id: <% task().result.get('kernel_id') %>
ramdisk_id: <% task().result.get('ramdisk_id') %>
publish-on-error:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
kernel_id: <% task().result.kernel_id %>
ramdisk_id: <% task().result.ramdisk_id %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
kernel_id: <% task().result.get('kernel_id') %>
ramdisk_id: <% task().result.get('ramdisk_id') %>
status: FAILED
on-success: collect_flavors
on-error: collect_flavors
@ -725,13 +691,13 @@ workflows:
run_validations: <% $.run_validations %>
queue_name: <% $.queue_name %>
publish:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
flavors: <% task().result.flavors %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
flavors: <% task().result.get('flavors') %>
publish-on-error:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
flavors: <% task().result.flavors %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
flavors: <% task().result.get('flavors') %>
status: FAILED
on-success: check_ironic_boot_configuration
on-error: check_ironic_boot_configuration
@ -744,11 +710,11 @@ workflows:
run_validations: <% $.run_validations %>
queue_name: <% $.queue_name %>
publish:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
publish-on-error:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
status: FAILED
on-success: verify_profiles
on-error: verify_profiles
@ -760,11 +726,11 @@ workflows:
run_validations: <% $.run_validations %>
queue_name: <% $.queue_name %>
publish:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
publish-on-error:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
status: FAILED
on-success: check_default_nodes_count
on-error: check_default_nodes_count
@ -780,13 +746,13 @@ workflows:
run_validations: <% $.run_validations %>
queue_name: <% $.queue_name %>
publish:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
statistics: <% task().result.statistics %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
statistics: <% task().result.get('statistics') %>
publish-on-error:
errors: <% $.errors + task().result.errors %>
warnings: <% $.warnings + task().result.warnings %>
statistics: <% task().result.statistics %>
errors: <% $.errors + task().result.get('errors', []) %>
warnings: <% $.warnings + task().result.get('warnings', []) %>
statistics: <% task().result.get('statistics') %>
status: FAILED
on-success: send_message
on-error: send_message