Skip to content

Commit

Permalink
Merge pull request #1 from carjackson-msft/users/minhokang/restore_wi…
Browse files Browse the repository at this point in the history
…th_ttl_disabled

Introduce disable_ttl parameter
  • Loading branch information
carjackson-msft committed Feb 27, 2024
2 parents a1140ef + ebfcbed commit 7d4dc54
Show file tree
Hide file tree
Showing 7 changed files with 3,663 additions and 4,507 deletions.
1 change: 1 addition & 0 deletions src/cosmosdb-preview/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Release History
===============
0.27.0
* Add support for Per-Region Per-Partition Autoscale. '--enable-per-region-per-partition-autoscale' parameter can be used during account create/update.
* Add support for Restore with Time-To-Live Disabled. '--disable-ttl' parameter can be used during restore.
* Add support for online mode in container copy job.

++++++
Expand Down
1 change: 1 addition & 0 deletions src/cosmosdb-preview/azext_cosmosdb_preview/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@ def load_arguments(self, _):
c.argument('default_identity', help="The primary identity to access key vault in CMK related features. e.g. 'FirstPartyIdentity', 'SystemAssignedIdentity' and more.")
c.argument('enable_public_network', options_list=['--enable-public-network', '-e'], arg_type=get_three_state_flag(), help="Enable or disable public network access to server.", is_preview=True)
c.argument('source_backup_location', help="This is the location of the source account where backups are located. Provide this value if the source and target are in different locations.", is_preview=True)
c.argument('disable_ttl', options_list=['--disable-ttl', '-dt'], arg_type=get_three_state_flag(), help="Enable or disable restoring with ttl disabled.", is_preview=True)

# Restorable Database Accounts
with self.argument_context('cosmosdb restorable-database-account show') as c:
Expand Down
55 changes: 44 additions & 11 deletions src/cosmosdb-preview/azext_cosmosdb_preview/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -1017,7 +1017,8 @@ def cli_cosmosdb_restore(cmd,
gremlin_databases_to_restore=None,
tables_to_restore=None,
enable_public_network=None,
source_backup_location=None):
source_backup_location=None,
disable_ttl=None):
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
restorable_database_accounts_list = list(restorable_database_accounts)
Expand Down Expand Up @@ -1124,7 +1125,8 @@ def cli_cosmosdb_restore(cmd,
tables_to_restore=tables_to_restore,
arm_location=target_restorable_account.location,
enable_public_network=enable_public_network,
source_backup_location=source_backup_location)
source_backup_location=source_backup_location,
disable_ttl=disable_ttl)


# pylint: disable=too-many-statements
Expand Down Expand Up @@ -1172,8 +1174,8 @@ def _create_database_account(client,
source_backup_location=None,
enable_priority_based_execution=None,
default_priority_level=None,
enable_per_region_per_partition_autoscale=None):

enable_per_region_per_partition_autoscale=None,
disable_ttl=None):
consistency_policy = None
if default_consistency_level is not None:
consistency_policy = ConsistencyPolicy(default_consistency_level=default_consistency_level,
Expand Down Expand Up @@ -1282,6 +1284,9 @@ def _create_database_account(client,
if source_backup_location is not None:
restore_parameters.source_backup_location = source_backup_location

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

params = DatabaseAccountCreateUpdateParameters(
location=arm_location,
locations=locations,
Expand Down Expand Up @@ -1799,7 +1804,8 @@ def cli_cosmosdb_sql_database_restore(cmd,
resource_group_name,
account_name,
database_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
restorable_database_accounts_list = list(restorable_database_accounts)
Expand All @@ -1826,6 +1832,9 @@ def cli_cosmosdb_sql_database_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

sql_database_resource = SqlDatabaseCreateUpdateParameters(
resource=SqlDatabaseResource(
id=database_name,
Expand All @@ -1845,7 +1854,8 @@ def cli_cosmosdb_sql_container_restore(cmd,
account_name,
database_name,
container_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
# """Restores the deleted Azure Cosmos DB SQL container """
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
Expand Down Expand Up @@ -1873,6 +1883,9 @@ def cli_cosmosdb_sql_container_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

sql_container_resource = SqlContainerResource(
id=container_name,
create_mode=create_mode,
Expand All @@ -1894,7 +1907,8 @@ def cli_cosmosdb_mongodb_database_restore(cmd,
resource_group_name,
account_name,
database_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
# """Restores the deleted Azure Cosmos DB MongoDB database"""
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
Expand Down Expand Up @@ -1922,6 +1936,9 @@ def cli_cosmosdb_mongodb_database_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

mongodb_database_resource = MongoDBDatabaseCreateUpdateParameters(
resource=MongoDBDatabaseResource(id=database_name,
create_mode=create_mode,
Expand All @@ -1940,7 +1957,8 @@ def cli_cosmosdb_mongodb_collection_restore(cmd,
account_name,
database_name,
collection_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
# """Restores the Azure Cosmos DB MongoDB collection """
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
Expand Down Expand Up @@ -1968,6 +1986,9 @@ def cli_cosmosdb_mongodb_collection_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

mongodb_collection_resource = MongoDBCollectionResource(id=collection_name,
create_mode=create_mode,
restore_parameters=restore_parameters
Expand Down Expand Up @@ -2161,7 +2182,8 @@ def cli_cosmosdb_gremlin_database_restore(cmd,
resource_group_name,
account_name,
database_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
restorable_database_accounts_list = list(restorable_database_accounts)
Expand All @@ -2188,6 +2210,9 @@ def cli_cosmosdb_gremlin_database_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

gremlin_database_resource = GremlinDatabaseCreateUpdateParameters(
resource=SqlDatabaseResource(
id=database_name,
Expand All @@ -2207,7 +2232,8 @@ def cli_cosmosdb_gremlin_graph_restore(cmd,
account_name,
database_name,
graph_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
# """Restores the deleted Azure Cosmos DB Gremlin graph """
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
Expand Down Expand Up @@ -2235,6 +2261,9 @@ def cli_cosmosdb_gremlin_graph_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

gremlin_graph_resource = GremlinGraphResource(
id=graph_name,
create_mode=create_mode,
Expand All @@ -2256,7 +2285,8 @@ def cli_cosmosdb_table_restore(cmd,
resource_group_name,
account_name,
table_name,
restore_timestamp=None):
restore_timestamp=None,
disable_ttl=None):
# """Restores the deleted Azure Cosmos DB Table"""
restorable_database_accounts_client = cf_restorable_database_accounts(cmd.cli_ctx, [])
restorable_database_accounts = restorable_database_accounts_client.list()
Expand Down Expand Up @@ -2284,6 +2314,9 @@ def cli_cosmosdb_table_restore(cmd,
restore_timestamp_in_utc=restore_timestamp
)

if disable_ttl is not None:
restore_parameters.restore_with_ttl_disabled = disable_ttl

table_resource = TableCreateUpdateParameters(
resource=TableResource(id=table_name,
create_mode=create_mode,
Expand Down
Loading

0 comments on commit 7d4dc54

Please sign in to comment.