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/01/14 22:17:22 UTC
git commit: AMBARI-4279. Status commands are not executed for new
services (dlysnichenko)
Updated Branches:
refs/heads/trunk 9886890e3 -> d8d308e6a
AMBARI-4279. Status commands are not executed for new services (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d8d308e6
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d8d308e6
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d8d308e6
Branch: refs/heads/trunk
Commit: d8d308e6aa9e7c2d5957d48d6a84860156d16283
Parents: 9886890
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Tue Jan 14 23:15:55 2014 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Tue Jan 14 23:16:53 2014 +0200
----------------------------------------------------------------------
.../src/main/python/ambari_agent/LiveStatus.py | 49 ++++++++++----------
.../test/python/ambari_agent/TestLiveStatus.py | 29 ++++++++++++
2 files changed, 53 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/d8d308e6/ambari-agent/src/main/python/ambari_agent/LiveStatus.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/LiveStatus.py b/ambari-agent/src/main/python/ambari_agent/LiveStatus.py
index cfb11f7..c95b96d 100644
--- a/ambari-agent/src/main/python/ambari_agent/LiveStatus.py
+++ b/ambari-agent/src/main/python/ambari_agent/LiveStatus.py
@@ -150,31 +150,30 @@ class LiveStatus:
livestatus = None
component = {"serviceName" : self.service, "componentName" : self.component}
- if component in self.COMPONENTS + self.CLIENT_COMPONENTS :
- if forsed_component_status: # If already determined
- status = forsed_component_status # Nothing to do
- elif component in self.CLIENT_COMPONENTS:
- status = self.DEAD_STATUS # CLIENT components can't have status STARTED
- else:
- statusCheck = StatusCheck(AmbariConfig.servicesToPidNames,
- AmbariConfig.pidPathesVars, self.globalConfig,
- AmbariConfig.servicesToLinuxUser)
- serviceStatus = statusCheck.getStatus(self.component)
- if serviceStatus is None:
- logger.warn("There is no service to pid mapping for " + self.component)
- status = self.LIVE_STATUS if serviceStatus else self.DEAD_STATUS
-
- livestatus ={"componentName" : self.component,
- "msg" : "",
- "status" : status,
- "clusterName" : self.cluster,
- "serviceName" : self.service,
- "stackVersion": self.versionsHandler.
- read_stack_version(self.component)
- }
- active_config = self.actualConfigHandler.read_actual_component(self.component)
- if not active_config is None:
- livestatus['configurationTags'] = active_config
+ if forsed_component_status: # If already determined
+ status = forsed_component_status # Nothing to do
+ elif component in self.CLIENT_COMPONENTS:
+ status = self.DEAD_STATUS # CLIENT components can't have status STARTED
+ elif component in self.COMPONENTS:
+ statusCheck = StatusCheck(AmbariConfig.servicesToPidNames,
+ AmbariConfig.pidPathesVars, self.globalConfig,
+ AmbariConfig.servicesToLinuxUser)
+ serviceStatus = statusCheck.getStatus(self.component)
+ if serviceStatus is None:
+ logger.warn("There is no service to pid mapping for " + self.component)
+ status = self.LIVE_STATUS if serviceStatus else self.DEAD_STATUS
+
+ livestatus ={"componentName" : self.component,
+ "msg" : "",
+ "status" : status,
+ "clusterName" : self.cluster,
+ "serviceName" : self.service,
+ "stackVersion": self.versionsHandler.
+ read_stack_version(self.component)
+ }
+ active_config = self.actualConfigHandler.read_actual_component(self.component)
+ if not active_config is None:
+ livestatus['configurationTags'] = active_config
logger.debug("The live status for component " + str(self.component) +\
" of service " + str(self.service) + " is " + str(livestatus))
http://git-wip-us.apache.org/repos/asf/ambari/blob/d8d308e6/ambari-agent/src/test/python/ambari_agent/TestLiveStatus.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestLiveStatus.py b/ambari-agent/src/test/python/ambari_agent/TestLiveStatus.py
index a025f6e..4266236 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestLiveStatus.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestLiveStatus.py
@@ -25,6 +25,9 @@ import socket
import os, sys, StringIO
from ambari_agent import ActualConfigHandler
from mock.mock import patch, MagicMock, call
+import pprint
+from ambari_agent import StatusCheck
+
class TestLiveStatus(TestCase):
@@ -70,3 +73,29 @@ class TestLiveStatus(TestCase):
self.assertTrue(len(result) > 0, 'Livestatus should not be empty')
self.assertTrue(result['status'], LiveStatus.DEAD_STATUS)
+
+ @patch.object(ActualConfigHandler.ActualConfigHandler, "read_actual_component")
+ @patch.object(StatusCheck.StatusCheck, "getStatus")
+ def test_build_predefined(self, getStatus_mock, read_actual_component_mock):
+ read_actual_component_mock.return_value = "actual_component"
+ """
+ Tests that if live status us defined (using default parameter),
+ then no StatusCheck is executed
+ """
+ config = AmbariConfig().getConfig()
+ config.set('agent', 'prefix', "ambari_agent" + os.sep + "dummy_files")
+ livestatus = LiveStatus('', 'SOME_UNKNOWN_SERVICE',
+ 'SOME_UNKNOWN_COMPONENT', {}, config)
+ livestatus.versionsHandler.versionsFilePath = "ambari_agent" + \
+ os.sep + "dummy_files" + os.sep + "dummy_current_stack"
+ result = livestatus.build(forsed_component_status = "STARTED")
+ result_str = pprint.pformat(result)
+ self.assertEqual(result_str,
+ "{'clusterName': '',\n "
+ "'componentName': 'SOME_UNKNOWN_COMPONENT',\n "
+ "'configurationTags': 'actual_component',\n "
+ "'msg': '',\n 'serviceName': 'SOME_UNKNOWN_SERVICE',\n "
+ "'stackVersion': '',\n 'status': 'STARTED'}")
+ self.assertFalse(getStatus_mock.called)
+
+