summaryrefslogtreecommitdiff
path: root/trove/common/strategies/cluster/experimental/galera_common/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'trove/common/strategies/cluster/experimental/galera_common/api.py')
-rw-r--r--trove/common/strategies/cluster/experimental/galera_common/api.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/trove/common/strategies/cluster/experimental/galera_common/api.py b/trove/common/strategies/cluster/experimental/galera_common/api.py
index 9b47291f..5083df73 100644
--- a/trove/common/strategies/cluster/experimental/galera_common/api.py
+++ b/trove/common/strategies/cluster/experimental/galera_common/api.py
@@ -97,7 +97,8 @@ class GaleraCommonCluster(cluster_models.Cluster):
@staticmethod
def _create_instances(context, db_info, datastore, datastore_version,
- instances, extended_properties, locality):
+ instances, extended_properties, locality,
+ configuration_id):
member_config = {"id": db_info.id,
"instance_type": "member"}
name_index = 1
@@ -118,7 +119,7 @@ class GaleraCommonCluster(cluster_models.Cluster):
availability_zone=instance.get(
'availability_zone', None),
nics=instance.get('nics', None),
- configuration_id=None,
+ configuration_id=configuration_id,
cluster_config=member_config,
modules=instance.get('modules'),
locality=locality,
@@ -128,7 +129,7 @@ class GaleraCommonCluster(cluster_models.Cluster):
@classmethod
def create(cls, context, name, datastore, datastore_version,
- instances, extended_properties, locality):
+ instances, extended_properties, locality, configuration):
LOG.debug("Initiating Galera cluster creation.")
cls._validate_cluster_instances(context, instances, datastore,
datastore_version)
@@ -136,10 +137,12 @@ class GaleraCommonCluster(cluster_models.Cluster):
db_info = cluster_models.DBCluster.create(
name=name, tenant_id=context.tenant,
datastore_version_id=datastore_version.id,
- task_status=ClusterTasks.BUILDING_INITIAL)
+ task_status=ClusterTasks.BUILDING_INITIAL,
+ configuration_id=configuration)
cls._create_instances(context, db_info, datastore, datastore_version,
- instances, extended_properties, locality)
+ instances, extended_properties, locality,
+ configuration)
# Calling taskmanager to further proceed for cluster-configuration
task_api.load(context, datastore_version.manager).create_cluster(
@@ -160,9 +163,10 @@ class GaleraCommonCluster(cluster_models.Cluster):
db_info.update(task_status=ClusterTasks.GROWING_CLUSTER)
try:
locality = srv_grp.ServerGroup.convert_to_hint(self.server_group)
+ configuration_id = self.db_info.configuration_id
new_instances = self._create_instances(
context, db_info, datastore, datastore_version, instances,
- None, locality)
+ None, locality, configuration_id)
task_api.load(context, datastore_version.manager).grow_cluster(
db_info.id, [instance.id for instance in new_instances])
@@ -203,6 +207,12 @@ class GaleraCommonCluster(cluster_models.Cluster):
def upgrade(self, datastore_version):
self.rolling_upgrade(datastore_version)
+ def configuration_attach(self, configuration_id):
+ self.rolling_configuration_update(configuration_id)
+
+ def configuration_detach(self):
+ self.rolling_configuration_remove()
+
class GaleraCommonClusterView(ClusterView):