def server_process_main(stop_handler, scmStatus=None): if scmStatus is not None: scmStatus.reportStartPending() config = Configuration() _init_logging(config) controller = Controller(config, stop_handler) logger.info('Starting Server RPC Thread: %s' % ' '.join(sys.argv)) controller.start() print "Server out at: " + SERVER_OUT_FILE print "Server log at: " + SERVER_LOG_FILE save_pid(os.getpid(), PID_OUT_FILE) if scmStatus is not None: scmStatus.reportStarted() # For some reason this is needed to catch system signals like SIGTERM # TODO fix if possible signal.pause() #The controller thread finishes when the stop event is signaled controller.join() remove_file(PID_OUT_FILE) pass
def testRetryFetch(self, url_open_mock): stop_handler = bind_signal_handlers() config = Configuration() application_metric_map = ApplicationMetricMap("host", "10.10.10.10") application_metric_map.clear() application_metric_map.put_metric("APP1", {"metric1": 1}, 1) emitter = Emitter(config, application_metric_map, stop_handler) emitter.RETRY_SLEEP_INTERVAL = .001 emitter.submit_metrics() self.assertEqual(url_open_mock.call_count, 3) self.assertUrlData(url_open_mock)
def testCollectEvent(self, amm_mock, host_info_mock): amm_mock.return_value = None host_info_mock.return_value = {'metric_name': 'metric_value'} metric_collector = MetricsCollector(None, amm_mock, host_info_mock, Configuration()) group_config = {'collect_every': 1, 'metrics': 'cpu'} e = HostMetricCollectEvent(group_config, 'cpu') metric_collector.process_event(e) self.assertEqual(amm_mock.put_metric.call_count, 1)
def testJavaHomeAvailableCheck(self, url_open_mock): url_open_mock.return_value = MagicMock() url_open_mock.return_value.getcode.return_value = 200 self.assertEqual(urllib2.urlopen(None, None).getcode(), 200) url_open_mock.reset_mock() stop_handler = bind_signal_handlers() config = Configuration() application_metric_map = ApplicationMetricMap("host", "10.10.10.10") application_metric_map.clear() application_metric_map.put_metric("APP1", {"metric1": 1}, 1) emitter = Emitter(config, application_metric_map, stop_handler) emitter.submit_metrics() self.assertEqual(url_open_mock.call_count, 1) self.assertUrlData(url_open_mock)
def server_process_main(stop_handler, scmStatus=None): if scmStatus is not None: scmStatus.reportStartPending() save_pid(os.getpid(), PID_OUT_FILE) config = Configuration() _init_logging(config) controller = Controller(config, stop_handler) logger.info('Starting Server RPC Thread: %s' % ' '.join(sys.argv)) controller.start() print "Server out at: " + SERVER_OUT_FILE print "Server log at: " + SERVER_LOG_FILE if scmStatus is not None: scmStatus.reportStarted() #The controller thread finishes when the stop event is signaled controller.join() remove_file(PID_OUT_FILE) pass
import logging import logging.handlers import os import sys import signal from ambari_commons.os_utils import remove_file from core.controller import Controller from core.config_reader import Configuration, PID_OUT_FILE from core.stop_handler import bind_signal_handlers logger = logging.getLogger() main_config = Configuration() def save_pid(pid, pidfile): """ Save pid to pidfile. """ try: pfile = open(pidfile, "w") pfile.write("%s\n" % pid) except IOError: pass finally: try: pfile.close() except: pass