From f791f5b3cdba607649b5f2cffda8ca177f5100ba Mon Sep 17 00:00:00 2001 From: Sagi Shnaidman Date: Sun, 26 Mar 2017 19:48:33 +0300 Subject: [PATCH] Add pipefail to each command that piped with timestamp When pipe is added to command, it should still exit with its result code, so save it by setting pipeline option before each command. Close-Bug: #1676156 Change-Id: Ibbe49b4a15a5b7825447a563fe35af85fd48b3ff --- roles/baremetal-undercloud/tasks/machine-provisioning.yml | 1 + roles/build-images/tasks/main.yml | 1 + roles/collect-logs/tasks/create-docs.yml | 1 + roles/install-built-repo/tasks/install_built_repo.yml | 1 + roles/overcloud-delete/tasks/main.yml | 1 + roles/overcloud-deploy/tasks/deploy-overcloud.yml | 1 + roles/overcloud-deploy/tasks/deployed-server.yml | 1 + roles/overcloud-deploy/tasks/post-deploy.yml | 1 + roles/overcloud-prep-config/tasks/main.yml | 2 ++ .../tasks/overcloud-prep-containers.yml | 1 + .../overcloud-prep-flavors/tasks/overcloud-prep-flavors.yml | 1 + roles/overcloud-prep-images/tasks/overcloud-prep-images.yml | 1 + .../overcloud-prep-network/tasks/overcloud-prep-network.yml | 1 + roles/overcloud-scale/tasks/delete-original-node.yml | 1 + roles/overcloud-scale/tasks/scale-nodes.yml | 1 + roles/overcloud-ssl/tasks/main.yml | 1 + roles/overcloud-upgrade/tasks/pre-undercloud.yml | 1 + roles/overcloud-upgrade/tasks/upgrade-overcloud.yml | 5 +++-- roles/overcloud-upgrade/tasks/upgrade-undercloud.yml | 5 +++-- roles/repo-setup/tasks/setup_repos.yml | 1 + roles/undercloud-deploy/tasks/install-undercloud.yml | 1 + roles/undercloud-deploy/tasks/novajoin_prep.yml | 2 ++ roles/undercloud-setup/tasks/package_installs.yml | 1 + roles/undercloud-setup/tasks/toci_vxlan_networking.yml | 2 ++ roles/validate-sanity-checks/tasks/sanity-checks.yml | 1 + roles/validate-simple/tasks/main.yml | 1 + roles/validate-tempest/tasks/run-tempest.yml | 3 ++- roles/validate-undercloud/tasks/main.yml | 2 ++ 28 files changed, 37 insertions(+), 5 deletions(-) diff --git a/roles/baremetal-undercloud/tasks/machine-provisioning.yml b/roles/baremetal-undercloud/tasks/machine-provisioning.yml index 13487bb84..058673fe4 100644 --- a/roles/baremetal-undercloud/tasks/machine-provisioning.yml +++ b/roles/baremetal-undercloud/tasks/machine-provisioning.yml @@ -1,5 +1,6 @@ - name: Provision script execution shell: > + set -o pipefail && {{ baremetal_provisioning_script }} 2>&1 {{ timestamper_cmd }} > {{ baremetal_provisioning_log }} when: step_provide_undercloud diff --git a/roles/build-images/tasks/main.yml b/roles/build-images/tasks/main.yml index 64187520e..634b27d1f 100644 --- a/roles/build-images/tasks/main.yml +++ b/roles/build-images/tasks/main.yml @@ -29,6 +29,7 @@ - name: run the image build script (direct) shell: > + set -o pipefail && {{ images_working_dir }}/overcloud_image_build_script.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ overcloud_image_build_log }} args: diff --git a/roles/collect-logs/tasks/create-docs.yml b/roles/collect-logs/tasks/create-docs.yml index 7f885dbfc..65425eac7 100644 --- a/roles/collect-logs/tasks/create-docs.yml +++ b/roles/collect-logs/tasks/create-docs.yml @@ -38,6 +38,7 @@ - name: Build docs with Sphinx shell: > + set -o pipefail && sphinx-build -b html "{{ artcl_docs_source_dir }}" "{{ artcl_docs_build_dir }}" 2>&1 {{ timestamper_cmd }} > {{ artcl_collect_dir }}/docs/sphinx_build.log ignore_errors: yes diff --git a/roles/install-built-repo/tasks/install_built_repo.yml b/roles/install-built-repo/tasks/install_built_repo.yml index de7c4869b..145014b49 100644 --- a/roles/install-built-repo/tasks/install_built_repo.yml +++ b/roles/install-built-repo/tasks/install_built_repo.yml @@ -1,5 +1,6 @@ - name: Setup repos on live host shell: > + set -o pipefail && {{ ib_repo_workdir }}/install-built-repo.sh 2>&1 {{ timestamper_cmd }} > {{ ib_repo_install_log }} become: true diff --git a/roles/overcloud-delete/tasks/main.yml b/roles/overcloud-delete/tasks/main.yml index 326620ccc..436c1d905 100644 --- a/roles/overcloud-delete/tasks/main.yml +++ b/roles/overcloud-delete/tasks/main.yml @@ -13,6 +13,7 @@ block: - name: Delete the overcloud shell: > + set -o pipefail && {{ working_dir }}/overcloud-delete.sh 2>&1 {{ timestamper_cmd }} > {{ delete_log }} tags: - overcloud-delete diff --git a/roles/overcloud-deploy/tasks/deploy-overcloud.yml b/roles/overcloud-deploy/tasks/deploy-overcloud.yml index 7828e384b..a5ab1969f 100644 --- a/roles/overcloud-deploy/tasks/deploy-overcloud.yml +++ b/roles/overcloud-deploy/tasks/deploy-overcloud.yml @@ -1,5 +1,6 @@ - name: Deploy the overcloud shell: > + set -o pipefail && {{ working_dir }}/overcloud-deploy.sh 2>&1 {{ timestamper_cmd }} > {{ deploy_log }} register: deploy_script_result ignore_errors: True diff --git a/roles/overcloud-deploy/tasks/deployed-server.yml b/roles/overcloud-deploy/tasks/deployed-server.yml index 9529409d3..a72c2d851 100644 --- a/roles/overcloud-deploy/tasks/deployed-server.yml +++ b/roles/overcloud-deploy/tasks/deployed-server.yml @@ -8,6 +8,7 @@ - name: Run the deployed-server_prepare script shell: > + set -o pipefail && {{ working_dir }}/deployed_server_prepare.sh 2>&1 {{ timestamper_cmd }} > {{ deployed_server_prepare_log }} async: 10800 diff --git a/roles/overcloud-deploy/tasks/post-deploy.yml b/roles/overcloud-deploy/tasks/post-deploy.yml index 1742a1ac1..fb42879a9 100644 --- a/roles/overcloud-deploy/tasks/post-deploy.yml +++ b/roles/overcloud-deploy/tasks/post-deploy.yml @@ -9,6 +9,7 @@ - name: Run post-deploy script shell: > + set -o pipefail && {{ working_dir }}/overcloud-deploy-post.sh 2>&1 {{ timestamper_cmd }} > {{ post_deploy_log }} changed_when: true diff --git a/roles/overcloud-prep-config/tasks/main.yml b/roles/overcloud-prep-config/tasks/main.yml index 6a14bc4ec..b61e10279 100644 --- a/roles/overcloud-prep-config/tasks/main.yml +++ b/roles/overcloud-prep-config/tasks/main.yml @@ -44,6 +44,7 @@ - name: Modify the nic-configs file to use Linux bonds shell: > + set -o pipefail && {{ working_dir }}/bond-with-vlans-copy-nic-configs.sh 2>&1 {{ timestamper_cmd }} > {{ bond_with_vlans_nic_configs_log }} @@ -61,6 +62,7 @@ - name: Checkout custom tht heat templates from src shell: > + set -o pipefail && {{ working_dir }}/overcloud-custom-tht-script.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_custom_tht_log }} diff --git a/roles/overcloud-prep-containers/tasks/overcloud-prep-containers.yml b/roles/overcloud-prep-containers/tasks/overcloud-prep-containers.yml index 73aa07b23..2af819e98 100644 --- a/roles/overcloud-prep-containers/tasks/overcloud-prep-containers.yml +++ b/roles/overcloud-prep-containers/tasks/overcloud-prep-containers.yml @@ -1,6 +1,7 @@ --- - name: Prepare for the containerized deployment shell: > + set -o pipefail && {{ working_dir }}/overcloud-prep-containers.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_containers_log }} when: containerized_overcloud|bool diff --git a/roles/overcloud-prep-flavors/tasks/overcloud-prep-flavors.yml b/roles/overcloud-prep-flavors/tasks/overcloud-prep-flavors.yml index 3772fed83..9dfc493b5 100644 --- a/roles/overcloud-prep-flavors/tasks/overcloud-prep-flavors.yml +++ b/roles/overcloud-prep-flavors/tasks/overcloud-prep-flavors.yml @@ -1,4 +1,5 @@ - name: Prepare the scripts for overcloud flavors shell: > + set -o pipefail && {{ working_dir }}/overcloud-prep-flavors.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_flavors_log }} diff --git a/roles/overcloud-prep-images/tasks/overcloud-prep-images.yml b/roles/overcloud-prep-images/tasks/overcloud-prep-images.yml index 291fe5d3c..4a7f8ba00 100644 --- a/roles/overcloud-prep-images/tasks/overcloud-prep-images.yml +++ b/roles/overcloud-prep-images/tasks/overcloud-prep-images.yml @@ -1,4 +1,5 @@ - name: Prepare the overcloud images for deploy shell: > + set -o pipefail && {{ working_dir }}/overcloud-prep-images.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_images_log }} diff --git a/roles/overcloud-prep-network/tasks/overcloud-prep-network.yml b/roles/overcloud-prep-network/tasks/overcloud-prep-network.yml index 77520b06f..de1c0a70f 100644 --- a/roles/overcloud-prep-network/tasks/overcloud-prep-network.yml +++ b/roles/overcloud-prep-network/tasks/overcloud-prep-network.yml @@ -1,4 +1,5 @@ - name: Prepare the network-isolation required networks on the undercloud shell: > + set -o pipefail && {{ working_dir }}/overcloud-prep-network.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_network_log }} diff --git a/roles/overcloud-scale/tasks/delete-original-node.yml b/roles/overcloud-scale/tasks/delete-original-node.yml index 6411f75e2..28f1debe0 100644 --- a/roles/overcloud-scale/tasks/delete-original-node.yml +++ b/roles/overcloud-scale/tasks/delete-original-node.yml @@ -35,6 +35,7 @@ - name: Delete node by id shell: > cat {{ working_dir }}/delete-node.sh; + set -o pipefail && {{ working_dir }}/delete-node.sh 2>&1 {{ timestamper_cmd }} > delete_node_scale_console.log; diff --git a/roles/overcloud-scale/tasks/scale-nodes.yml b/roles/overcloud-scale/tasks/scale-nodes.yml index 59d981758..a957fa5f0 100644 --- a/roles/overcloud-scale/tasks/scale-nodes.yml +++ b/roles/overcloud-scale/tasks/scale-nodes.yml @@ -4,6 +4,7 @@ - name: Call scale deployment script shell: > source {{ working_dir }}/stackrc; + set -o pipefail && {{ working_dir }}/scale-deployment.sh 2>&1 {{ timestamper_cmd }} > overcloud_deployment_scale_console.log; diff --git a/roles/overcloud-ssl/tasks/main.yml b/roles/overcloud-ssl/tasks/main.yml index fee31dc30..f152d1576 100644 --- a/roles/overcloud-ssl/tasks/main.yml +++ b/roles/overcloud-ssl/tasks/main.yml @@ -20,6 +20,7 @@ - name: Generate SSL certificates shell: > + set -o pipefail && {{ working_dir }}/overcloud-create-ssl-cert.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_ssl_cert_log }} diff --git a/roles/overcloud-upgrade/tasks/pre-undercloud.yml b/roles/overcloud-upgrade/tasks/pre-undercloud.yml index 9d24da6b0..967159e9e 100644 --- a/roles/overcloud-upgrade/tasks/pre-undercloud.yml +++ b/roles/overcloud-upgrade/tasks/pre-undercloud.yml @@ -8,6 +8,7 @@ - name: Execute upgrade repo script become: yes shell: > + set -o pipefail && {{ upgrade_working_dir }}/upgrade-undercloud-repo.sh 2>&1 {{ timestamper_cmd }} > upgrade-undercloud-repo.sh.log when: step_pre_undercloud_upgrade diff --git a/roles/overcloud-upgrade/tasks/upgrade-overcloud.yml b/roles/overcloud-upgrade/tasks/upgrade-overcloud.yml index 48d6ce503..70f702428 100644 --- a/roles/overcloud-upgrade/tasks/upgrade-overcloud.yml +++ b/roles/overcloud-upgrade/tasks/upgrade-overcloud.yml @@ -1,6 +1,7 @@ --- - name: Upgrade the overcloud shell: > - {{ upgrade_working_dir }}/overcloud-upgrade.sh 2>&1 {{ timestamper_cmd }} > - {{ upgrade_log }} + set -o pipefail && + {{ upgrade_working_dir }}/overcloud-upgrade.sh 2>&1 {{ timestamper_cmd }} > + {{ upgrade_log }} when: step_upgrade_overcloud diff --git a/roles/overcloud-upgrade/tasks/upgrade-undercloud.yml b/roles/overcloud-upgrade/tasks/upgrade-undercloud.yml index 73f1cb99f..a69cb1e4b 100644 --- a/roles/overcloud-upgrade/tasks/upgrade-undercloud.yml +++ b/roles/overcloud-upgrade/tasks/upgrade-undercloud.yml @@ -1,8 +1,9 @@ --- - name: Upgrade the undercloud shell: > - {{ upgrade_working_dir }}/undercloud-upgrade.sh 2>&1 {{ timestamper_cmd }} > - {{ undercloud_upgrade_log }} + set -o pipefail && + {{ upgrade_working_dir }}/undercloud-upgrade.sh 2>&1 {{ timestamper_cmd }} > + {{ undercloud_upgrade_log }} when: step_upgrade_undercloud notify: - restart openstack services diff --git a/roles/repo-setup/tasks/setup_repos.yml b/roles/repo-setup/tasks/setup_repos.yml index 26991e8e9..e0dd09421 100644 --- a/roles/repo-setup/tasks/setup_repos.yml +++ b/roles/repo-setup/tasks/setup_repos.yml @@ -1,5 +1,6 @@ - name: Setup repos on live host shell: > + set -o pipefail && {{ repo_setup_dir }}/repo_setup.sh 2>&1 {{ timestamper_cmd }} > {{ repo_setup_log }} become: true diff --git a/roles/undercloud-deploy/tasks/install-undercloud.yml b/roles/undercloud-deploy/tasks/install-undercloud.yml index 9d9891bdb..24fa1ddfb 100644 --- a/roles/undercloud-deploy/tasks/install-undercloud.yml +++ b/roles/undercloud-deploy/tasks/install-undercloud.yml @@ -14,6 +14,7 @@ - name: Install the undercloud shell: > + set -o pipefail && {{ working_dir }}/undercloud-install.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_install_log }} when: step_install_undercloud diff --git a/roles/undercloud-deploy/tasks/novajoin_prep.yml b/roles/undercloud-deploy/tasks/novajoin_prep.yml index c72b7ecf4..c9728a1a5 100644 --- a/roles/undercloud-deploy/tasks/novajoin_prep.yml +++ b/roles/undercloud-deploy/tasks/novajoin_prep.yml @@ -23,6 +23,7 @@ - name: Run the novajoin installation script shell: > + set -o pipefail && {{ working_dir }}/install_novajoin.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/install_novajoin.sh.log @@ -34,6 +35,7 @@ - name: Run the novajoin preparation script shell: > + set -o pipefail && {{ working_dir }}/novajoin_prep.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/novajoin_prep.sh.log diff --git a/roles/undercloud-setup/tasks/package_installs.yml b/roles/undercloud-setup/tasks/package_installs.yml index 54a0f8479..aec28c1f1 100644 --- a/roles/undercloud-setup/tasks/package_installs.yml +++ b/roles/undercloud-setup/tasks/package_installs.yml @@ -8,5 +8,6 @@ - name: Run the package installation script shell: > + set -o pipefail && {{ working_dir }}/install_packages.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/install_packages.sh.log diff --git a/roles/undercloud-setup/tasks/toci_vxlan_networking.yml b/roles/undercloud-setup/tasks/toci_vxlan_networking.yml index b3204e008..e0c03242f 100644 --- a/roles/undercloud-setup/tasks/toci_vxlan_networking.yml +++ b/roles/undercloud-setup/tasks/toci_vxlan_networking.yml @@ -9,6 +9,7 @@ - name: Run the TripleO-CI VXLAN networking script on subnodes shell: > + set -o pipefail && timeout --preserve-status 60s {{ working_dir }}/toci_vxlan_networking_multinode.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/toci_vxlan_networking_multinode.sh.log when: toci_vxlan_networking_multinode|bool @@ -21,6 +22,7 @@ - name: Run the TripleO-CI VXLAN networking script shell: > + set -o pipefail && {{ working_dir }}/toci_vxlan_networking.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/toci_vxlan_networking.sh.log diff --git a/roles/validate-sanity-checks/tasks/sanity-checks.yml b/roles/validate-sanity-checks/tasks/sanity-checks.yml index 3d3e2fcb5..70ee6f558 100644 --- a/roles/validate-sanity-checks/tasks/sanity-checks.yml +++ b/roles/validate-sanity-checks/tasks/sanity-checks.yml @@ -1,5 +1,6 @@ --- - name: Run sanity checks shell: > + set -o pipefail && {{ working_dir }}/validate-sanity-check.sh 2>&1 {{ timestamper_cmd }} > {{ sanity_checks_log }} diff --git a/roles/validate-simple/tasks/main.yml b/roles/validate-simple/tasks/main.yml index 1ae5143b8..5170255ff 100644 --- a/roles/validate-simple/tasks/main.yml +++ b/roles/validate-simple/tasks/main.yml @@ -30,4 +30,5 @@ - name: Validate the overcloud shell: > + set -o pipefail && {{ working_dir }}/overcloud-validate.sh 2>&1 {{ timestamper_cmd }} > {{ validate_log }} diff --git a/roles/validate-tempest/tasks/run-tempest.yml b/roles/validate-tempest/tasks/run-tempest.yml index f73f513f3..5bb0d6d87 100644 --- a/roles/validate-tempest/tasks/run-tempest.yml +++ b/roles/validate-tempest/tasks/run-tempest.yml @@ -1,6 +1,7 @@ --- - name: Execute tempest - shell: | + shell: > + set -o pipefail && {{ working_dir }}/tempest-setup.sh 2>&1 {{ timestamper_cmd }} > {{ tempest_log_file }} register: tempest_result ignore_errors: True diff --git a/roles/validate-undercloud/tasks/main.yml b/roles/validate-undercloud/tasks/main.yml index ee0f1a29a..0667fdbd3 100644 --- a/roles/validate-undercloud/tasks/main.yml +++ b/roles/validate-undercloud/tasks/main.yml @@ -1,5 +1,6 @@ - name: Reinstall the undercloud to check idempotency shell: > + set -o pipefail && {{ working_dir }}/undercloud-install.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_reinstall_log }} when: undercloud_check_idempotency|bool @@ -16,6 +17,7 @@ - name: check undercloud sanity shell: > + set -o pipefail && {{ working_dir }}/undercloud-sanity-check.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_sanity_check_log }} when: undercloud_check_sanity|bool