You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2014/11/26 23:20:35 UTC

ambari git commit: AMBARI-8438 ambari build in docker to open Java debug port. (jaoki)

Repository: ambari
Updated Branches:
  refs/heads/trunk aebd5c0b3 -> 501785fa5


AMBARI-8438 ambari build in docker to open Java debug port. (jaoki)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/501785fa
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/501785fa
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/501785fa

Branch: refs/heads/trunk
Commit: 501785fa532525dbae61ca69f6e6a5098577862a
Parents: aebd5c0
Author: Jun Aoki <ja...@apache.org>
Authored: Wed Nov 26 14:20:25 2014 -0800
Committer: Jun Aoki <ja...@apache.org>
Committed: Wed Nov 26 14:20:25 2014 -0800

----------------------------------------------------------------------
 dev-support/docker/README.md                    |  8 ++--
 dev-support/docker/docker/Dockerfile            |  1 +
 dev-support/docker/docker/bin/ambaribuild.py    | 42 ++++++++++++++++++--
 .../docker/docker/bin/test/ambaribuild_test.py  | 16 +++++++-
 4 files changed, 58 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/501785fa/dev-support/docker/README.md
----------------------------------------------------------------------
diff --git a/dev-support/docker/README.md b/dev-support/docker/README.md
index 6613e0d..fedfd50 100644
--- a/dev-support/docker/README.md
+++ b/dev-support/docker/README.md
@@ -17,7 +17,7 @@ how to build
 --------------------
 
 ```
-docker build -t ambari/build ./docker
+docker build -t ambari/build ./dev-support/docker/docker
 ```
 
 how to run
@@ -32,19 +32,21 @@ docker run --privileged -t -i -p 80:80 -p 5005:5005 -p 8080:8080 -h node1.mydoma
 # build, install ambari and deploy hadoop in container
 cd {ambari src}
 docker rm ambari1
-docker run --privileged -t -p 80:80 -p 5005:5005 -p 8080:8080 -h node1.mydomain.com --name ambari1 -v ${AMBARI_SRC:-$(pwd)}:/tmp/ambari ambari/build /tmp/ambari-build-docker/bin/ambaribuild.py [test|server|agent|deploy] [-b] [-s [HDP|BIGTOP|PHD]]
+docker run --privileged -t -p 80:80 -p 5005:5005 -p 8080:8080 -h node1.mydomain.com --name ambari1 -v ${AMBARI_SRC:-$(pwd)}:/tmp/ambari ambari/build /tmp/ambari-build-docker/bin/ambaribuild.py [test|server|agent|deploy] [-b] [-s [HDP|BIGTOP|PHD]] [-d] [-c]
 where
 test: mvn test
 server: install and run ambari-server
 agent: install and run ambari-server and ambari-agent
 deploy: install and run ambari-server and ambari-agent, and deploy a hadoop
 -b option to rebuild ambari
+-d option to start ambari-server with --debug option
+-c option to clean local git repo. "git clean -xdf"
 ```
 
 how to run unit test
 --------------------
 ```
-cd docker
+cd dev-support/docker/docker
 python -m bin.test.ambaribuild_test
 
 ```

http://git-wip-us.apache.org/repos/asf/ambari/blob/501785fa/dev-support/docker/docker/Dockerfile
----------------------------------------------------------------------
diff --git a/dev-support/docker/docker/Dockerfile b/dev-support/docker/docker/Dockerfile
index 96ba8ff..bd2c1f4 100644
--- a/dev-support/docker/docker/Dockerfile
+++ b/dev-support/docker/docker/Dockerfile
@@ -15,6 +15,7 @@ FROM centos:centos6
 RUN echo root:changeme | chpasswd
 
 ## Install some basic utilities that aren't in the default image
+RUN yum clean all -y && yum update -y
 RUN yum -y install vim wget rpm-build sudo which telnet tar openssh-server openssh-clients ntp git python-setuptools httpd
 # phantomjs dependency
 RUN yum -y install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6

http://git-wip-us.apache.org/repos/asf/ambari/blob/501785fa/dev-support/docker/docker/bin/ambaribuild.py
----------------------------------------------------------------------
diff --git a/dev-support/docker/docker/bin/ambaribuild.py b/dev-support/docker/docker/bin/ambaribuild.py
index 66df31f..50db0e2 100755
--- a/dev-support/docker/docker/bin/ambaribuild.py
+++ b/dev-support/docker/docker/bin/ambaribuild.py
@@ -14,6 +14,7 @@
 
 import subprocess, time, sys
 import json
+import datetime
 from optparse import OptionParser
 
 SKIP_TEST="-DskipTests"
@@ -29,14 +30,12 @@ def git_deep_cleaning():
 	return proc.wait()
 
 def ambariUnitTest():
-	git_deep_cleaning()
 	proc = subprocess.Popen("mvn -fae clean install",
 			shell=True,
 			cwd="/tmp/ambari")
 	return proc.wait()
 
 def buildAmbari(stack_distribution):
-	git_deep_cleaning()
 	stack_distribution_param = ""
 	if stack_distribution is not None:
 		stack_distribution_param = "-Dstack.distribution=" + stack_distribution
@@ -134,35 +133,57 @@ def create_cluster():
 
 # Loop to not to exit Docker container
 def no_exit():
+	print ""
 	print "loop to not to exit docker container..."
+	print ""
 	while True:
 		time.sleep(NO_EXIT_SLEEP_TIME)
 
 class ParseResult:
+	is_deep_clean = False
 	is_rebuild = False
 	stack_distribution = None
 	is_test = False
 	is_install_server = False
 	is_install_agent = False
 	is_deploy = False
+	is_server_debug = False
 
 def parse(argv):
 	result = ParseResult()
 	if len(argv) >=2:
 		parser = OptionParser()
+		parser.add_option("-c", "--clean",
+				dest="is_deep_clean",
+				action="store_true",
+				default=False,
+				help="if this option is set, git clean -xdf is executed for the ambari local git repo")
+
 		parser.add_option("-b", "--rebuild",
 				dest="is_rebuild",
 				action="store_true",
 				default=False,
 				help="set this flag if you want to rebuild Ambari code")
+
 		parser.add_option("-s", "--stack_distribution",
 				dest="stack_distribution",
 				help="set a stack distribution. [HDP|PHD|BIGTOP]. Make sure -b is also set when you set a stack distribution")
+
+		parser.add_option("-d", "--server_debug",
+				dest="is_server_debug",
+				action="store_true",
+				default=False,
+				help="set a debug option for ambari-server")
+
 		(options, args) = parser.parse_args(argv[1:])
+		if options.is_deep_clean:
+			result.is_deep_clean = True
 		if options.is_rebuild:
 			result.is_rebuild = True
 		if options.stack_distribution:
 			result.stack_distribution = options.stack_distribution
+		if options.is_server_debug:
+			result.is_server_debug = True
 
 	if argv[0] == "test":
 		result.is_test = True
@@ -187,6 +208,8 @@ if __name__ == "__main__":
 		print "specify one of test, server, agent or deploy"
 		sys.exit(1)
 
+	start = datetime.datetime.utcnow()
+
 	# test: execute unit test
 	# server: install ambari-server
 	#    with or without rebuild
@@ -197,8 +220,15 @@ if __name__ == "__main__":
 
 	parsed_args = parse(sys.argv[1:])
 
+	if parsed_args.is_deep_clean:
+		retcode = git_deep_cleaning()
+		if retcode != 0: sys.exit(retcode)
+
 	if parsed_args.is_test:
 		retcode = ambariUnitTest()
+		end = datetime.datetime.utcnow()
+		print ""
+		print "Duration: " + str((end-start).seconds) + " seconds"
 		sys.exit(retcode)
 
 	if parsed_args.is_rebuild:
@@ -210,7 +240,7 @@ if __name__ == "__main__":
 		if retcode != 0: sys.exit(retcode)
 		retcode = setup_ambari_server()
 		if retcode != 0: sys.exit(retcode)
-		retcode = start_ambari_server()
+		retcode = start_ambari_server(parsed_args.is_server_debug)
 		if retcode != 0: sys.exit(retcode)
 		retcode = start_dependant_services()
 		if retcode != 0: sys.exit(retcode)
@@ -229,5 +259,9 @@ if __name__ == "__main__":
 		retcode = create_cluster()
 		if retcode != 0: sys.exit(retcode)
 
-	no_exit()
+	end = datetime.datetime.utcnow()
 
+	print ""
+	print "Duration: " + str((end-start).seconds) + " seconds"
+	print "Parameters: " + str(sys.argv)
+	no_exit()

http://git-wip-us.apache.org/repos/asf/ambari/blob/501785fa/dev-support/docker/docker/bin/test/ambaribuild_test.py
----------------------------------------------------------------------
diff --git a/dev-support/docker/docker/bin/test/ambaribuild_test.py b/dev-support/docker/docker/bin/test/ambaribuild_test.py
index 223fa98..a324f5f 100755
--- a/dev-support/docker/docker/bin/test/ambaribuild_test.py
+++ b/dev-support/docker/docker/bin/test/ambaribuild_test.py
@@ -18,52 +18,64 @@ from bin import ambaribuild
 def unittest():
 	# parse
 	result = ambaribuild.parse(["test"])
+	assert result.is_deep_clean == False
 	assert result.is_test == True
 	assert result.is_rebuild == False
 	assert result.stack_distribution == None
 	assert result.is_install_server == False
 	assert result.is_install_agent == False
 	assert result.is_deploy == False
+	assert result.is_server_debug == False
 
 	result = ambaribuild.parse(["server"])
+	assert result.is_deep_clean == False
 	assert result.is_test == False
 	assert result.is_rebuild == False
 	assert result.stack_distribution == None
 	assert result.is_install_server == True
 	assert result.is_install_agent == False
 	assert result.is_deploy == False
+	assert result.is_server_debug == False
 
 	result = ambaribuild.parse(["agent"])
+	assert result.is_deep_clean == False
 	assert result.is_test == False
 	assert result.is_rebuild == False
 	assert result.stack_distribution == None
 	assert result.is_install_server == True
 	assert result.is_install_agent == True
 	assert result.is_deploy == False
+	assert result.is_server_debug == False
 
 	result = ambaribuild.parse(["agent", "-b"])
+	assert result.is_deep_clean == False
 	assert result.is_test == False
 	assert result.is_rebuild == True
 	assert result.stack_distribution == None
 	assert result.is_install_server == True
 	assert result.is_install_agent == True
 	assert result.is_deploy == False
+	assert result.is_server_debug == False
 
-	result = ambaribuild.parse(["deploy"])
+	result = ambaribuild.parse(["deploy", "-d"])
+	assert result.is_deep_clean == False
 	assert result.is_test == False
 	assert result.is_rebuild == False
 	assert result.stack_distribution == None
 	assert result.is_install_server == True
 	assert result.is_install_agent == True
 	assert result.is_deploy == True
+	assert result.is_server_debug == True
 
-	result = ambaribuild.parse(["deploy", "-b", "-s", "BIGTOP"])
+	result = ambaribuild.parse(["deploy", "-b", "-s", "BIGTOP", "-d", "-c"])
+	assert result.is_deep_clean == True
 	assert result.is_test == False
 	assert result.is_rebuild == True
 	assert result.stack_distribution == "BIGTOP"
 	assert result.is_install_server == True
 	assert result.is_install_agent == True
 	assert result.is_deploy == True
+	assert result.is_server_debug == True
 
 if __name__ == "__main__":
 	unittest()