def prepare_container(): import threading threading.current_thread().name = "CC-Main" # SIDE EFFECT: The import of pyon.public triggers many module initializers: # pyon.core.bootstrap (Config load, logging setup), etc. from pyon.public import Container, CFG from pyon.util.containers import dict_merge from pyon.util.config import Config # Check if user opted to override logging config if opts.logcfg: from pyon.util.config import logging_conf_paths, initialize_logging # Re-initialize logging logging_conf_paths.append(opts.logcfg) initialize_logging() # Set that system is not testing. We are running as standalone container dict_merge(CFG, {'system':{'testing':False}}, True) # Also set the immediate flag, but only if specified - it is an override if opts.immediate: dict_merge(CFG, {'system':{'immediate':True}}, True) # Load any additional config paths and merge them into main config if len(opts.config): cfg = Config(opts.config) dict_merge(CFG, cfg.data, True) # Create the container instance container = Container(*args, **kwargs) return container
def main(opts, *args, **kwargs): import threading threading.current_thread().name = "CC-Main" # The import of pyon.public triggers many module initializers: # pyon.core.bootstrap (Config load, logging setup), etc. from pyon.public import Container, CFG # Check if user opted to override logging config if opts.logcfg: from pyon.util.config import logging_conf_paths, initialize_logging # Re-initialize logging logging_conf_paths.append(opts.logcfg) initialize_logging() from pyon.container.shell_api import get_shell_api # Set that system is not testing. We are running as standalone container CFG.system.testing = False container = Container(*args, **kwargs) # start and wait for container to signal ready ready = container.start() start_ok = True error_msg = None if opts.proc: # One off process mod, proc = opts.proc.rsplit('.', 1) print "Starting process %s" % opts.proc container.spawn_process(proc, mod, proc, process_type='immediate') container.stop() return if opts.rel: start_ok = container.start_rel_from_url(opts.rel) if not start_ok: error_msg = "Cannot start deploy file '%s'" % opts.rel if start_ok: if not opts.noshell and not opts.daemon: setup_ipython(get_shell_api(container)) else: container.serve_forever() else: print "ABORTING CONTAINER START - ERROR: %s" % error_msg container.stop()
def prepare_container(): import threading threading.current_thread().name = "CC-Main" # SIDE EFFECT: The import of pyon.public triggers many module initializers: # pyon.core.bootstrap (Config load, logging setup), etc. from pyon.public import Container, CFG from pyon.util.containers import dict_merge from pyon.util.config import Config # Check if user opted to override logging config # Requires re-initializing logging if opts.logcfg: from pyon.util.config import LOGGING_CFG, logging_conf_paths, read_logging_config, initialize_logging import ast # Dict of config values if '{' in opts.logcfg: try: eval_value = ast.literal_eval(opts.logcfg) except ValueError: raise Exception("Value error in logcfg arg '%s'" % opts.logcfg) dict_merge(LOGGING_CFG, eval_value) initialize_logging() # YAML file containing config values else: logging_conf_paths.append(opts.logcfg) read_logging_config() initialize_logging() # Set that system is not testing. We are running as standalone container dict_merge(CFG, {'system': {'testing': False}}, True) # Also set the immediate flag, but only if specified - it is an override if opts.immediate: dict_merge(CFG, {'system': {'immediate': True}}, True) # Load any additional config paths and merge them into main config if len(opts.config): ipython_cfg = Config(opts.config) dict_merge(CFG, ipython_cfg.data, True) # Create the container instance container = Container(*args, **kwargs) return container
def prepare_container(): import threading threading.current_thread().name = "CC-Main" # SIDE EFFECT: The import of pyon.public triggers many module initializers: # pyon.core.bootstrap (Config load, logging setup), etc. from pyon.public import Container, CFG from pyon.util.containers import dict_merge from pyon.util.config import Config # Check if user opted to override logging config # Requires re-initializing logging if opts.logcfg: from pyon.util.config import LOGGING_CFG, logging_conf_paths, read_logging_config, initialize_logging import ast # Dict of config values if '{' in opts.logcfg: try: eval_value = ast.literal_eval(opts.logcfg) except ValueError: raise Exception("Value error in logcfg arg '%s'" % opts.logcfg) dict_merge(LOGGING_CFG, eval_value) initialize_logging() # YAML file containing config values else: logging_conf_paths.append(opts.logcfg) read_logging_config() initialize_logging() # Set that system is not testing. We are running as standalone container dict_merge(CFG, {'system':{'testing':False}}, True) # Also set the immediate flag, but only if specified - it is an override if opts.immediate: dict_merge(CFG, {'system':{'immediate':True}}, True) # Load any additional config paths and merge them into main config if len(opts.config): ipython_cfg = Config(opts.config) dict_merge(CFG, ipython_cfg.data, True) # Create the container instance container = Container(*args, **kwargs) return container
def prepare_container(): import threading threading.current_thread().name = "CC-Main" # SIDE EFFECT: The import of pyon.public triggers many module initializers: # pyon.core.bootstrap (Config load, logging setup), etc. from pyon.public import Container, CFG # Check if user opted to override logging config if opts.logcfg: from pyon.util.config import logging_conf_paths, initialize_logging # Re-initialize logging logging_conf_paths.append(opts.logcfg) initialize_logging() # Set that system is not testing. We are running as standalone container CFG.system.testing = False # Create the container instance container = Container(*args, **kwargs) return container