Add support for modules in cluster create/grow
When the module support was added, passing the modules to the actual create was not done on the server side. This has been added. Partial Bug: #1578917 Change-Id: I80c8e230f8bff550851f5cad146aa5976f45e5c4
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Support was added for applying modules to
|
||||||
|
cluster instances through cluster-create
|
||||||
|
and cluster-grow. Bug 1578917
|
||||||
|
|
@@ -278,6 +278,8 @@ class Cluster(object):
|
|||||||
instance['name'] = node['name']
|
instance['name'] = node['name']
|
||||||
if 'volume' in node:
|
if 'volume' in node:
|
||||||
instance['volume_size'] = int(node['volume']['size'])
|
instance['volume_size'] = int(node['volume']['size'])
|
||||||
|
if 'modules' in node:
|
||||||
|
instance['modules'] = node['modules']
|
||||||
instances.append(instance)
|
instances.append(instance)
|
||||||
return self.grow(instances)
|
return self.grow(instances)
|
||||||
elif action == 'shrink':
|
elif action == 'shrink':
|
||||||
|
@@ -158,6 +158,7 @@ class ClusterController(wsgi.Controller):
|
|||||||
for node in nodes:
|
for node in nodes:
|
||||||
flavor_id = utils.get_id_from_href(node['flavorRef'])
|
flavor_id = utils.get_id_from_href(node['flavorRef'])
|
||||||
volume_size = volume_type = nics = availability_zone = None
|
volume_size = volume_type = nics = availability_zone = None
|
||||||
|
modules = None
|
||||||
if 'volume' in node:
|
if 'volume' in node:
|
||||||
volume_size = int(node['volume']['size'])
|
volume_size = int(node['volume']['size'])
|
||||||
volume_type = node['volume'].get('volume_type')
|
volume_type = node['volume'].get('volume_type')
|
||||||
@@ -165,12 +166,15 @@ class ClusterController(wsgi.Controller):
|
|||||||
nics = node['nics']
|
nics = node['nics']
|
||||||
if 'availability_zone' in node:
|
if 'availability_zone' in node:
|
||||||
availability_zone = node['availability_zone']
|
availability_zone = node['availability_zone']
|
||||||
|
if 'modules' in node:
|
||||||
|
modules = node['modules']
|
||||||
|
|
||||||
instances.append({"flavor_id": flavor_id,
|
instances.append({"flavor_id": flavor_id,
|
||||||
"volume_size": volume_size,
|
"volume_size": volume_size,
|
||||||
"volume_type": volume_type,
|
"volume_type": volume_type,
|
||||||
"nics": nics,
|
"nics": nics,
|
||||||
"availability_zone": availability_zone})
|
"availability_zone": availability_zone,
|
||||||
|
"modules": modules})
|
||||||
|
|
||||||
locality = body['cluster'].get('locality')
|
locality = body['cluster'].get('locality')
|
||||||
if locality:
|
if locality:
|
||||||
|
@@ -288,6 +288,7 @@ cluster = {
|
|||||||
"volume": volume,
|
"volume": volume,
|
||||||
"nics": nics,
|
"nics": nics,
|
||||||
"availability_zone": non_empty_string,
|
"availability_zone": non_empty_string,
|
||||||
|
"modules": module_list,
|
||||||
"related_to": non_empty_string,
|
"related_to": non_empty_string,
|
||||||
"type": non_empty_string
|
"type": non_empty_string
|
||||||
}
|
}
|
||||||
|
@@ -155,7 +155,8 @@ class CassandraCluster(models.Cluster):
|
|||||||
availability_zone=instance_az,
|
availability_zone=instance_az,
|
||||||
configuration_id=None,
|
configuration_id=None,
|
||||||
cluster_config=member_config,
|
cluster_config=member_config,
|
||||||
locality=locality)
|
locality=locality,
|
||||||
|
modules=instance.get('modules'))
|
||||||
|
|
||||||
new_instances.append(new_instance)
|
new_instances.append(new_instance)
|
||||||
|
|
||||||
|
@@ -139,7 +139,8 @@ class GaleraCommonCluster(cluster_models.Cluster):
|
|||||||
nics=instance.get('nics', None),
|
nics=instance.get('nics', None),
|
||||||
configuration_id=None,
|
configuration_id=None,
|
||||||
cluster_config=member_config,
|
cluster_config=member_config,
|
||||||
locality=locality
|
locality=locality,
|
||||||
|
modules=instance.get('modules')
|
||||||
)
|
)
|
||||||
for instance in instances]
|
for instance in instances]
|
||||||
|
|
||||||
|
@@ -146,7 +146,8 @@ class MongoDbCluster(models.Cluster):
|
|||||||
nics=nics[i],
|
nics=nics[i],
|
||||||
configuration_id=None,
|
configuration_id=None,
|
||||||
cluster_config=member_config,
|
cluster_config=member_config,
|
||||||
locality=locality)
|
locality=locality,
|
||||||
|
modules=instances[i].get('modules'))
|
||||||
|
|
||||||
for i in range(1, num_configsvr + 1):
|
for i in range(1, num_configsvr + 1):
|
||||||
instance_name = "%s-%s-%s" % (name, "configsvr", str(i))
|
instance_name = "%s-%s-%s" % (name, "configsvr", str(i))
|
||||||
|
@@ -105,7 +105,8 @@ class RedisCluster(models.Cluster):
|
|||||||
cluster_config={
|
cluster_config={
|
||||||
"id": db_info.id,
|
"id": db_info.id,
|
||||||
"instance_type": "member"},
|
"instance_type": "member"},
|
||||||
locality=locality
|
locality=locality,
|
||||||
|
modules=instance.get('modules')
|
||||||
)
|
)
|
||||||
for instance in instances]
|
for instance in instances]
|
||||||
|
|
||||||
|
@@ -133,17 +133,13 @@ class VerticaCluster(models.Cluster):
|
|||||||
instance_name = "%s-member-%s" % (db_info.name,
|
instance_name = "%s-member-%s" % (db_info.name,
|
||||||
str(i + num_existing + 1))
|
str(i + num_existing + 1))
|
||||||
minstances.append(
|
minstances.append(
|
||||||
inst_models.Instance.create(context, instance_name,
|
inst_models.Instance.create(
|
||||||
flavor_id,
|
context, instance_name, flavor_id,
|
||||||
datastore_version.image_id,
|
datastore_version.image_id, [], [], datastore,
|
||||||
[], [], datastore,
|
datastore_version, volume_size, None,
|
||||||
datastore_version,
|
nics=nics[i], availability_zone=azs[i],
|
||||||
volume_size, None,
|
configuration_id=None, cluster_config=member_config,
|
||||||
nics=nics[i],
|
locality=locality, modules=instances[i].get('modules'))
|
||||||
availability_zone=azs[i],
|
|
||||||
configuration_id=None,
|
|
||||||
cluster_config=member_config,
|
|
||||||
locality=locality)
|
|
||||||
)
|
)
|
||||||
return minstances
|
return minstances
|
||||||
|
|
||||||
|
@@ -176,6 +176,7 @@ class TestClusterController(TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
'flavor_id': '1234',
|
'flavor_id': '1234',
|
||||||
'availability_zone': 'az',
|
'availability_zone': 'az',
|
||||||
|
'modules': None,
|
||||||
'nics': [
|
'nics': [
|
||||||
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
||||||
]
|
]
|
||||||
|
@@ -141,6 +141,7 @@ class TestClusterController(trove_testtools.TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
'flavor_id': '1234',
|
'flavor_id': '1234',
|
||||||
'availability_zone': 'az',
|
'availability_zone': 'az',
|
||||||
|
'modules': None,
|
||||||
'nics': [
|
'nics': [
|
||||||
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
||||||
]
|
]
|
||||||
|
@@ -156,6 +156,7 @@ class TestClusterController(trove_testtools.TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
"flavor_id": "1234",
|
"flavor_id": "1234",
|
||||||
"availability_zone": "az",
|
"availability_zone": "az",
|
||||||
|
'modules': None,
|
||||||
"nics": [
|
"nics": [
|
||||||
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
||||||
]
|
]
|
||||||
@@ -165,6 +166,7 @@ class TestClusterController(trove_testtools.TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
"flavor_id": "1234",
|
"flavor_id": "1234",
|
||||||
"availability_zone": "az",
|
"availability_zone": "az",
|
||||||
|
'modules': None,
|
||||||
"nics": [
|
"nics": [
|
||||||
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
||||||
]
|
]
|
||||||
@@ -174,6 +176,7 @@ class TestClusterController(trove_testtools.TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
"flavor_id": "1234",
|
"flavor_id": "1234",
|
||||||
"availability_zone": "az",
|
"availability_zone": "az",
|
||||||
|
'modules': None,
|
||||||
"nics": [
|
"nics": [
|
||||||
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
{"net-id": "e89aa5fd-6b0a-436d-a75c-1545d34d5331"}
|
||||||
]
|
]
|
||||||
|
@@ -141,6 +141,7 @@ class TestClusterController(trove_testtools.TestCase):
|
|||||||
'volume_type': None,
|
'volume_type': None,
|
||||||
'flavor_id': '1234',
|
'flavor_id': '1234',
|
||||||
'availability_zone': 'az',
|
'availability_zone': 'az',
|
||||||
|
'modules': None,
|
||||||
'nics': [
|
'nics': [
|
||||||
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
{'net-id': 'e89aa5fd-6b0a-436d-a75c-1545d34d5331'}
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user