fix some issues with flags and logging
This commit is contained in:
@@ -38,6 +38,8 @@ from nova import version
|
||||
from nova import wsgi
|
||||
|
||||
|
||||
LOG = logging.getLogger('nova.service')
|
||||
|
||||
FLAGS = flags.FLAGS
|
||||
flags.DEFINE_integer('report_interval', 10,
|
||||
'seconds between nodes reporting state to datastore',
|
||||
@@ -58,18 +60,19 @@ 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, flags=None):
|
||||
"""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
|
||||
|
||||
"""
|
||||
self._services = []
|
||||
self._version = version.version_string_with_vcs()
|
||||
self._flags = _flags
|
||||
self._setup_logging()
|
||||
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.
|
||||
@@ -86,13 +89,19 @@ class Launcher(object):
|
||||
:returns: None
|
||||
|
||||
"""
|
||||
utils.default_flagfile()
|
||||
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):
|
||||
"""Start and wait for a service to finish.
|
||||
|
@@ -226,8 +226,10 @@ def novadir():
|
||||
return os.path.abspath(nova.__file__).split('nova/__init__.pyc')[0]
|
||||
|
||||
|
||||
def default_flagfile(filename='nova.conf'):
|
||||
for arg in sys.argv:
|
||||
def default_flagfile(filename='nova.conf', args=None):
|
||||
if args is None:
|
||||
args = sys.argv
|
||||
for arg in args:
|
||||
if arg.find('flagfile') != -1:
|
||||
break
|
||||
else:
|
||||
@@ -239,8 +241,8 @@ def default_flagfile(filename='nova.conf'):
|
||||
filename = "./nova.conf"
|
||||
if not os.path.exists(filename):
|
||||
filename = '/etc/nova/nova.conf'
|
||||
flagfile = ['--flagfile=%s' % filename]
|
||||
sys.argv = sys.argv[:1] + flagfile + sys.argv[1:]
|
||||
flagfile = '--flagfile=%s' % filename
|
||||
args.insert(1, flagfile)
|
||||
|
||||
|
||||
def debug(arg):
|
||||
|
Reference in New Issue
Block a user