Generalized a lot of launching logic into the saas launcher away from the hosted installation script: mm2.py.

This commit is contained in:
Rudi Grinberg 2012-11-15 14:49:55 -05:00
parent c43dbe42a8
commit 11a43eb891
2 changed files with 38 additions and 33 deletions

View File

@ -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))

View File

@ -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: