summaryrefslogtreecommitdiffstats
path: root/nova/utils.py
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2011-12-10 14:01:17 -0800
committerVishvananda Ishaya <vishvananda@gmail.com>2011-12-10 14:01:17 -0800
commitce2d62f95cd9b62858c9b4ef37b418881ceaef07 (patch)
tree98a6f9f15eb729e2e3248fb05a8dcf09637e24d3 /nova/utils.py
parent0c6c7700299e225aee2c86fbe725c8e146b9f0d4 (diff)
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
Diffstat (limited to 'nova/utils.py')
-rw-r--r--nova/utils.py23
1 files changed, 23 insertions, 0 deletions
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.