Repository: ambari Updated Branches: refs/heads/trunk 5c49faf56 -> d9ebe6a82
AMBARI-5590. After reboot ambari-agent and server fail to start on Ubuntu (aonishuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d9ebe6a8 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d9ebe6a8 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d9ebe6a8 Branch: refs/heads/trunk Commit: d9ebe6a82a493d0331733d61820e05744c301f03 Parents: 5c49faf Author: Andrew Onishuk <[email protected]> Authored: Mon Apr 28 16:06:14 2014 +0300 Committer: Andrew Onishuk <[email protected]> Committed: Mon Apr 28 16:06:14 2014 +0300 ---------------------------------------------------------------------- ambari-agent/src/main/python/ambari_agent/ProcessHelper.py | 7 ++++--- ambari-agent/src/main/python/ambari_agent/main.py | 3 +++ ambari-server/src/main/python/ambari-server.py | 2 ++ ambari-server/src/test/python/TestAmbariServer.py | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d9ebe6a8/ambari-agent/src/main/python/ambari_agent/ProcessHelper.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/ProcessHelper.py b/ambari-agent/src/main/python/ambari_agent/ProcessHelper.py index 7533480..ae3345d 100644 --- a/ambari-agent/src/main/python/ambari_agent/ProcessHelper.py +++ b/ambari-agent/src/main/python/ambari_agent/ProcessHelper.py @@ -26,11 +26,12 @@ from shell import getTempFiles logger = logging.getLogger() - if 'AMBARI_PID_DIR' in os.environ: - pidfile = os.environ['AMBARI_PID_DIR'] + "/ambari-agent.pid" + piddir = os.environ['AMBARI_PID_DIR'] else: - pidfile = "/var/run/ambari-agent/ambari-agent.pid" + piddir = "/var/run/ambari-agent" + +pidfile = os.path.join(piddir, "ambari-agent.pid") def _clean(): http://git-wip-us.apache.org/repos/asf/ambari/blob/d9ebe6a8/ambari-agent/src/main/python/ambari_agent/main.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/main.py b/ambari-agent/src/main/python/ambari_agent/main.py index a140075..67b47b3 100644 --- a/ambari-agent/src/main/python/ambari_agent/main.py +++ b/ambari-agent/src/main/python/ambari_agent/main.py @@ -151,6 +151,9 @@ def daemonize(): # Daemonize current instance of Ambari Agent # Currently daemonization is done via /usr/sbin/ambari-agent script (nohup) # and agent only dumps self pid to file + if not os.path.exists(ProcessHelper.piddir): + os.makedirs(ProcessHelper.piddir, 0755) + pid = str(os.getpid()) file(ProcessHelper.pidfile, 'w').write(pid) http://git-wip-us.apache.org/repos/asf/ambari/blob/d9ebe6a8/ambari-server/src/main/python/ambari-server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari-server.py b/ambari-server/src/main/python/ambari-server.py index 5adf44d..a3f5008 100755 --- a/ambari-server/src/main/python/ambari-server.py +++ b/ambari-server/src/main/python/ambari-server.py @@ -2495,6 +2495,8 @@ def start(args): pidfile = PID_DIR + os.sep + PID_NAME command_base = SERVER_START_CMD_DEBUG if (SERVER_DEBUG_MODE or SERVER_START_DEBUG) else SERVER_START_CMD command = command_base.format(jdk_path, conf_dir, get_ambari_classpath(), pidfile) + if not os.path.exists(PID_DIR): + os.makedirs(PID_DIR, 0755) if is_root() and ambari_user != "root": # To inherit exported environment variables (especially AMBARI_PASSPHRASE), # from subprocess, we have to skip --login option of su command. That's why http://git-wip-us.apache.org/repos/asf/ambari/blob/d9ebe6a8/ambari-server/src/test/python/TestAmbariServer.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/TestAmbariServer.py b/ambari-server/src/test/python/TestAmbariServer.py index 51d3c64..3568fd2 100644 --- a/ambari-server/src/test/python/TestAmbariServer.py +++ b/ambari-server/src/test/python/TestAmbariServer.py @@ -2463,6 +2463,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV self.assertEqual(None, rcode) self.assertTrue(setup_db_mock.called) + @patch('os.makedirs') @patch.object(ambari_server.utils, 'locate_file') @patch.object(ambari_server, 'is_server_runing') @patch("os.chown") @@ -2496,7 +2497,8 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV get_ambari_properties_mock, os_environ_mock, get_validated_string_input_method, os_chmod_method, save_master_key_method, get_master_key_location_method, - getpwnam_mock, os_chown_mock, is_server_running_mock, locate_file_mock): + getpwnam_mock, os_chown_mock, is_server_running_mock, locate_file_mock, + os_makedirs_mock): args = MagicMock() locate_file_mock.side_effect = lambda *args: '/bin/su' if args[0] == 'su' else '/bin/sh' f = MagicMock()
