fix some issues with flags and logging

This commit is contained in:
Mark Washenberger
2011-06-22 09:33:46 -04:00
parent 1345ed5da6
commit 9fba8dde19
2 changed files with 20 additions and 9 deletions

View File

@@ -38,6 +38,8 @@ from nova import version
from nova import wsgi from nova import wsgi
LOG = logging.getLogger('nova.service')
FLAGS = flags.FLAGS FLAGS = flags.FLAGS
flags.DEFINE_integer('report_interval', 10, flags.DEFINE_integer('report_interval', 10,
'seconds between nodes reporting state to datastore', 'seconds between nodes reporting state to datastore',
@@ -58,18 +60,19 @@ flags.DEFINE_string('api_paste_config', "api-paste.ini",
class Launcher(object): class Launcher(object):
"""Launch one or more services and wait for them to complete.""" """Launch one or more services and wait for them to complete."""
def __init__(self, _flags=None): def __init__(self, flags=None):
"""Initialize the service launcher. """Initialize the service launcher.
:param _flags: Flags to use for the services we're going to load. :param flags: Flags to use for the services we're going to load.
:returns: None :returns: None
""" """
self._services = [] self._services = []
self._version = version.version_string_with_vcs() self._version = version.version_string_with_vcs()
self._flags = _flags self._flags = flags
self._setup_logging()
self._setup_flags() self._setup_flags()
self._setup_logging()
self._log_flags()
def _setup_logging(self): def _setup_logging(self):
"""Logic to ensure logging is going to work correctly for services. """Logic to ensure logging is going to work correctly for services.
@@ -86,13 +89,19 @@ class Launcher(object):
:returns: None :returns: None
""" """
utils.default_flagfile() utils.default_flagfile(args=self._flags)
FLAGS(self._flags or []) FLAGS(self._flags or [])
flags.DEFINE_flag(flags.HelpFlag()) flags.DEFINE_flag(flags.HelpFlag())
flags.DEFINE_flag(flags.HelpshortFlag()) flags.DEFINE_flag(flags.HelpshortFlag())
flags.DEFINE_flag(flags.HelpXMLFlag()) flags.DEFINE_flag(flags.HelpXMLFlag())
FLAGS.ParseNewFlags() 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 @staticmethod
def run_service(service): def run_service(service):
"""Start and wait for a service to finish. """Start and wait for a service to finish.

View File

@@ -226,8 +226,10 @@ def novadir():
return os.path.abspath(nova.__file__).split('nova/__init__.pyc')[0] return os.path.abspath(nova.__file__).split('nova/__init__.pyc')[0]
def default_flagfile(filename='nova.conf'): def default_flagfile(filename='nova.conf', args=None):
for arg in sys.argv: if args is None:
args = sys.argv
for arg in args:
if arg.find('flagfile') != -1: if arg.find('flagfile') != -1:
break break
else: else:
@@ -239,8 +241,8 @@ def default_flagfile(filename='nova.conf'):
filename = "./nova.conf" filename = "./nova.conf"
if not os.path.exists(filename): if not os.path.exists(filename):
filename = '/etc/nova/nova.conf' filename = '/etc/nova/nova.conf'
flagfile = ['--flagfile=%s' % filename] flagfile = '--flagfile=%s' % filename
sys.argv = sys.argv[:1] + flagfile + sys.argv[1:] args.insert(1, flagfile)
def debug(arg): def debug(arg):