You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2014/05/30 17:27:41 UTC

git commit: AMBARI-5957. Bootstrap API call says bootstrap is running even though all agents have installed and registered (dlysnichenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 1b0387953 -> 7360a79b7


AMBARI-5957. Bootstrap API call says bootstrap is running even though all agents have installed and registered (dlysnichenko)


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

Branch: refs/heads/trunk
Commit: 7360a79b7add328d6befdebabe0a9d7009ac02ef
Parents: 1b03879
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Fri May 30 18:26:21 2014 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Fri May 30 18:27:08 2014 +0300

----------------------------------------------------------------------
 ambari-server/src/main/python/setupAgent.py     | 26 ++++++++------------
 ambari-server/src/test/python/TestSetupAgent.py |  8 +++++-
 2 files changed, 17 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7360a79b/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 28651e7..17a1552 100755
--- a/ambari-server/src/main/python/setupAgent.py
+++ b/ambari-server/src/main/python/setupAgent.py
@@ -66,23 +66,17 @@ def runAgent(passPhrase, expected_hostname):
   os.environ[AMBARI_PASSPHRASE_VAR] = passPhrase
   agent_retcode = subprocess.call("/usr/sbin/ambari-agent restart --expected-hostname=" +
                                   expected_hostname, shell=True)
-  # need this, because, very rarely,
-  # main.py(ambari-agent) starts a bit later then it should be started
-  time.sleep(1)
-  try:
+  for i in range(3):
+    time.sleep(1)
     ret = execOsCommand(["tail", "-20", "/var/log/ambari-agent/ambari-agent.log"])
-    try:
-      log = ret['log']
-    except Exception:
-      log = "Log not found"
-    print log
-    if not 0 == ret['exitstatus']:
-      return ret['exitstatus']
-
-    return agent_retcode
-  except (Exception):
-    return 1
-
+    if (not ret is None) and (0 == ret['exitstatus']):
+      try:
+        log = ret['log']
+      except Exception:
+        log = "Log not found"
+      print log
+      return agent_retcode
+  return agent_retcode
 
 def getOptimalVersion(initialProjectVersion):
   optimalVersion = initialProjectVersion

http://git-wip-us.apache.org/repos/asf/ambari/blob/7360a79b/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 508ae3f..0f5f5b7 100644
--- a/ambari-server/src/test/python/TestSetupAgent.py
+++ b/ambari-server/src/test/python/TestSetupAgent.py
@@ -67,18 +67,24 @@ class TestSetupAgent(TestCase):
     self.assertTrue(expected_hostname in cmdStr)
     self.assertEqual(ret, 0)
     self.assertTrue(sleep_mock.called)
+    self.assertEqual(execOsCommand_mock.call_count, 1)
+    execOsCommand_mock.reset_mock()
     # Key 'log' not found
     execOsCommand_mock.return_value = None
     ret = setup_agent.runAgent(passphrase, expected_hostname)
     cmdStr = str(call_mock.call_args_list[0][0])
     self.assertTrue(expected_hostname in cmdStr)
-    self.assertEqual(ret, 1)
+    self.assertEqual(ret, 0)
+    self.assertEqual(execOsCommand_mock.call_count, 3)
+    execOsCommand_mock.reset_mock()
     # Retcode id not 0
+    call_mock.return_value = 2
     execOsCommand_mock.return_value = {'log': 'log', 'exitstatus': 2}
     ret = setup_agent.runAgent(passphrase, expected_hostname)
     cmdStr = str(call_mock.call_args_list[0][0])
     self.assertTrue(expected_hostname in cmdStr)
     self.assertEqual(ret, 2)
+    execOsCommand_mock.reset_mock()
 
   @patch.object(setup_agent, 'getAvaliableAgentPackageVersions')
   @patch('common_functions.OSCheck.is_suse_family')