Esempio n. 1
0
def initialize_nova_flags(config_file):
    from nova import flags
    from nova import log as logging
    from nova import service
    from nova import utils

    flags.parse_args(['int_tests'], default_config_files=[config_file])
    logging.setup()
    utils.monkey_patch()
def initialize_nova_flags(config_file):
    from nova import flags
    from nova import log as logging
    from nova import service
    from nova import utils

    flags.parse_args(['int_tests'], default_config_files=[config_file])
    logging.setup()
    utils.monkey_patch()
Esempio n. 3
0
def get_server():
  """Get the Nova API server."""
  args = sys.argv
  args.append('--config-dir=etc/nova')
  config.parse_args(args)
  logging.setup("nova")
  utils.monkey_patch()
  should_use_ssl = 'osapi_compute' in CONF.enabled_ssl_apis
  server = service.WSGIService('osapi_compute', use_ssl=should_use_ssl)
  return server
Esempio n. 4
0
def setup_logging():

    logging.setup(CONF, 'kuryr-kubernetes')
    logging.set_defaults(default_log_levels=logging.get_default_log_levels())
    version_k8s = version.version_info.version_string()
    LOG.info("Logging enabled!")
    LOG.info("%(prog)s version %(version)s", {
        'prog': sys.argv[0],
        'version': version_k8s
    })
Esempio n. 5
0
        """
        pass

    def local_path(self, volume):
        raise NotImplementedError()

if __name__ == "__main__":
    """The following code make it possible to execute a set of arbitrary commands 
    on the SAN without starting up the nova-volume service. The script requires no 
    additional configuration beyond one already used by regular nova services.
    To run the script use the following command line:

    python <nova-pkg-dir>/volume/san.py [--config=<optional-file-with-extra-cfg>] <cmd1> ... <cmdN>

    NOTE: when working with the source packaged nova use the command line

    cd <nova-src-dir> && python nova/volume/san.py ...
    """
    utils.default_flagfile()
    args = flags.FLAGS(sys.argv)
    logging.setup()
    
    utils.monkey_patch()
    volume_driver = utils.import_object(FLAGS.volume_driver)
    
    volume_driver.do_setup(None)
    volume_driver.check_for_setup_error()

    for command in args[1:]:
        sys.stdout.write('\n'.join(volume_driver._execute(command)))
Esempio n. 6
0
                self.__result.printErrors()
                self.__result.printSummary(self.__start_time, stop_time)
                self.config.plugins.finalize(self.__result)
                if self.show_elapsed:
                    self._writeSlowTests(self.__result)

    def run(self, test):
        result_ = super(NovaTestRunner, self).run(test)
        if self.show_elapsed:
            self._writeSlowTests(result_)
        self.__finished = True
        return result_


if __name__ == '__main__':
    logging.setup()
    # If any argument looks like a test name but doesn't have "nova.tests" in
    # front of it, automatically add that so we don't have to type as much
    show_elapsed = True
    argv = []
    test_fixture = os.getenv("UNITTEST_FIXTURE", "trove")
    for x in sys.argv:
        if x.startswith('test_'):
            argv.append('%s.tests.%s' % (test_fixture, x))
        elif x.startswith('--hide-elapsed'):
            show_elapsed = False
        else:
            argv.append(x)

    testdir = os.path.abspath(os.path.join(test_fixture, "tests"))
    c = config.Config(stream=sys.stdout,
Esempio n. 7
0
def main(start=True, argv=None):
    try:
        import twisted
    except ImportError:
        print "Orbited requires Twisted, which is not installed. See http://twistedmatrix.com/trac/ for installation instructions."
        sys.exit(1)

    #################
    # This corrects a bug in Twisted 8.2.0 for certain Python 2.6 builds on Windows
    #   Twisted ticket: http://twistedmatrix.com/trac/ticket/3868
    #     -mario
    try:
        from twisted.python import lockfile
    except ImportError:
        from orbited import __path__ as orbited_path
        sys.path.append(os.path.join(orbited_path[0],"hotfixes","win32api"))
        from twisted.python import lockfile
        lockfile.kill = None
    #################
      
  
    from optparse import OptionParser
    parser = OptionParser()
    parser.add_option(
        "-c",
        "--config",
        dest="config",
        default=None,
        help="path to configuration file"
    )
    parser.add_option(
        "-v",
        "--version",
        dest="version",
        action="store_true",
        default=False,
        help="print Orbited version"
    )
    parser.add_option(
        "-p",
        "--profile",
        dest="profile",
        action="store_true",
        default=False,
        help="run Orbited with a profiler"
    )
    parser.add_option(
        "-q",
        "--quickstart",
        dest="quickstart",
        action="store_true",
        default=False,
        help="run Orbited on port 8000 and MorbidQ on port 61613"
    )
    if argv == None:
        argv = sys.argv[1:]
    (options, args) = parser.parse_args(argv)
    if args:
        print 'the "orbited" command does not accept positional arguments. type "orbited -h" for options.'
        sys.exit(1)

    if options.version:
        print "Orbited version: %s" % (version,)
        sys.exit(0)

    if options.quickstart:
        config.map['[listen]'].append('http://:8000')
        config.map['[listen]'].append('stomp://:61613')
        config.map['[access]'][('localhost',61613)] = ['*']
        print "Quickstarting Orbited"
    else:
        # load configuration from configuration
        # file and from command line arguments.
        config.setup(options=options)

    logging.setup(config.map)

    # we can now safely get loggers.
    global logger; logger = logging.get_logger('orbited.start')
  
    ############
    # This crude garbage corrects a bug in twisted
    #   Orbited ticket: http://orbited.org/ticket/111
    #   Twisted ticket: http://twistedmatrix.com/trac/ticket/2447
    # XXX : do we still need this?
    #       -mcarter 9/24/09
#    import twisted.web.http
#    twisted.web.http.HTTPChannel.setTimeout = lambda self, arg: None
#    twisted.web.http.HTTPChannel.resetTimeout = lambda self: None
    ############

        
    # NB: we need to install the reactor before using twisted.
    reactor_name = config.map['[global]'].get('reactor')
    if reactor_name:
        install = _import('twisted.internet.%sreactor.install' % reactor_name)
        install()
        logger.info('using %s reactor' % reactor_name)
        
        
    from twisted.internet import reactor
    from twisted.web import resource
    from twisted.web import server
    from twisted.web import static
#    import orbited.system
        
        
    if 'INDEX' in config.map['[static]']:
        root = static.File(config.map['[static]']['INDEX'])
    else:
        root = resource.Resource()
    static_files = static.File(os.path.join(os.path.dirname(__file__), 'static'))
    root.putChild('static', static_files)
    # Note: hard coding timeout to 120. 
    site = server.Site(root, timeout=120)
    from proxy import ProxyFactory
    from csp_twisted import CometPort

    reactor.listenWith(CometPort, factory=ProxyFactory(), resource=root, childName='csp')
    _setup_static(root, config.map)
    start_listening(site, config.map, logger)
    
    
    # switch uid and gid to configured user and group.
    if os.name == 'posix' and os.getuid() == 0:
        user = config.map['[global]'].get('user')
        group = config.map['[global]'].get('group')
        if user:
            import pwd
            import grp
            try:
                pw = pwd.getpwnam(user)
                uid = pw.pw_uid
                if group:
                    gr = grp.getgrnam(group)
                    gid = gr.gr_gid
                else:
                    gid = pw.pw_gid
                    gr = grp.getgrgid(gid)
                    group = gr.gr_name
            except Exception, e:
                logger.error('Aborting; Unknown user or group: %s' % e)
                sys.exit(1)
            logger.info('switching to user %s (uid=%d) and group %s (gid=%d)' % (user, uid, group, gid))
            os.setgid(gid)
            os.setuid(uid)
        else:
            logger.error('Aborting; You must define a user (and optionally a group) in the configuration file.')
            sys.exit(1)