Esempio n. 1
0
    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
Esempio n. 2
0
File: pycc.py Progetto: wfrench/pyon
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()
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
File: pycc.py Progetto: dstuebe/pyon
    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