You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/08/28 13:19:56 UTC
[08/12] git commit: Unit test fixes to handle ZK retry in main
Unit test fixes to handle ZK retry in main
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/f1552505
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/f1552505
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/f1552505
Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry
Commit: f1552505033106c8259fd2230424c6c3b0128cc2
Parents: 15dc1ec
Author: Sumit Mohanty <sm...@hortonworks.com>
Authored: Tue Aug 26 21:36:41 2014 -0700
Committer: Sumit Mohanty <sm...@hortonworks.com>
Committed: Tue Aug 26 21:36:41 2014 -0700
----------------------------------------------------------------------
slider-agent/src/main/python/agent/Registry.py | 1 +
slider-agent/src/main/python/agent/main.py | 3 ++-
slider-agent/src/test/python/agent/TestMain.py | 19 ++++++++++++++-----
3 files changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/f1552505/slider-agent/src/main/python/agent/Registry.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/main/python/agent/Registry.py b/slider-agent/src/main/python/agent/Registry.py
index 9d4a387..453be10 100644
--- a/slider-agent/src/main/python/agent/Registry.py
+++ b/slider-agent/src/main/python/agent/Registry.py
@@ -30,6 +30,7 @@ class Registry:
self.zk_reg_path = zk_reg_path
def readAMHostPort(self):
+ logger.debug("Trying to connect to ZK...")
amHost = ""
amSecuredPort = ""
amUnsecuredPort = ""
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/f1552505/slider-agent/src/main/python/agent/main.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/main/python/agent/main.py b/slider-agent/src/main/python/agent/main.py
index f6b8666..a8fc4e1 100644
--- a/slider-agent/src/main/python/agent/main.py
+++ b/slider-agent/src/main/python/agent/main.py
@@ -271,11 +271,12 @@ def main():
# Wait until server is reachable and continue to query ZK
netutil = NetUtil()
retries = netutil.try_to_connect(server_url, 3, logger)
- zk_lookup_tries += 1
if retries < 3:
break;
pass
pass
+ zk_lookup_tries += 1
+ pass
# Launch Controller communication
controller = Controller(agentConfig)
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/f1552505/slider-agent/src/test/python/agent/TestMain.py
----------------------------------------------------------------------
diff --git a/slider-agent/src/test/python/agent/TestMain.py b/slider-agent/src/test/python/agent/TestMain.py
index bc68582..e73a05a 100644
--- a/slider-agent/src/test/python/agent/TestMain.py
+++ b/slider-agent/src/test/python/agent/TestMain.py
@@ -31,6 +31,7 @@ import ConfigParser
import os
import tempfile
from Controller import Controller
+from Registry import Registry
from optparse import OptionParser
logger = logging.getLogger()
@@ -46,7 +47,6 @@ class TestMain(unittest.TestCase):
# enable stdout
sys.stdout = sys.__stdout__
-
@patch("os._exit")
@patch("os.getpid")
@patch.object(ProcessHelper, "stopAgent")
@@ -218,7 +218,7 @@ class TestMain(unittest.TestCase):
ProcessHelper.pidfile = oldpid
os.remove(tmpoutfile)
-
+ @patch.object(Registry, "readAMHostPort")
@patch.object(main, "setup_logging")
@patch.object(main, "bind_signal_handlers")
@patch.object(main, "update_config_from_file")
@@ -236,17 +236,20 @@ class TestMain(unittest.TestCase):
update_log_level_mock, write_pid_mock,
perform_prestart_checks_mock,
update_config_from_file_mock,
- bind_signal_handlers_mock, setup_logging_mock):
+ bind_signal_handlers_mock, setup_logging_mock,
+ readAMHostPort_mock):
Controller_init_mock.return_value = None
isAlive_mock.return_value = False
options = MagicMock()
parse_args_mock.return_value = (options, MagicMock)
+ readAMHostPort_mock.return_value = ("host1", 101, 100)
tmpdir = tempfile.gettempdir()
#testing call without command-line arguments
os.environ["AGENT_WORK_ROOT"] = os.path.join(tmpdir, "work")
os.environ["AGENT_LOG_ROOT"] = ",".join([os.path.join(tmpdir, "log"),os.path.join(tmpdir, "log2")])
+ try_to_connect_mock.return_value = 1
main.main()
self.assertTrue(setup_logging_mock.called)
@@ -256,7 +259,7 @@ class TestMain(unittest.TestCase):
self.assertTrue(write_pid_mock.called)
self.assertTrue(update_log_level_mock.called)
self.assertTrue(options.log_folder == os.path.join(tmpdir, "log"))
- try_to_connect_mock.assert_called_once_with(ANY, -1, ANY)
+ try_to_connect_mock.assert_called_once_with('https://host1:101/ws/v1/slider/agents/', 3, ANY)
self.assertTrue(start_mock.called)
class AgentOptions:
@@ -267,6 +270,8 @@ class TestMain(unittest.TestCase):
self.verbose = verbose
self.debug = debug
+ @patch.object(Registry, "readAMHostPort")
+ @patch("time.sleep")
@patch.object(main, "setup_logging")
@patch.object(main, "bind_signal_handlers")
@patch.object(main, "stop_agent")
@@ -287,18 +292,22 @@ class TestMain(unittest.TestCase):
update_log_level_mock, write_pid_mock,
perform_prestart_checks_mock,
update_config_from_file_mock, stop_mock,
- bind_signal_handlers_mock, setup_logging_mock):
+ bind_signal_handlers_mock, setup_logging_mock,
+ time_sleep_mock, readAMHostPort_mock):
Controller_init_mock.return_value = None
isAlive_mock.return_value = False
parse_args_mock.return_value = (
TestMain.AgentOptions("agent", "host1:2181", "/registry/org-apache-slider/cl1", True, ""), [])
tmpdir = tempfile.gettempdir()
+ time_sleep_mock.return_value = None
+ readAMHostPort_mock.return_value = (None, None, None)
#testing call without command-line arguments
os.environ["AGENT_WORK_ROOT"] = os.path.join(tmpdir, "work")
os.environ["AGENT_LOG_ROOT"] = os.path.join(tmpdir, "log")
main.main()
self.assertTrue(AgentConfig_set_mock.call_count == 3)
+ self.assertTrue(readAMHostPort_mock.call_count == 10)
AgentConfig_set_mock.assert_any_call("server", "zk_quorum", "host1:2181")
AgentConfig_set_mock.assert_any_call("server", "zk_reg_path", "/registry/org-apache-slider/cl1")