diff options
Diffstat (limited to 'trove/common/strategies/cluster/experimental/cassandra/api.py')
-rw-r--r-- | trove/common/strategies/cluster/experimental/cassandra/api.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/trove/common/strategies/cluster/experimental/cassandra/api.py b/trove/common/strategies/cluster/experimental/cassandra/api.py index ab680b34..084b716b 100644 --- a/trove/common/strategies/cluster/experimental/cassandra/api.py +++ b/trove/common/strategies/cluster/experimental/cassandra/api.py @@ -82,19 +82,20 @@ class CassandraCluster(models.Cluster): @classmethod def create(cls, context, name, datastore, datastore_version, - instances, extended_properties, locality): + instances, extended_properties, locality, configuration): LOG.debug("Processing a request for creating a new cluster.") # Updating Cluster Task. db_info = 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_cluster_instances( context, db_info.id, db_info.name, datastore, datastore_version, instances, extended_properties, - locality) + locality, configuration) # Calling taskmanager to further proceed for cluster-configuration. task_api.load(context, datastore_version.manager).create_cluster( @@ -106,7 +107,7 @@ class CassandraCluster(models.Cluster): def _create_cluster_instances( cls, context, cluster_id, cluster_name, datastore, datastore_version, instances, extended_properties, - locality): + locality, configuration_id): LOG.debug("Processing a request for new cluster instances.") cassandra_conf = CONF.get(datastore_version.manager) @@ -153,7 +154,7 @@ class CassandraCluster(models.Cluster): instance['volume_size'], None, nics=instance.get('nics', None), availability_zone=instance_az, - configuration_id=None, + configuration_id=configuration_id, cluster_config=member_config, modules=instance.get('modules'), locality=locality, @@ -180,9 +181,11 @@ class CassandraCluster(models.Cluster): db_info.update(task_status=ClusterTasks.GROWING_CLUSTER) locality = srv_grp.ServerGroup.convert_to_hint(self.server_group) + configuration_id = self.db_info.configuration_id + new_instances = self._create_cluster_instances( context, db_info.id, db_info.name, datastore, datastore_version, - instances, None, locality) + instances, None, locality, configuration_id) task_api.load(context, datastore_version.manager).grow_cluster( db_info.id, [instance.id for instance in new_instances]) @@ -212,6 +215,12 @@ class CassandraCluster(models.Cluster): def upgrade(self, datastore_version): self.rolling_upgrade(datastore_version) + def configuration_attach(self, configuration_id): + self.rolling_configuration_update(configuration_id, apply_on_all=False) + + def configuration_detach(self): + self.rolling_configuration_remove(apply_on_all=False) + class CassandraClusterView(ClusterView): |