You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by fb...@apache.org on 2015/04/30 19:52:02 UTC
ambari git commit: AMBARI-10819 Ambari bootstrap: Premature Agent
shutdown may lead to Agent stall
Repository: ambari
Updated Branches:
refs/heads/trunk f5c86d990 -> 2be054d18
AMBARI-10819 Ambari bootstrap: Premature Agent shutdown may lead to Agent stall
Removed the agent stop invocation. The agent restarts now only after all the bits have been deployed.
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/2be054d1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/2be054d1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/2be054d1
Branch: refs/heads/trunk
Commit: 2be054d180fd1b7328e68f01732ed51bc67c0862
Parents: f5c86d9
Author: Florian Barca <fb...@hortonworks.com>
Authored: Thu Apr 30 10:51:04 2015 -0700
Committer: Florian Barca <fb...@hortonworks.com>
Committed: Thu Apr 30 10:51:35 2015 -0700
----------------------------------------------------------------------
ambari-agent/conf/unix/ambari-agent | 6 ++++--
ambari-server/src/main/python/setupAgent.py | 15 ++++++++-------
ambari-server/src/test/python/TestSetupAgent.py | 6 +++---
3 files changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/2be054d1/ambari-agent/conf/unix/ambari-agent
----------------------------------------------------------------------
diff --git a/ambari-agent/conf/unix/ambari-agent b/ambari-agent/conf/unix/ambari-agent
index b03a3a4..bc61af2 100755
--- a/ambari-agent/conf/unix/ambari-agent
+++ b/ambari-agent/conf/unix/ambari-agent
@@ -220,8 +220,10 @@ case "$1" in
;;
restart)
echo -e "Restarting $AMBARI_AGENT"
- $0 stop
- $0 start "$@"
+ scriptpath=$0
+ $scriptpath stop
+ shift
+ $scriptpath start "$@"
retcode=$?
;;
reset)
http://git-wip-us.apache.org/repos/asf/ambari/blob/2be054d1/ambari-server/src/main/python/setupAgent.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/setupAgent.py b/ambari-server/src/main/python/setupAgent.py
index ff2c5e9..a762d54 100755
--- a/ambari-server/src/main/python/setupAgent.py
+++ b/ambari-server/src/main/python/setupAgent.py
@@ -182,21 +182,22 @@ def runAgent(passPhrase, expected_hostname, user_run_as, verbose, ret=None):
return {"exitstatus": agent_retcode, "log": log}
@OsFamilyFuncImpl(OSConst.WINSRV_FAMILY)
-def tryStopAgent():
+def checkVerbose():
verbose = False
if os.path.exists(AMBARI_AGENT_INSTALL_SYMLINK):
- agentStopCmd = ["cmd", "/c", "ambari-agent.cmd", "stop"]
- execOsCommand(agentStopCmd, tries=3, try_sleep=10, cwd=AMBARI_AGENT_INSTALL_SYMLINK)
+ agentStatusCmd = ["cmd", "/c", "ambari-agent.cmd", "status"]
+ ret = execOsCommand(agentStatusCmd, tries=3, try_sleep=10, cwd=AMBARI_AGENT_INSTALL_SYMLINK)
+ if ret["exitstatus"] == 0 and ret["log"][0].find("running") != -1:
+ verbose = True
return verbose
@OsFamilyFuncImpl(OsFamilyImpl.DEFAULT)
-def tryStopAgent():
+def checkVerbose():
verbose = False
cmds = ["bash", "-c", "ps aux | grep 'AmbariAgent.py' | grep ' \-v'"]
cmdl = ["bash", "-c", "ps aux | grep 'AmbariAgent.py' | grep ' \--verbose'"]
if execOsCommand(cmds)["exitstatus"] == 0 or execOsCommand(cmdl)["exitstatus"] == 0:
verbose = True
- subprocess.call("/usr/sbin/ambari-agent stop", shell=True)
return verbose
@OsFamilyFuncImpl(OSConst.WINSRV_FAMILY)
@@ -362,9 +363,9 @@ def run_setup(argv=None):
return runAgent(passPhrase, expected_hostname, user_run_as, verbose)
def main(argv=None):
- #Try stop agent and check --verbose option if agent already run
+ #Check --verbose option if agent already running
global verbose
- verbose = tryStopAgent()
+ verbose = checkVerbose()
if verbose:
exitcode = run_setup(argv)
else:
http://git-wip-us.apache.org/repos/asf/ambari/blob/2be054d1/ambari-server/src/test/python/TestSetupAgent.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestSetupAgent.py b/ambari-server/src/test/python/TestSetupAgent.py
index 80178ba..fbbce71 100644
--- a/ambari-server/src/test/python/TestSetupAgent.py
+++ b/ambari-server/src/test/python/TestSetupAgent.py
@@ -252,7 +252,7 @@ class TestSetupAgent(TestCase):
self.assertFalse(setup_agent.execOsCommand("hostname -f") == None)
@patch.object(OSCheck, "os_distribution", new = MagicMock(return_value = os_distro_value))
- @patch.object(setup_agent, 'tryStopAgent')
+ @patch.object(setup_agent, 'checkVerbose')
@patch.object(setup_agent, 'isAgentPackageAlreadyInstalled')
@patch.object(setup_agent, 'runAgent')
@patch.object(setup_agent, 'configureAgent')
@@ -267,14 +267,14 @@ class TestSetupAgent(TestCase):
def test_setup_agent_main(self, dirname_mock, realpath_mock, exit_mock, checkServerReachability_mock,
getOptimalVersion_mock, is_ubuntu_family_mock, is_suse_family_mock,
installAgent_mock, configureAgent_mock, runAgent_mock,
- isAgentPackageAlreadyInstalled_mock, tryStopAgent_mock):
+ isAgentPackageAlreadyInstalled_mock, checkVerbose_mock):
checkServerReachability_mock.return_value = {'log': 'log', 'exitstatus': 0}
installAgent_mock.return_value = {'log': 'log', 'exitstatus': 0}
configureAgent_mock.return_value = {'log': 'log', 'exitstatus': 0}
runAgent_mock.return_value = {'log': 'log', 'exitstatus': 0}
getOptimalVersion_mock.return_value = {'log': '1.1.2, 1.1.3, ', 'exitstatus': 1}
ret = setup_agent.main(("setupAgent.py","agents_host","password", "server_hostname","1.1.1","8080"))
- self.assertTrue(tryStopAgent_mock.called)
+ self.assertTrue(checkVerbose_mock.called)
self.assertFalse(exit_mock.called)
self.assertTrue("exitstatus" in ret)
self.assertEqual(ret["exitstatus"], 1)