From da3b8b6a6a01f526a664ca3c4c9ba7461c96705c Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Sat, 10 Dec 2011 14:01:17 -0800 Subject: [PATCH] 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 --- nova/exception.py | 4 ++-- nova/utils.py | 23 +++++++++++++++++++++++ nova/wsgi.py | 24 +----------------------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/nova/exception.py b/nova/exception.py index 565e55387..9d9ce16f5 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -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): diff --git a/nova/utils.py b/nova/utils.py index e79d57622..adf45debd 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -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. diff --git a/nova/wsgi.py b/nova/wsgi.py index 09b45be5a..5ca0edd45 100644 --- a/nova/wsgi.py +++ b/nova/wsgi.py @@ -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.