You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2017/06/26 12:27:21 UTC
ambari git commit: AMBARI-21340. Pending status commands during long
running execution commands are not removed (aonishuk)
Repository: ambari
Updated Branches:
refs/heads/branch-2.5 98b2b9124 -> 379b95b63
AMBARI-21340. Pending status commands during long running execution commands are not removed (aonishuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/379b95b6
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/379b95b6
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/379b95b6
Branch: refs/heads/branch-2.5
Commit: 379b95b6351e5165232741d828ef651a46376415
Parents: 98b2b91
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Mon Jun 26 15:27:13 2017 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Mon Jun 26 15:27:13 2017 +0300
----------------------------------------------------------------------
.../test/python/ambari_agent/TestHeartbeat.py | 40 ++++++++++++++++++++
1 file changed, 40 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/379b95b6/ambari-agent/src/test/python/ambari_agent/TestHeartbeat.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestHeartbeat.py b/ambari-agent/src/test/python/ambari_agent/TestHeartbeat.py
index de07743..811cf5a 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestHeartbeat.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestHeartbeat.py
@@ -26,6 +26,7 @@ import StringIO
import sys
import multiprocessing
from ambari_agent.RecoveryManager import RecoveryManager
+from ambari_agent.StatusCommandsExecutor import SingleProcessStatusCommandsExecutor
with patch("platform.linux_distribution", return_value = ('Suse','11','Final')):
@@ -231,6 +232,45 @@ class TestHeartbeat(TestCase):
self.assertFalse(args[2])
self.assertFalse(args[1])
+ @patch("subprocess.Popen")
+ @patch.object(Hardware, "_chk_writable_mount", new = MagicMock(return_value=True))
+ @patch.object(HostInfoLinux, 'register')
+ def test_status_commands_does_not_stack_up(self, register_mock, Popen_mock):
+ config = AmbariConfig.AmbariConfig()
+ config.set('agent', 'prefix', 'tmp')
+ config.set('agent', 'cache_dir', "/var/lib/ambari-agent/cache")
+ config.set('agent', 'tolerate_download_failures', "true")
+
+ dummy_controller = MagicMock()
+ actionQueue = ActionQueue(config, dummy_controller)
+
+ dummy_controller.statusCommandsExecutor = SingleProcessStatusCommandsExecutor(config, actionQueue)
+
+ statusCommands = [{
+ "serviceName" : 'HDFS',
+ "commandType" : "STATUS_COMMAND",
+ "clusterName" : "c1",
+ "componentName" : "DATANODE",
+ "role" : "DATANODE",
+ 'configurations':{'cluster-env' : {}}
+ },
+ {
+ "serviceName" : 'HDFS',
+ "commandType" : "STATUS_COMMAND",
+ "clusterName" : "c1",
+ "componentName" : "NAMENODE",
+ "role" : "NAMENODE",
+ 'configurations':{'cluster-env' : {}}
+ }
+ ]
+
+ # add commands ten times
+ for i in range(10):
+ actionQueue.put_status(statusCommands)
+
+ # status commands should not stack up. Size should be 2 not 20.
+ self.assertEquals(len(dummy_controller.statusCommandsExecutor.statusCommandQueue.queue), 2)
+
@patch("subprocess.Popen")
@patch.object(Hardware, "_chk_writable_mount", new = MagicMock(return_value=True))