You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by ev...@apache.org on 2019/02/10 07:34:40 UTC

[bigtop] branch master updated: BIGTOP-3150. [Provisioner] Raise proper exit code and error messages when provisioning failed (#458)

This is an automated email from the ASF dual-hosted git repository.

evansye pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bigtop.git


The following commit(s) were added to refs/heads/master by this push:
     new fa10f82  BIGTOP-3150. [Provisioner] Raise proper exit code and error messages when provisioning failed (#458)
fa10f82 is described below

commit fa10f82c1907f57b2f6e253946dc2c5cc7b927d5
Author: Evans Ye <ev...@apache.org>
AuthorDate: Sun Feb 10 15:34:36 2019 +0800

    BIGTOP-3150. [Provisioner] Raise proper exit code and error messages when provisioning failed (#458)
---
 provisioner/docker/.gitignore       |  2 ++
 provisioner/docker/docker-hadoop.sh | 14 +++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/provisioner/docker/.gitignore b/provisioner/docker/.gitignore
index f733c4b..a5e3b7e 100644
--- a/provisioner/docker/.gitignore
+++ b/provisioner/docker/.gitignore
@@ -1 +1,3 @@
 config/
+.provision_id
+.error_msg*
diff --git a/provisioner/docker/docker-hadoop.sh b/provisioner/docker/docker-hadoop.sh
index 5bfca48..27e3903 100755
--- a/provisioner/docker/docker-hadoop.sh
+++ b/provisioner/docker/docker-hadoop.sh
@@ -118,10 +118,18 @@ bootstrap() {
 }
 
 provision() {
+    rm -f .error_msg_*
     for node in ${NODES[*]}; do
-        bigtop-puppet $node &
+        (
+        bigtop-puppet $node
+        result=$?
+        if [ $result != 0 ]; then
+            log "Failed to provision container $node with exit code $result" > .error_msg_$node
+        fi
+        ) &
     done
     wait
+    cat .error_msg_* 2>/dev/null && exit 1
 }
 
 smoke-tests() {
@@ -136,14 +144,14 @@ destroy() {
         docker-compose -p $PROVISION_ID stop
         docker-compose -p $PROVISION_ID rm -f
     fi
-    rm -rvf ./config .provision_id
+    rm -rvf ./config .provision_id .error_msg*
 }
 
 bigtop-puppet() {
     if docker exec $1 bash -c "puppet --version" | grep ^3 >/dev/null ; then
       future="--parser future"
     fi
-    docker exec $1 bash -c "puppet apply $future --modulepath=/bigtop-home/bigtop-deploy/puppet/modules:/etc/puppet/modules:/usr/share/puppet/modules /bigtop-home/bigtop-deploy/puppet/manifests"
+    docker exec $1 bash -c "puppet apply --detailed-exitcodes $future --modulepath=/bigtop-home/bigtop-deploy/puppet/modules:/etc/puppet/modules:/usr/share/puppet/modules /bigtop-home/bigtop-deploy/puppet/manifests"
 }
 
 get-yaml-config() {