summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/tests/baremetal/db/base.py9
-rw-r--r--nova/tests/baremetal/test_driver.py19
-rw-r--r--nova/tests/baremetal/test_volume_driver.py2
-rw-r--r--nova/virt/baremetal/db/api.py7
-rw-r--r--nova/virt/baremetal/db/sqlalchemy/session.py11
-rw-r--r--nova/virt/baremetal/driver.py30
-rw-r--r--nova/virt/baremetal/volume_driver.py16
7 files changed, 58 insertions, 36 deletions
diff --git a/nova/tests/baremetal/db/base.py b/nova/tests/baremetal/db/base.py
index f2b905895..37e51fe79 100644
--- a/nova/tests/baremetal/db/base.py
+++ b/nova/tests/baremetal/db/base.py
@@ -24,8 +24,9 @@ from nova.virt.baremetal.db.sqlalchemy import session as bm_session
_DB_CACHE = None
CONF = cfg.CONF
-CONF.import_opt('baremetal_sql_connection',
- 'nova.virt.baremetal.db.sqlalchemy.session')
+CONF.import_opt('sql_connection',
+ 'nova.virt.baremetal.db.sqlalchemy.session',
+ group='baremetal')
class Database(test.Database):
@@ -38,11 +39,11 @@ class BMDBTestCase(test.TestCase):
def setUp(self):
super(BMDBTestCase, self).setUp()
- self.flags(baremetal_sql_connection='sqlite://')
+ self.flags(sql_connection='sqlite://', group='baremetal')
global _DB_CACHE
if not _DB_CACHE:
_DB_CACHE = Database(bm_session, bm_migration,
- sql_connection=CONF.baremetal_sql_connection,
+ sql_connection=CONF.baremetal.sql_connection,
sqlite_db=None,
sqlite_clean_db=None)
self.useFixture(_DB_CACHE)
diff --git a/nova/tests/baremetal/test_driver.py b/nova/tests/baremetal/test_driver.py
index c62c01aac..b12336da0 100644
--- a/nova/tests/baremetal/test_driver.py
+++ b/nova/tests/baremetal/test_driver.py
@@ -64,14 +64,18 @@ def class_path(class_):
COMMON_FLAGS = dict(
- baremetal_sql_connection='sqlite:///:memory:',
- baremetal_driver='nova.virt.baremetal.fake.Fake',
- power_manager='nova.virt.baremetal.fake.FakePowerManager',
- baremetal_vif_driver=class_path(FakeVifDriver),
firewall_driver=class_path(FakeFirewallDriver),
- baremetal_volume_driver=class_path(FakeVolumeDriver),
- instance_type_extra_specs=['cpu_arch:test'],
+)
+
+BAREMETAL_FLAGS = dict(
+ driver='nova.virt.baremetal.fake.Fake',
host=NODE['service_host'],
+ instance_type_extra_specs=['cpu_arch:test'],
+ power_manager='nova.virt.baremetal.fake.FakePowerManager',
+ sql_connection='sqlite:///:memory:',
+ vif_driver=class_path(FakeVifDriver),
+ volume_driver=class_path(FakeVolumeDriver),
+ group='baremetal',
)
@@ -92,6 +96,7 @@ class BaremetalDriverSpawnTestCase(base.Database):
def setUp(self):
super(BaremetalDriverSpawnTestCase, self).setUp()
self.flags(**COMMON_FLAGS)
+ self.flags(**BAREMETAL_FLAGS)
fake_image.stub_out_image_service(self.stubs)
self.node = _create_baremetal_stuff()
@@ -185,5 +190,5 @@ class BaremetalDriverTestCase(test_virt_drivers._VirtDriverTestCase,
self.assertEqual(cap['x'], '123')
self.assertEqual(cap['y'], '456')
self.assertEqual(cap['hypervisor_type'], 'baremetal')
- self.assertEqual(cap['baremetal_driver'],
+ self.assertEqual(cap['driver'],
'nova.virt.baremetal.fake.Fake')
diff --git a/nova/tests/baremetal/test_volume_driver.py b/nova/tests/baremetal/test_volume_driver.py
index dacca6e53..e1b81d0b1 100644
--- a/nova/tests/baremetal/test_volume_driver.py
+++ b/nova/tests/baremetal/test_volume_driver.py
@@ -161,6 +161,6 @@ class BareMetalVolumeTestCase(test.TestCase):
self.assertTrue(tid is None)
def test_get_iqn(self):
- self.flags(baremetal_iscsi_iqn_prefix='iqn.2012-12.a.b')
+ self.flags(iscsi_iqn_prefix='iqn.2012-12.a.b', group='baremetal')
iqn = volume_driver._get_iqn('instname', '/dev/vdx')
self.assertEquals('iqn.2012-12.a.b:instname-dev-vdx', iqn)
diff --git a/nova/virt/baremetal/db/api.py b/nova/virt/baremetal/db/api.py
index 0b8cf781c..3ff533c6c 100644
--- a/nova/virt/baremetal/db/api.py
+++ b/nova/virt/baremetal/db/api.py
@@ -37,8 +37,8 @@ these objects be simple dictionaries.
:baremetal_db_backend: string to lookup in the list of LazyPluggable backends.
`sqlalchemy` is the only supported backend right now.
-:baremetal_sql_connection: string specifying the sqlalchemy connection to use,
- like: `sqlite:///var/lib/nova/nova.sqlite`.
+:[BAREMETAL] sql_connection: string specifying the sqlalchemy connection to
+ use, like: `sqlite:///var/lib/nova/nova.sqlite`.
"""
@@ -46,6 +46,9 @@ from nova.openstack.common import cfg
from nova import utils
+# NOTE(deva): we can't move baremetal_db_backend into an OptGroup yet
+# because utils.LazyPluggable doesn't support reading from
+# option groups. See bug #1093043.
db_opts = [
cfg.StrOpt('baremetal_db_backend',
default='sqlalchemy',
diff --git a/nova/virt/baremetal/db/sqlalchemy/session.py b/nova/virt/baremetal/db/sqlalchemy/session.py
index 3e562e32a..14013669d 100644
--- a/nova/virt/baremetal/db/sqlalchemy/session.py
+++ b/nova/virt/baremetal/db/sqlalchemy/session.py
@@ -23,14 +23,19 @@ from nova.db.sqlalchemy import session as nova_session
from nova.openstack.common import cfg
opts = [
- cfg.StrOpt('baremetal_sql_connection',
+ cfg.StrOpt('sql_connection',
default='sqlite:///$state_path/baremetal_$sqlite_db',
help='The SQLAlchemy connection string used to connect to the '
'bare-metal database'),
]
+baremetal_group = cfg.OptGroup(name='baremetal',
+ title='Baremetal Options')
+
CONF = cfg.CONF
-CONF.register_opts(opts)
+CONF.register_group(baremetal_group)
+CONF.register_opts(opts, baremetal_group)
+
CONF.import_opt('sqlite_db', 'nova.db.sqlalchemy.session')
CONF.import_opt('state_path', 'nova.config')
@@ -55,5 +60,5 @@ def get_engine():
"""Return a SQLAlchemy engine."""
global _ENGINE
if _ENGINE is None:
- _ENGINE = nova_session.create_engine(CONF.baremetal_sql_connection)
+ _ENGINE = nova_session.create_engine(CONF.baremetal.sql_connection)
return _ENGINE
diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py
index e840c4e75..120a36c3c 100644
--- a/nova/virt/baremetal/driver.py
+++ b/nova/virt/baremetal/driver.py
@@ -34,16 +34,16 @@ from nova.virt import firewall
from nova.virt.libvirt import imagecache
opts = [
- cfg.BoolOpt('baremetal_inject_password',
+ cfg.BoolOpt('inject_password',
default=True,
help='Whether baremetal compute injects password or not'),
- cfg.StrOpt('baremetal_injected_network_template',
+ cfg.StrOpt('injected_network_template',
default='$pybasedir/nova/virt/baremetal/interfaces.template',
help='Template file for injected network'),
- cfg.StrOpt('baremetal_vif_driver',
+ cfg.StrOpt('vif_driver',
default='nova.virt.baremetal.vif_driver.BareMetalVIFDriver',
help='Baremetal VIF driver.'),
- cfg.StrOpt('baremetal_volume_driver',
+ cfg.StrOpt('volume_driver',
default='nova.virt.baremetal.volume_driver.LibvirtVolumeDriver',
help='Baremetal volume driver.'),
cfg.ListOpt('instance_type_extra_specs',
@@ -52,13 +52,13 @@ opts = [
'instance_type_extra_specs for this compute '
'host to advertise. Valid entries are name=value, pairs '
'For example, "key1:val1, key2:val2"'),
- cfg.StrOpt('baremetal_driver',
+ cfg.StrOpt('driver',
default='nova.virt.baremetal.pxe.PXE',
help='Baremetal driver back-end (pxe or tilera)'),
cfg.StrOpt('power_manager',
default='nova.virt.baremetal.ipmi.Ipmi',
help='Baremetal power management method'),
- cfg.StrOpt('baremetal_tftp_root',
+ cfg.StrOpt('tftp_root',
default='/tftpboot',
help='Baremetal compute node\'s tftp root path'),
]
@@ -66,8 +66,12 @@ opts = [
LOG = logging.getLogger(__name__)
+baremetal_group = cfg.OptGroup(name='baremetal',
+ title='Baremetal Options')
+
CONF = cfg.CONF
-CONF.register_opts(opts)
+CONF.register_group(baremetal_group)
+CONF.register_opts(opts, baremetal_group)
DEFAULT_FIREWALL_DRIVER = "%s.%s" % (
firewall.__name__,
@@ -100,7 +104,7 @@ def _update_baremetal_state(context, node, instance, state):
def get_power_manager(node, **kwargs):
- cls = importutils.import_class(CONF.power_manager)
+ cls = importutils.import_class(CONF.baremetal.power_manager)
return cls(node, **kwargs)
@@ -115,18 +119,18 @@ class BareMetalDriver(driver.ComputeDriver):
super(BareMetalDriver, self).__init__(virtapi)
self.baremetal_nodes = importutils.import_object(
- CONF.baremetal_driver)
+ CONF.baremetal.driver)
self._vif_driver = importutils.import_object(
- CONF.baremetal_vif_driver)
+ CONF.baremetal.vif_driver)
self._firewall_driver = firewall.load_driver(
default=DEFAULT_FIREWALL_DRIVER)
self._volume_driver = importutils.import_object(
- CONF.baremetal_volume_driver, virtapi)
+ CONF.baremetal.volume_driver, virtapi)
self._image_cache_manager = imagecache.ImageCacheManager()
extra_specs = {}
- extra_specs["baremetal_driver"] = CONF.baremetal_driver
- for pair in CONF.instance_type_extra_specs:
+ extra_specs["baremetal_driver"] = CONF.baremetal.driver
+ for pair in CONF.baremetal.instance_type_extra_specs:
keyval = pair.split(':', 1)
keyval[0] = keyval[0].strip()
keyval[1] = keyval[1].strip()
diff --git a/nova/virt/baremetal/volume_driver.py b/nova/virt/baremetal/volume_driver.py
index bf8e47a63..6708b33ab 100644
--- a/nova/virt/baremetal/volume_driver.py
+++ b/nova/virt/baremetal/volume_driver.py
@@ -29,18 +29,22 @@ from nova.virt import driver
from nova.virt.libvirt import utils as libvirt_utils
opts = [
- cfg.BoolOpt('baremetal_use_unsafe_iscsi',
+ cfg.BoolOpt('use_unsafe_iscsi',
default=False,
help='Do not set this out of dev/test environments. '
'If a node does not have an fixed PXE IP address, '
'volumes are exported with globally opened ACL'),
- cfg.StrOpt('baremetal_iscsi_iqn_prefix',
+ cfg.StrOpt('iscsi_iqn_prefix',
default='iqn.2010-10.org.openstack.baremetal',
help='iSCSI IQN prefix used in baremetal volume connections.'),
]
+baremetal_group = cfg.OptGroup(name='baremetal',
+ title='Baremetal Options')
+
CONF = cfg.CONF
-CONF.register_opts(opts)
+CONF.register_group(baremetal_group)
+CONF.register_opts(opts, baremetal_group)
CONF.import_opt('libvirt_volume_drivers', 'nova.virt.libvirt.driver')
@@ -172,7 +176,7 @@ def _find_tid(iqn):
def _get_iqn(instance_name, mountpoint):
mp = mountpoint.replace('/', '-').strip('-')
- iqn = '%s:%s-%s' % (CONF.baremetal_iscsi_iqn_prefix,
+ iqn = '%s:%s-%s' % (CONF.baremetal.iscsi_iqn_prefix,
instance_name,
mp)
return iqn
@@ -230,7 +234,7 @@ class LibvirtVolumeDriver(VolumeDriver):
ctx = nova_context.get_admin_context()
pxe_ip = bmdb.bm_pxe_ip_get_by_bm_node_id(ctx, node['id'])
if not pxe_ip:
- if not CONF.baremetal_use_unsafe_iscsi:
+ if not CONF.baremetal.use_unsafe_iscsi:
raise exception.NovaException(_(
'No fixed PXE IP is associated to %s') % instance_name)
@@ -250,7 +254,7 @@ class LibvirtVolumeDriver(VolumeDriver):
# instance's initiator ip, it allows any initiators
# to connect to the volume. This means other bare-metal
# instances that are not attached the volume can connect
- # to the volume. Do not set CONF.baremetal_use_unsafe_iscsi
+ # to the volume. Do not set CONF.baremetal.use_unsafe_iscsi
# out of dev/test environments.
# TODO(NTTdocomo): support CHAP
_allow_iscsi_tgtadm(tid, 'ALL')