Move baremetal options to [BAREMETAL] OptGroup
Move all the baremetal options into a new [BAREMETAL] OptGroup, except for 'baremetal_db_backend', which breaks LazyPluggable if moved. blueprint general-bare-metal-provisioning-framework Change-Id: I06f53dcf10b9bbd3fd7cc0725cc6076af3d74d19
This commit is contained in:
parent
32eb83be79
commit
9ac65bde3a
@ -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)
|
||||
|
@ -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')
|
||||
|
@ -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)
|
||||
|
@ -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',
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user