--- version: '2.0' name: tripleo.validations.v1 description: TripleO Validations Workflows v1 workflows: run_validation: input: - validation_name - plan: overcloud - queue_name: tripleo tasks: notify_running: on-complete: run_validation action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_validation payload: validation_name: <% $.validation_name %> plan: <% $.plan %> status: RUNNING execution: <% execution() %> run_validation: on-success: send_message on-error: set_status_failed action: tripleo.validations.run_validation validation=<% $.validation_name %> plan=<% $.plan %> publish: status: SUCCESS stdout: <% task(run_validation).result.stdout %> stderr: <% task(run_validation).result.stderr %> set_status_failed: on-complete: send_message publish: status: FAILED stdout: <% task(run_validation).result.stdout %> stderr: <% task(run_validation).result.stderr %> send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_validation payload: validation_name: <% $.validation_name %> plan: <% $.plan %> status: <% $.get('status', 'SUCCESS') %> stdout: <% $.stdout %> stderr: <% $.stderr %> execution: <% execution() %> on-success: - fail: <% $.get('status') = "FAILED" %> run_validations: input: - validation_names: [] - plan: overcloud - queue_name: tripleo tasks: notify_running: on-complete: run_validations action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_validations payload: validation_names: <% $.validation_names %> plan: <% $.plan %> status: RUNNING execution: <% execution() %> run_validations: on-success: send_message on-error: set_status_failed workflow: tripleo.validations.v1.run_validation validation_name=<% $.validation %> plan=<% $.plan %> queue_name=<% $.queue_name %> with-items: validation in <% $.validation_names %> publish: status: SUCCESS set_status_failed: on-complete: send_message publish: status: FAILED send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_validations payload: validation_names: <% $.validation_names %> plan: <% $.plan %> status: <% $.get('status', 'SUCCESS') %> execution: <% execution() %> on-success: - fail: <% $.get('status') = "FAILED" %> run_groups: input: - group_names: [] - plan: overcloud - queue_name: tripleo tasks: find_validations: on-success: notify_running action: tripleo.validations.list_validations groups=<% $.group_names %> publish: validations: <% task(find_validations).result %> notify_running: on-complete: run_validation_group action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_validations payload: group_names: <% $.group_names %> validation_names: <% $.validations.id %> plan: <% $.plan %> status: RUNNING execution: <% execution() %> run_validation_group: on-success: send_message on-error: set_status_failed workflow: tripleo.validations.v1.run_validation validation_name=<% $.validation %> plan=<% $.plan %> queue_name=<% $.queue_name %> with-items: validation in <% $.validations.id %> publish: status: SUCCESS set_status_failed: on-complete: send_message publish: status: FAILED send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.run_groups payload: group_names: <% $.group_names %> validation_names: <% $.validations.id %> plan: <% $.plan %> status: <% $.get('status', 'SUCCESS') %> execution: <% execution() %> on-success: - fail: <% $.get('status') = "FAILED" %> list: input: - group_names: [] tasks: find_validations: action: tripleo.validations.list_validations groups=<% $.group_names %> list_groups: tasks: find_groups: action: tripleo.validations.list_groups add_validation_ssh_key_parameter: input: - container - queue_name: tripleo tasks: test_validations_enabled: action: tripleo.validations.enabled on-success: get_pubkey on-error: unset_validation_key_parameter get_pubkey: action: tripleo.validations.get_pubkey on-success: set_validation_key_parameter publish: pubkey: <% task(get_pubkey).result %> set_validation_key_parameter: action: tripleo.parameters.update input: parameters: node_admin_extra_ssh_keys: <% $.pubkey %> container: <% $.container %> # NOTE(shadower): We need to clear keys from a previous deployment unset_validation_key_parameter: action: tripleo.parameters.update input: parameters: node_admin_extra_ssh_keys: "" container: <% $.container %> copy_ssh_key: input: - overcloud_admin: heat-admin - queue_name: tripleo tasks: get_servers: action: nova.servers_list on-success: get_pubkey publish: servers: <% task(get_servers).result._info %> get_pubkey: action: tripleo.validations.get_pubkey on-success: deploy_ssh_key publish: pubkey: <% task(get_pubkey).result %> deploy_ssh_key: workflow: tripleo.deployment.v1.deploy_on_server with-items: server in <% $.servers %> input: server_name: <% $.server.name %> server_uuid: <% $.server.id %> config: | #!/bin/bash if ! grep "<% $.pubkey %>" /home/<% $.overcloud_admin %>/.ssh/authorized_keys; then echo "<% $.pubkey %>" >> /home/<% $.overcloud_admin %>/.ssh/authorized_keys fi config_name: copy_ssh_key group: script queue_name: <% $.queue_name %> check_boot_images: input: - deploy_kernel_name: 'bm-deploy-kernel' - deploy_ramdisk_name: 'bm-deploy-ramdisk' - run_validations: true - queue_name: tripleo output: errors: <% $.errors %> warnings: <% $.warnings %> kernel_id: <% $.kernel_id %> ramdisk_id: <% $.ramdisk_id %> tasks: check_run_validations: on-complete: - get_images: <% $.run_validations %> - send_message: <% not $.run_validations %> get_images: action: glance.images_list on-success: check_images publish: images: <% task(get_images).result %> check_images: action: tripleo.validations.check_boot_images input: images: <% $.images %> 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(check_images).result.kernel_id %> ramdisk_id: <% task(check_images).result.ramdisk_id %> warnings: <% task(check_images).result.warnings %> errors: <% task(check_images).result.errors %> publish-on-error: kernel_id: <% task(check_images).result.kernel_id %> ramdisk_id: <% task(check_images).result.ramdisk_id %> warnings: <% task(check_images).result.warnings %> errors: <% task(check_images).result.errors %> fail_check_images: on-success: send_message publish: status: FAILED message: <% task(check_images).result %> send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.check_boot_images payload: status: <% $.get('status', 'SUCCESS') %> message: <% $.get('message', '') %> execution: <% execution() %> kernel_id: <% $.kernel_id %> ramdisk_id: <% $.ramdisk_id %> errors: <% $.errors %> warnings: <% $.warnings %> on-success: - fail: <% $.get('status') = "FAILED" %> collect_flavors: input: - roles_info: {} - run_validations: true - queue_name: tripleo output: errors: <% $.errors %> warnings: <% $.warnings %> flavors: <% $.flavors %> tasks: check_run_validations: on-complete: - get_flavors: <% $.run_validations %> - send_message: <% not $.run_validations %> get_flavors: action: nova.flavors_list on-success: check_flavors publish: nova_flavors: <% task(get_flavors).result %> check_flavors: action: tripleo.validations.check_flavors input: flavors: <% $.nova_flavors %> roles_info: <% $.roles_info %> on-success: send_message on-error: fail_check_flavors publish: flavors: <% task(check_flavors).result.flavors %> errors: <% task(check_flavors).result.errors %> warnings: <% task(check_flavors).result.warnings %> publish-on-error: flavors: {} errors: <% task(check_flavors).result.errors %> warnings: <% task(check_flavors).result.warnings %> fail_check_flavors: on-success: send_message publish: status: FAILED message: <% task(check_flavors).result %> send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.collect_flavors payload: status: <% $.get('status', 'SUCCESS') %> message: <% $.get('message', '') %> execution: <% execution() %> flavors: <% $.flavors %> errors: <% $.errors %> warnings: <% $.warnings %> on-success: - fail: <% $.get('status') = "FAILED" %> check_ironic_boot_configuration: input: - kernel_id: null - ramdisk_id: null - run_validations: true - queue_name: tripleo output: errors: <% $.errors %> warnings: <% $.warnings %> tasks: check_run_validations: on-complete: - get_ironic_nodes: <% $.run_validations %> - send_message: <% not $.run_validations %> get_ironic_nodes: action: ironic.node_list on-success: check_node_boot_configuration on-error: failed_get_ironic_nodes input: maintenance: false detail: true publish: nodes: <% task(get_ironic_nodes).result %> failed_get_ironic_nodes: on-success: send_message publish: status: FAILED message: <% task(get_ironic_nodes).result %> check_node_boot_configuration: action: tripleo.validations.check_node_boot_configuration input: node: <% $.node %> kernel_id: <% $.kernel_id %> ramdisk_id: <% $.ramdisk_id %> with-items: node in <% $.nodes %> on-success: send_message on-error: fail_check_node_boot_configuration publish: errors: <% task(check_node_boot_configuration).result.errors.flatten() %> warnings: <% task(check_node_boot_configuration).result.warnings.flatten() %> publish-on-error: errors: <% task(check_node_boot_configuration).result.errors.flatten() %> warnings: <% task(check_node_boot_configuration).result.warnings.flatten() %> fail_check_node_boot_configuration: on-success: send_message publish: status: FAILED message: <% task(check_node_boot_configuration).result %> send_message: action: zaqar.queue_post retry: count=5 delay=1 input: queue_name: <% $.queue_name %> messages: body: type: tripleo.validations.v1.check_ironic_boot_configuration payload: status: <% $.get('status', 'SUCCESS') %> message: <% $.get('message', '') %> execution: <% execution() %> errors: <% $.errors %> warnings: <% $.warnings %> on-success: - fail: <% $.get('status') = "FAILED" %>