Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/cosmosdb-preview/azext_cosmosdb_preview/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,15 @@ def load_arguments(self, _):
'managed-cassandra cluster update',
'managed-cassandra cluster show',
'managed-cassandra cluster delete',
'managed-cassandra cluster deallocate',
'managed-cassandra cluster backup list',
'managed-cassandra cluster backup show']:
with self.argument_context(scope) as c:
c.argument('cluster_name', options_list=['--cluster-name', '-c'], help="Cluster Name", required=True)

# Managed Cassandra Cluster
with self.argument_context('managed-cassandra cluster deallocate') as c:
c.argument('force', options_list=['--force', '-f'], help="Force to deallocate the cluster", required=False)

# Managed Cassandra Cluster
for scope in [
Expand All @@ -128,6 +133,8 @@ def load_arguments(self, _):
c.argument('gossip_certificates', help="A list of certificates that should be accepted by on-premise data centers.")
c.argument('external_seed_nodes', nargs='+', validator=validate_seednodes, help="A list of ip addresses of the seed nodes of on-premise data centers.")
c.argument('identity_type', options_list=['--identity-type'], arg_type=get_enum_type(['None', 'SystemAssigned']), help="Type of identity used for Customer Managed Disk Key.")
c.argument("cluster_type", options_list=['--cluster-type'], help="Type of the cluster, can be Production or NonProduction. If set to Production, operations on cluster might have restrictions.", arg_type=get_enum_type(['Production', 'NonProduction']))
c.argument('extensions', nargs='*', help="A set of extensions that will be effective on the cluster. It will replace the entire set of extensions with new set. Use \"\" to remove all. Now Available: cassandra-lucene-index.")

# Managed Cassandra Cluster
with self.argument_context('managed-cassandra cluster create') as c:
Expand Down
1 change: 1 addition & 0 deletions src/cosmosdb-preview/azext_cosmosdb_preview/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def load_command_table(self, _):
g.custom_command('list', 'cli_cosmosdb_managed_cassandra_cluster_list')
g.show_command('show', 'get')
g.command('delete', 'begin_delete', confirmation=True, supports_no_wait=True)
g.custom_command('deallocate', 'cli_cosmosdb_managed_cassandra_cluster_deallocate', supports_no_wait=True, confirmation=True)

with self.command_group('managed-cassandra datacenter', cosmosdb_managed_cassandra_datacenter_sdk, client_factory=cf_cassandra_data_center) as g:
g.custom_command('create', 'cli_cosmosdb_managed_cassandra_datacenter_create', supports_no_wait=True)
Expand Down
35 changes: 31 additions & 4 deletions src/cosmosdb-preview/azext_cosmosdb_preview/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,9 @@ def cli_cosmosdb_managed_cassandra_cluster_create(client,
cassandra_version=None,
authentication_method=None,
hours_between_backups=None,
repair_enabled=None):
repair_enabled=None,
cluster_type='Production',
extensions=None):

"""Creates an Azure Managed Cassandra Cluster"""

Expand All @@ -320,7 +322,9 @@ def cli_cosmosdb_managed_cassandra_cluster_create(client,
cassandra_version=cassandra_version,
authentication_method=authentication_method,
hours_between_backups=hours_between_backups,
repair_enabled=repair_enabled)
repair_enabled=repair_enabled,
cluster_type=cluster_type,
extensions=extensions)

managed_service_identity_parameter = ManagedCassandraManagedServiceIdentity(
type=identity_type
Expand All @@ -346,7 +350,9 @@ def cli_cosmosdb_managed_cassandra_cluster_update(client,
cassandra_version=None,
authentication_method=None,
hours_between_backups=None,
repair_enabled=None):
repair_enabled=None,
cluster_type=None,
extensions=None):

"""Updates an Azure Managed Cassandra Cluster"""

Expand Down Expand Up @@ -381,6 +387,16 @@ def cli_cosmosdb_managed_cassandra_cluster_update(client,
if identity_type is not None:
identity = ManagedCassandraManagedServiceIdentity(type=identity_type)

if cluster_type is None:
cluster_type = cluster_resource.properties.cluster_type

if extensions is None:
extensions = cluster_resource.properties.extensions

# to remove extension
if len(extensions) == 1 and extensions[0] == '':
extensions = None

cluster_properties = ClusterResourceProperties(
provisioning_state=cluster_resource.properties.provisioning_state,
restore_from_backup_id=cluster_resource.properties.restore_from_backup_id,
Expand All @@ -395,7 +411,9 @@ def cli_cosmosdb_managed_cassandra_cluster_update(client,
external_gossip_certificates=external_gossip_certificates,
gossip_certificates=cluster_resource.properties.gossip_certificates,
external_seed_nodes=cluster_resource.properties.external_seed_nodes,
seed_nodes=cluster_resource.properties.seed_nodes
seed_nodes=cluster_resource.properties.seed_nodes,
cluster_type=cluster_type,
extensions=extensions
)

cluster_resource_create_update_parameters = ClusterResource(
Expand Down Expand Up @@ -425,6 +443,15 @@ def cli_cosmosdb_managed_cassandra_cluster_list_backup(client,
return client.list_backups(resource_group_name, cluster_name)


def cli_cosmosdb_managed_cassandra_cluster_deallocate(client,
resource_group_name,
cluster_name,
force=False):

"""Deallocate Azure Managed Cassandra Cluster"""
return client.begin_deallocate(resource_group_name, cluster_name, force)


def cli_cosmosdb_managed_cassandra_cluster_show_backup(client,
resource_group_name,
cluster_name,
Expand Down