Exemple #1
0
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
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
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
Exemple #6
0
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