Validates baymodel volume_driver requests
Instead of allowing any volume_driver value to be accepted by the baymodel API. When creating baymodel, the patch can limit the volume_driver value for the different coe. Kubernetes <=> volume_driver = "cinder" Swarm <=> volume_driver = "rexray" Mesos <=> volume_driver = "rexray" Co-Authored By: Kai Qiang Wu(Kennan)<wkqwu@cn.ibm.com> Co-Authored By: Ton Ngo<ton@us.ibm.com> Partially-Implements: blueprint magnum-integrate-with-cinder Depends-On: I52c97e2b04ac636ddac611e3677c4ea3972220eb Change-Id: I25f1cd005a39950c47f31a8b925f664909b79ee3
This commit is contained in:
parent
a28251726d
commit
023d6aa930
|
@ -176,3 +176,11 @@ class BayModelTest(base.BaseMagnumTest):
|
|||
self.assertRaises(
|
||||
exceptions.BadRequest,
|
||||
self.baymodel_client.post_baymodel, gen_model)
|
||||
|
||||
@testtools.testcase.attr('negative')
|
||||
def test_create_baymodel_invalid_volume_driver(self):
|
||||
gen_model = datagen.baymodel_data_with_valid_keypair_and_image_id()
|
||||
gen_model.volume_driver = 'invalid_volume_driver'
|
||||
self.assertRaises(
|
||||
exceptions.BadRequest,
|
||||
self.baymodel_client.post_baymodel, gen_model)
|
||||
|
|
|
@ -38,6 +38,16 @@ def gen_coe_dep_network_driver(coe):
|
|||
return driver_types[random.randrange(0, len(driver_types))]
|
||||
|
||||
|
||||
def gen_coe_dep_volume_driver(coe):
|
||||
allowed_driver_types = {
|
||||
'kubernetes': ['cinder', None],
|
||||
'swarm': ['rexray', None],
|
||||
'mesos': ['rexray', None],
|
||||
}
|
||||
driver_types = allowed_driver_types[coe]
|
||||
return driver_types[random.randrange(0, len(driver_types))]
|
||||
|
||||
|
||||
def gen_random_port():
|
||||
return random_int(49152, 65535)
|
||||
|
||||
|
@ -91,6 +101,7 @@ def baymodel_data(**kwargs):
|
|||
"coe": "swarm",
|
||||
"tls_disabled": False,
|
||||
"network_driver": None,
|
||||
"volume_driver": None,
|
||||
"docker_volume_size": 3,
|
||||
"labels": {},
|
||||
"fixed_network": "192.168.0.0/24",
|
||||
|
@ -175,7 +186,8 @@ def valid_swarm_baymodel():
|
|||
docker_volume_size=3, cluster_distro=None,
|
||||
ssh_authorized_key=None, external_network_id="public",
|
||||
http_proxy=None, https_proxy=None, no_proxy=None,
|
||||
network_driver=None, labels={}, tls_disabled=False)
|
||||
network_driver=None, volume_driver=None, labels={},
|
||||
tls_disabled=False)
|
||||
|
||||
|
||||
def bay_data(name=data_utils.rand_name('bay'),
|
||||
|
|
Loading…
Reference in New Issue