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(" ")