From 11a43eb891c72dcc6d3a5e1297770ac4a83f1236 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Thu, 15 Nov 2012 14:49:55 -0500 Subject: [PATCH] Generalized a lot of launching logic into the saas launcher away from the hosted installation script: mm2.py. --- .../media-monitor2/media/saas/launcher.py | 32 ++++++++++++++- python_apps/media-monitor2/mm2.py | 39 ++++--------------- 2 files changed, 38 insertions(+), 33 deletions(-) diff --git a/python_apps/media-monitor2/media/saas/launcher.py b/python_apps/media-monitor2/media/saas/launcher.py index cd35f712e..822307a0b 100644 --- a/python_apps/media-monitor2/media/saas/launcher.py +++ b/python_apps/media-monitor2/media/saas/launcher.py @@ -1,7 +1,11 @@ -import os +import os, sys + +from media.monitor.exceptions import FailedToObtainLocale, \ + FailedToSetLocale from media.saas.thread import InstanceThread, user, apc from media.monitor.log import Loggable +import media.monitor.pure as mmp from media.monitor.exceptions import CouldNotCreateIndexFile from media.monitor.toucher import ToucherThread from media.monitor.airtime import AirtimeNotifier, \ @@ -9,6 +13,7 @@ from media.monitor.airtime import AirtimeNotifier, \ from media.monitor.watchersyncer import WatchSyncer from media.monitor.eventdrainer import EventDrainer from media.monitor.manager import Manager +from media.saas.airtimeinstance import AirtimeInstance class MM2(InstanceThread, Loggable): @@ -73,3 +78,28 @@ class MM2(InstanceThread, Loggable): apiclient.register_component('media-monitor') manager.loop() + +def launch_instance(name, root, global_cfg, apc_cfg, log_cfg): + cfg = { + 'api_client' : apc_cfg, + 'media_monitor' : global_cfg, + 'logging' : log_cfg, + } + ai = AirtimeInstance('name', 'root', cfg) + MM2(ai).start() + +def setup_global(log): + """ setup unicode and other stuff """ + log.info("Attempting to set the locale...") + try: mmp.configure_locale(mmp.get_system_locale()) + except FailedToSetLocale as e: + log.info("Failed to set the locale...") + sys.exit(1) + except FailedToObtainLocale as e: + log.info("Failed to obtain the locale form the default path: \ + '/etc/default/locale'") + sys.exit(1) + except Exception as e: + log.info("Failed to set the locale for unknown reason. \ + Logging exception.") + log.info(str(e)) diff --git a/python_apps/media-monitor2/mm2.py b/python_apps/media-monitor2/mm2.py index a7718812f..3e8c43e72 100644 --- a/python_apps/media-monitor2/mm2.py +++ b/python_apps/media-monitor2/mm2.py @@ -5,13 +5,10 @@ import logging import logging.config from media.monitor.log import get_logger, setup_logging -from media.monitor.exceptions import FailedToObtainLocale, \ - FailedToSetLocale from std_err_override import LogWriter -from media.saas.launcher import MM2 +from media.saas.launcher import setup_global, launch_instance from media.saas.airtimeinstance import AirtimeInstance - -import media.monitor.pure as mmp +from media.monitor.config import MMConfig def setup_logger(log_config, logpath): logging.config.fileConfig(log_config) @@ -24,35 +21,13 @@ def setup_logger(log_config, logpath): log = get_logger() return log -def setup_global(log): - """ setup unicode and other stuff """ - log.info("Attempting to set the locale...") - try: mmp.configure_locale(mmp.get_system_locale()) - except FailedToSetLocale as e: - log.info("Failed to set the locale...") - sys.exit(1) - except FailedToObtainLocale as e: - log.info("Failed to obtain the locale form the default path: \ - '/etc/default/locale'") - sys.exit(1) - except Exception as e: - log.info("Failed to set the locale for unknown reason. \ - Logging exception.") - log.info(str(e)) - def main(global_config, api_client_config, log_config): - cfg = { - 'api_client' : api_client_config, - 'media_monitor' : global_config, - 'logging' : log_config, - } - ai = AirtimeInstance('hosted_install', '/', cfg) - log = setup_logger( log_config, ai.mm_config['logpath'] ) + """ function to run hosted install """ + mm_config = MMConfig(global_config) + log = setup_logger( log_config, mm_config['logpath'] ) setup_global(log) - run_instance(ai) - -def run_instance(airtime_intance): - MM2(airtime_intance).start() + launch_instance('hosted_install', '/', global_config, api_client_config, + log_config) __doc__ = """ Usage: