Validation for cpc_object_id config option
This patch uses the newly created DPMObjectId config object to introduce validation for the cpc_object_id config option. The config option still accepts both, upper and lower case, but takes care of converting that value to lower case when used in the code. The HMC web services only supports lower case object-ids. Change-Id: I63bd5cdc699bde64151a7bf047e1349a7f509f3f Closes-Bug: #1663369
This commit is contained in:
parent
b66d960537
commit
5e74551f60
@ -14,6 +14,7 @@
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
from os_dpm.config.cfg import DPMObjectIdOpt
|
||||
|
||||
DPM_GROUP = cfg.OptGroup('dpm',
|
||||
title='DPM options',
|
||||
@ -33,7 +34,7 @@ COMMON_DPM_OPTS = [
|
||||
User name for connection to the HMC"""),
|
||||
cfg.StrOpt('hmc_password', secret=True, help="""
|
||||
Password for connection to the HMC"""),
|
||||
cfg.StrOpt('cpc_object_id', help="""
|
||||
DPMObjectIdOpt('cpc_object_id', help="""
|
||||
DPM Object-id of the target CPC"""),
|
||||
]
|
||||
|
||||
|
@ -18,19 +18,41 @@ from oslo_config.fixture import Config
|
||||
from oslotest import base
|
||||
|
||||
from os_dpm.config import config
|
||||
from os_dpm.tests.unit.config.test_types import VALID_DPM_OBJECT_ID
|
||||
from os_dpm.tests.unit.config.test_types import VALID_DPM_OBJECT_ID_UC
|
||||
|
||||
|
||||
class TestConfig(base.BaseTestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestConfig, self).setUp()
|
||||
self.conf = Config()
|
||||
|
||||
def test_register_opts(self):
|
||||
conf = Config()
|
||||
conf.load_raw_values(group="dpm", hmc='host')
|
||||
conf.load_raw_values(group="dpm", hmc_username='username')
|
||||
conf.load_raw_values(group="dpm", hmc_password='password')
|
||||
conf.load_raw_values(group="dpm", cpc_object_id='uuid')
|
||||
self.conf.load_raw_values(group="dpm", hmc='host')
|
||||
self.conf.load_raw_values(group="dpm", hmc_username='username')
|
||||
self.conf.load_raw_values(group="dpm", hmc_password='password')
|
||||
self.conf.load_raw_values(group="dpm",
|
||||
cpc_object_id=VALID_DPM_OBJECT_ID)
|
||||
|
||||
config.register_opts()
|
||||
self.assertEqual('host', cfg.CONF.dpm.hmc)
|
||||
self.assertEqual('username', cfg.CONF.dpm.hmc_username)
|
||||
self.assertEqual('password', cfg.CONF.dpm.hmc_password)
|
||||
self.assertEqual('uuid', cfg.CONF.dpm.cpc_object_id)
|
||||
self.assertEqual(VALID_DPM_OBJECT_ID, cfg.CONF.dpm.cpc_object_id)
|
||||
|
||||
def test_register_opts_cpc_object_id_upper_case(self):
|
||||
self.conf.load_raw_values(group="dpm",
|
||||
cpc_object_id=VALID_DPM_OBJECT_ID_UC)
|
||||
config.register_opts()
|
||||
self.assertEqual(VALID_DPM_OBJECT_ID, cfg.CONF.dpm.cpc_object_id)
|
||||
|
||||
def test_invalid_opt(self):
|
||||
self.conf.load_raw_values(group="dpm", cpc_object_id="foo")
|
||||
config.register_opts()
|
||||
# self.assertRaises can only be used with method calls
|
||||
try:
|
||||
cfg.CONF.dpm.cpc_object_id
|
||||
self.fail()
|
||||
except ValueError:
|
||||
pass
|
||||
|
Loading…
x
Reference in New Issue
Block a user