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