summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/manager.py2
-rw-r--r--nova/compute/monitor.py2
-rw-r--r--nova/crypto.py4
-rw-r--r--nova/flags.py22
-rw-r--r--nova/network/linux_net.py2
-rw-r--r--nova/objectstore/bucket.py2
-rw-r--r--nova/objectstore/image.py4
7 files changed, 28 insertions, 10 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 850cded8a..65fa50431 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -33,7 +33,7 @@ from nova.compute import power_state
FLAGS = flags.FLAGS
-flags.DEFINE_string('instances_path', utils.abspath('../instances'),
+flags.DEFINE_string('instances_path', '$state_path/instances',
'where instances are stored on disk')
flags.DEFINE_string('compute_driver', 'nova.virt.connection.get_connection',
'Driver to use for volume creation')
diff --git a/nova/compute/monitor.py b/nova/compute/monitor.py
index d0154600f..024f3ed3c 100644
--- a/nova/compute/monitor.py
+++ b/nova/compute/monitor.py
@@ -46,7 +46,7 @@ flags.DEFINE_integer('monitoring_instances_delay', 5,
'Sleep time between updates')
flags.DEFINE_integer('monitoring_instances_step', 300,
'Interval of RRD updates')
-flags.DEFINE_string('monitoring_rrd_path', '/var/nova/monitor/instances',
+flags.DEFINE_string('monitoring_rrd_path', '$state_path/monitor/instances',
'Location of RRD files')
diff --git a/nova/crypto.py b/nova/crypto.py
index 16b4f5e1f..045f7f53f 100644
--- a/nova/crypto.py
+++ b/nova/crypto.py
@@ -39,9 +39,9 @@ from nova import flags
FLAGS = flags.FLAGS
flags.DEFINE_string('ca_file', 'cacert.pem', 'Filename of root CA')
-flags.DEFINE_string('keys_path', utils.abspath('../keys'),
+flags.DEFINE_string('keys_path', '$state_path/keys',
'Where we keep our keys')
-flags.DEFINE_string('ca_path', utils.abspath('../CA'),
+flags.DEFINE_string('ca_path', '$state_path/CA',
'Where we keep our root CA')
flags.DEFINE_boolean('use_intermediate_ca', False,
'Should we use intermediate CAs for each project?')
diff --git a/nova/flags.py b/nova/flags.py
index 4ae86d9b2..2b8bbbdb7 100644
--- a/nova/flags.py
+++ b/nova/flags.py
@@ -26,6 +26,8 @@ import os
import socket
import sys
+from string import Template
+
import gflags
@@ -134,8 +136,21 @@ class FlagValues(gflags.FlagValues):
def __getattr__(self, name):
if self.IsDirty(name):
self.ParseNewFlags()
- return gflags.FlagValues.__getattr__(self, name)
+ val = gflags.FlagValues.__getattr__(self, name)
+ if type(val) is str:
+ tmpl = Template(val)
+ return tmpl.substitute(StrWrapper(self))
+ return val
+class StrWrapper(object):
+ def __init__(self, obj):
+ self.wrapped = obj
+
+ def __getitem__(self, name):
+ if hasattr(self.wrapped, name):
+ return str(getattr(self.wrapped, name))
+ else:
+ raise KeyError(name)
FLAGS = FlagValues()
gflags.FLAGS = FLAGS
@@ -218,8 +233,11 @@ DEFINE_string('vpn_key_suffix',
DEFINE_integer('auth_token_ttl', 3600, 'Seconds for auth tokens to linger')
+DEFINE_string('state_path', os.path.abspath("./"),
+ "Top-level directory for maintaining nova's state")
+
DEFINE_string('sql_connection',
- 'sqlite:///%s/nova.sqlite' % os.path.abspath("./"),
+ 'sqlite:///$state_path/nova.sqlite',
'connection string for sql database')
DEFINE_string('compute_manager', 'nova.compute.manager.ComputeManager',
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index 7b323efa1..f504b3d29 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -38,7 +38,7 @@ flags.DEFINE_string('dhcpbridge_flagfile',
'/etc/nova/nova-dhcpbridge.conf',
'location of flagfile for dhcpbridge')
-flags.DEFINE_string('networks_path', utils.abspath('../networks'),
+flags.DEFINE_string('networks_path', '$state_path/networks',
'Location to keep network config files')
flags.DEFINE_string('public_interface', 'vlan1',
'Interface for public IP addresses')
diff --git a/nova/objectstore/bucket.py b/nova/objectstore/bucket.py
index 0ba4934d1..fce3ec27b 100644
--- a/nova/objectstore/bucket.py
+++ b/nova/objectstore/bucket.py
@@ -33,7 +33,7 @@ from nova.objectstore import stored
FLAGS = flags.FLAGS
-flags.DEFINE_string('buckets_path', utils.abspath('../buckets'),
+flags.DEFINE_string('buckets_path', '$state_path/buckets',
'path to s3 buckets')
diff --git a/nova/objectstore/image.py b/nova/objectstore/image.py
index b7b2ec6ab..51aef7343 100644
--- a/nova/objectstore/image.py
+++ b/nova/objectstore/image.py
@@ -39,8 +39,8 @@ from nova.objectstore import bucket
FLAGS = flags.FLAGS
-flags.DEFINE_string('images_path', utils.abspath('../images'),
- 'path to decrypted images')
+flags.DEFINE_string('images_path', '$state_path/images',
+ 'path to decrypted images')
class Image(object):