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

Reply via email to