Moves find config to utils because it is useful

This is to prepare for a future patch will will use find
config to load other config files.

Change-Id: Ic9bd9027baf518734c3f51f516651b80d1e752f2
This commit is contained in:
Vishvananda Ishaya
2011-12-10 14:01:17 -08:00
parent f89f7f91f6
commit da3b8b6a6a
3 changed files with 26 additions and 25 deletions

View File

@@ -810,8 +810,8 @@ class MalformedRequestBody(NovaException):
message = _("Malformed message body: %(reason)s")
class PasteConfigNotFound(NotFound):
message = _("Could not find paste config at %(path)s")
class ConfigNotFound(NotFound):
message = _("Could not find config at %(path)s")
class PasteAppNotFound(NotFound):

View File

@@ -77,6 +77,29 @@ def import_object(import_str):
return cls()
def find_config(config_path):
"""Find a configuration file using the given hint.
:param config_path: Full or relative path to the config.
:returns: Full path of the config, if it exists.
:raises: `nova.exception.ConfigNotFound`
"""
possible_locations = [
config_path,
os.path.join(FLAGS.state_path, "etc", "nova", config_path),
os.path.join(FLAGS.state_path, "etc", config_path),
os.path.join(FLAGS.state_path, config_path),
"/etc/nova/%s" % config_path,
]
for path in possible_locations:
if os.path.exists(path):
return os.path.abspath(path)
raise exception.ConfigNotFound(path=os.path.abspath(config_path))
def vpn_ping(address, port, timeout=0.05, session_id=None):
"""Sends a vpn negotiation packet and returns the server session.

View File

@@ -375,29 +375,7 @@ class Loader(object):
"""
config_path = config_path or FLAGS.api_paste_config
self.config_path = self._find_config(config_path)
def _find_config(self, config_path):
"""Find the paste configuration file using the given hint.
:param config_path: Full or relative path to the paste config.
:returns: Full path of the paste config, if it exists.
:raises: `nova.exception.PasteConfigNotFound`
"""
possible_locations = [
config_path,
os.path.join(FLAGS.state_path, "etc", "nova", config_path),
os.path.join(FLAGS.state_path, "etc", config_path),
os.path.join(FLAGS.state_path, config_path),
"/etc/nova/%s" % config_path,
]
for path in possible_locations:
if os.path.exists(path):
return os.path.abspath(path)
raise exception.PasteConfigNotFound(path=os.path.abspath(config_path))
self.config_path = utils.find_config(config_path)
def load_app(self, name):
"""Return the paste URLMap wrapped WSGI application.