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 2015/04/24 10:44:11 UTC

bigtop git commit: BIGTOP-1836. Better UX for Dokcer provisioner by integrating it into gradle

Repository: bigtop
Updated Branches:
  refs/heads/master d2c2126a6 -> 8535f314e


BIGTOP-1836. Better UX for Dokcer provisioner by integrating it into gradle


Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/8535f314
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/8535f314
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/8535f314

Branch: refs/heads/master
Commit: 8535f314e2b4d23e7228a5ee1bf875da2a79593a
Parents: d2c2126
Author: Evans Ye <ev...@apache.org>
Authored: Sat Apr 18 14:19:02 2015 +0000
Committer: Evans Ye <ev...@apache.org>
Committed: Fri Apr 24 08:43:24 2015 +0000

----------------------------------------------------------------------
 .../vm/vagrant-puppet-docker/docker-hadoop.sh   |  4 ++
 build.gradle                                    | 49 ++++++++++++++++++++
 2 files changed, 53 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bigtop/blob/8535f314/bigtop-deploy/vm/vagrant-puppet-docker/docker-hadoop.sh
----------------------------------------------------------------------
diff --git a/bigtop-deploy/vm/vagrant-puppet-docker/docker-hadoop.sh b/bigtop-deploy/vm/vagrant-puppet-docker/docker-hadoop.sh
index 63c18fd..e7022c1 100755
--- a/bigtop-deploy/vm/vagrant-puppet-docker/docker-hadoop.sh
+++ b/bigtop-deploy/vm/vagrant-puppet-docker/docker-hadoop.sh
@@ -29,6 +29,10 @@ create() {
     echo "\$num_instances = $1" > config.rb
     echo "\$vagrantyamlconf = \"$vagrantyamlconf\"" >> config.rb
     vagrant up --no-parallel
+    if [ $? -ne 0 ]; then
+        echo "Docker container(s) startup failed!";
+	exit 1;
+    fi
     nodes=(`vagrant status |grep running |grep -v image |awk '{print $1}'`)
     hadoop_head_node=(`echo "hostname -f" |vagrant ssh ${nodes[0]} |tail -n 1`)
     repo=$(get-yaml-config repo)

http://git-wip-us.apache.org/repos/asf/bigtop/blob/8535f314/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 752c5d1..6db74ed 100644
--- a/build.gradle
+++ b/build.gradle
@@ -65,6 +65,7 @@ project(':itest-common') {
 
 def TESTARTIFACTS_GROUP = 'test artifacts'
 def DEVENV_GROUP = 'development tools'
+def DEPLOY_GROUP = 'deployment'
 
 // All packaging logic is separated into its own build module
 apply from: 'packages.gradle'
@@ -103,6 +104,54 @@ task "toolchain-devtools"(type:Exec,
   commandLine command
 }
 
+task "docker-provisioner"(type:Exec,
+    description: 'Provision a Bigtop cluster on Docker container(s). Default to CentOS and 1 node.\nCreate a 3 node cluster:\n  $ ./gradlew -Pnum_instances=3 docker-provisioner\nRun smoke tests on 3 node cluster:\n  $ ./gradlew -Pnum_instances=3 -Prun_smoke_tests=true docker-provisioner\nSpecify configuration file (located in bigtop-deploy/vm/vagrant-puppet-docker/):\n  $ ./gradlew -Pconfig=vagrantconfig_debian.yaml docker-provisioner',
+    group: DEPLOY_GROUP) {
+  def _config = project.hasProperty("config") ? config : "vagrantconfig.yaml"
+  def _num_instances = project.hasProperty("num_instances") ? num_instances : 1
+  def command = [
+      './docker-hadoop.sh',
+      '-C', _config,
+      '--create', _num_instances,
+  ]
+  if ( project.hasProperty("run_smoke_tests") && run_smoke_tests ) {
+    command.add("--smoke-tests")
+  }
+  workingDir 'bigtop-deploy/vm/vagrant-puppet-docker'
+  commandLine command
+}
+task "docker-provisioner-ssh"(type:Exec,
+    description: 'Show ssh command to get in to the provisioned container',
+    group: DEPLOY_GROUP) {
+  workingDir 'bigtop-deploy/vm/vagrant-puppet-docker'
+  def message = "To ssh in to the container, do: \n(cd " + workingDir + " && vagrant ssh <CONTAIER_NAME>)"
+  def command = [
+      '/bin/echo',
+      message
+  ]
+  commandLine command
+}
+task "docker-provisioner-status"(type:Exec,
+    description: 'Show status of Bigtop Docker cluster',
+    group: DEPLOY_GROUP) {
+  def command = [
+      'vagrant',
+      'status',
+  ]
+  workingDir 'bigtop-deploy/vm/vagrant-puppet-docker'
+  commandLine command
+}
+task "docker-provisioner-destroy"(type:Exec,
+    description: 'Destroy provisioned Bigtop Docker cluster',
+    group: DEPLOY_GROUP) {
+  def command = [
+      './docker-hadoop.sh',
+      '--destroy'
+  ]
+  workingDir 'bigtop-deploy/vm/vagrant-puppet-docker'
+  commandLine command
+}
+
 task installTopLevel(type:Exec) {
   workingDir "."
   commandLine 'mvn clean install -f pom.xml'.split(" ")