diff options
| author | Brian Lamar <brian.lamar@rackspace.com> | 2011-06-23 21:31:00 -0400 |
|---|---|---|
| committer | Brian Lamar <brian.lamar@rackspace.com> | 2011-06-23 21:31:00 -0400 |
| commit | 655a783d5a0ef2ddadcf119793cd34513a45fe27 (patch) | |
| tree | 0c48676a13c628c802028d2e3c6402de10cd6051 /nova | |
| parent | 2690e31bbd8c515771ca69a0a73e9ff5761a9079 (diff) | |
| download | nova-655a783d5a0ef2ddadcf119793cd34513a45fe27.tar.gz nova-655a783d5a0ef2ddadcf119793cd34513a45fe27.tar.xz nova-655a783d5a0ef2ddadcf119793cd34513a45fe27.zip | |
Created Bootstrapper to handle Nova bootstrapping logic.
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/service.py | 36 | ||||
| -rw-r--r-- | nova/utils.py | 37 |
2 files changed, 38 insertions, 35 deletions
diff --git a/nova/service.py b/nova/service.py index 41c6551e0..00e4f61e5 100644 --- a/nova/service.py +++ b/nova/service.py @@ -60,47 +60,13 @@ flags.DEFINE_string('api_paste_config', "api-paste.ini", class Launcher(object): """Launch one or more services and wait for them to complete.""" - def __init__(self, flags=None): + def __init__(self): """Initialize the service launcher. - :param flags: Flags to use for the services we're going to load. :returns: None """ self._services = [] - self._version = version.version_string_with_vcs() - self._flags = flags - self._setup_flags() - self._setup_logging() - self._log_flags() - - def _setup_logging(self): - """Logic to ensure logging is going to work correctly for services. - - :returns: None - - """ - logging.setup() - logging.audit(_("Nova Version (%(_version)s)") % self.__dict__) - - def _setup_flags(self): - """Logic to ensure flags/configuration are correctly set. - - :returns: None - - """ - utils.default_flagfile(args=self._flags) - FLAGS(self._flags or []) - flags.DEFINE_flag(flags.HelpFlag()) - flags.DEFINE_flag(flags.HelpshortFlag()) - flags.DEFINE_flag(flags.HelpXMLFlag()) - FLAGS.ParseNewFlags() - - def _log_flags(self): - LOG.debug(_("Full set of FLAGS:")) - for flag in FLAGS: - flag_get = FLAGS.get(flag, None) - LOG.debug("%(flag)s : %(flag_get)s" % locals()) @staticmethod def run_service(service): diff --git a/nova/utils.py b/nova/utils.py index a9b0f3128..a6b8d4cbe 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -743,3 +743,40 @@ def is_uuid_like(val): if not isinstance(val, basestring): return False return (len(val) == 36) and (val.count('-') == 4) + + +class Bootstrapper(object): + """Provides environment bootstrapping capabilities for entry points.""" + + @staticmethod + def bootstrap_binary(argv): + """Initialize the Nova environment using command line arguments.""" + Bootstrapper.setup_flags(argv) + Bootstrapper.setup_logging() + Bootstrapper.log_flags() + + @staticmethod + def setup_logging(): + """Initialize logging and log a message indicating the Nova version.""" + logging.setup() + logging.audit(_("Nova Version (%s)") % + version.version_string_with_vcs()) + + @staticmethod + def setup_flags(input_flags): + """Initialize flags, load flag file, and print help if needed.""" + default_flagfile(args=input_flags) + FLAGS(input_flags or []) + flags.DEFINE_flag(flags.HelpFlag()) + flags.DEFINE_flag(flags.HelpshortFlag()) + flags.DEFINE_flag(flags.HelpXMLFlag()) + FLAGS.ParseNewFlags() + + @staticmethod + def log_flags(): + """Log the list of all active flags being used.""" + logging.audit(_("Currently active flags:")) + for key in FLAGS: + value = FLAGS.get(key, None) + logging.audit(_("%(key)s : %(value)s" % locals())) + |
