@@ -44,6 +44,7 @@ function Test-RestoreFromNewAccountCmdlets {
4444 Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
4545 Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
4646 Assert-NotNull $sourceRestorableAccount.CreationTime
47+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
4748
4849 $restorableSqlDatabases = Get-AzCosmosDBSqlRestorableDatabase - Location $sourceCosmosDBAccount.Location - DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
4950 Assert-NotNull $restorableSqlDatabases
@@ -139,6 +140,7 @@ function Test-MongoRestoreAccountCmdlets {
139140 Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
140141 Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
141142 Assert-NotNull $sourceRestorableAccount.CreationTime
143+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
142144
143145 $NewDatabase = New-AzCosmosDBMongoDBDatabase - AccountName $sourceCosmosDBAccountName - ResourceGroupName $rgName - Name $databaseName - Throughput $ThroughputValue
144146 $NewCollection = New-AzCosmosDBMongoDBCollection - AccountName $sourceCosmosDBAccountName - ResourceGroupName $rgName - DatabaseName $databaseName - Throughput $CollectionThroughputValue - Name $CollectionName - Shard $ShardKey
@@ -218,6 +220,7 @@ function Test-RestoreFailuresAccountCmdlets {
218220 Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
219221 Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
220222 Assert-NotNull $sourceRestorableAccount.CreationTime
223+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
221224
222225 $restorableSqlDatabases = Get-AzCosmosDBSqlRestorableDatabase - Location $sourceCosmosDBAccount.Location - DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
223226 Assert-NotNull $restorableSqlDatabases
@@ -246,9 +249,9 @@ function Test-RestoreFailuresAccountCmdlets {
246249}
247250
248251function Test-SqlContainerBackupInformationCmdLets {
249- $rgName = " CosmosDBResourceGroup14 "
252+ $rgName = " CosmosDBResourceGroup52 "
250253 $location = " Central US"
251- $cosmosDBAccountName = " cosmosdb-1214 "
254+ $cosmosDBAccountName = " cosmosdb-1252 "
252255 $databaseName = " TestDB1" ;
253256 $collectionName = " TestCollectionInDB1" ;
254257 $apiKind = " Sql"
@@ -326,10 +329,10 @@ function Test-MongoDBCollectionBackupInformationCmdLets {
326329 Assert-NotNull $backupInfo.LatestRestorableTimestamp
327330}
328331
329- function Test-UpdateCosmosDBAccountBackupPolicyCmdLet {
330- $rgName = " CosmosDBResourceGroup20 "
332+ function Test-UpdateCosmosDBAccountBackupPolicyToContinuous30DaysCmdLets {
333+ $rgName = " PSCosmosDBResourceGroup20 "
331334 $location = " Central US"
332- $cosmosDBAccountName = " cosmosdb-1220"
335+ $cosmosDBAccountName = " ps- cosmosdb-1220"
333336 $apiKind = " Sql"
334337 $consistencyLevel = " Session"
335338 $locations = @ ()
@@ -345,11 +348,122 @@ function Test-UpdateCosmosDBAccountBackupPolicyCmdLet {
345348 }
346349
347350 $updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName - BackupPolicyType Continuous
348- Start-Sleep - s 50
351+ Start-Sleep - s ( 60 )
349352
350353 $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
351354 Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState
352355 Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status
353356 Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.TargetType
354357 Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.StartTime
358+
359+ Start-Sleep - s (60 * 5 )
360+
361+ while (
362+ $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status -ne " Completed" -and
363+ $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status -ne " Failed" -and
364+ $updatedCosmosDBAccount.BackupPolicy.BackupType -ne " Continuous" )
365+ {
366+ Start-Sleep - s 60
367+
368+ # keep polling the migration Status
369+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
370+ }
371+
372+ Assert-AreEqual " Continuous" $updatedCosmosDBAccount.BackupPolicy.BackupType
373+ Assert-AreEqual " Continuous30Days" $updatedCosmosDBAccount.BackupPolicy.Tier
374+
375+ $updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName - BackupPolicyType Continuous - ContinuousTier Continuous7Days
376+ Start-Sleep - s (60 * 2 )
377+
378+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
379+ Assert-AreEqual " Continuous" $updatedCosmosDBAccount.BackupPolicy.BackupType
380+ Assert-AreEqual " Continuous7Days" $updatedCosmosDBAccount.BackupPolicy.Tier
381+ }
382+
383+ function Test-UpdateCosmosDBAccountBackupPolicyToContinuous7DaysCmdLets {
384+ $rgName = " PSCosmosDBResourceGroup50"
385+ $location = " Central US"
386+ $cosmosDBAccountName = " ps-cosmosdb-1250"
387+ $apiKind = " Sql"
388+ $consistencyLevel = " Session"
389+ $locations = @ ()
390+ $locations += New-AzCosmosDBLocationObject - Location $location - FailoverPriority 0 - IsZoneRedundant 0
391+
392+ $resourceGroup = New-AzResourceGroup - ResourceGroupName $rgName - Location $location
393+
394+ Try {
395+ New-AzCosmosDBAccount - ResourceGroupName $rgName - LocationObject $locations - Name $cosmosDBAccountName - ApiKind $apiKind - DefaultConsistencyLevel $consistencyLevel
396+ }
397+ Catch {
398+ Assert-AreEqual $_.Exception.Message (" Resource with Name " + $cosmosDBAccountName + " already exists." )
399+ }
400+
401+ $updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName - BackupPolicyType Continuous - ContinuousTier Continuous7Days
402+ Start-Sleep - s (60 )
403+
404+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
405+ Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState
406+ Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status
407+ Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.TargetType
408+ Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.StartTime
409+
410+ Start-Sleep - s (60 * 5 )
411+
412+ while (
413+ $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status -ne " Completed" -and
414+ $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status -ne " Failed" -and
415+ $updatedCosmosDBAccount.BackupPolicy.BackupType -ne " Continuous" )
416+ {
417+ Start-Sleep - s 60
418+
419+ # keep polling the migration Status
420+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
421+ }
422+
423+ Assert-AreEqual " Continuous" $updatedCosmosDBAccount.BackupPolicy.BackupType
424+ Assert-AreEqual " Continuous7Days" $updatedCosmosDBAccount.BackupPolicy.Tier
425+
426+ # If we don't provide the continuoustier, it should not trigger the update to continuous30days
427+ $updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
428+ Start-Sleep - s (60 * 2 )
429+
430+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
431+ Assert-AreEqual " Continuous7Days" $updatedCosmosDBAccount.BackupPolicy.Tier
432+
433+ # Provide continuoustier explicitly, it should triggered the update to continuous30days
434+ $updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName - BackupPolicyType Continuous - ContinuousTier Continuous30Days
435+ Start-Sleep - s (60 * 2 )
436+
437+ $updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
438+ Assert-AreEqual " Continuous" $updatedCosmosDBAccount.BackupPolicy.BackupType
439+ Assert-AreEqual " Continuous30Days" $updatedCosmosDBAccount.BackupPolicy.Tier
440+ }
441+
442+ function Test-ProvisionCosmosDBAccountBackupPolicyWithContinuous7DaysCmdLets {
443+ # use an existing account with the following information
444+ $rgName = " PSCosmosDBResourceGroup51"
445+ $location = " West US"
446+ $sourceCosmosDBAccountName = " ps-cosmosdb-1251"
447+ $consistencyLevel = " Session"
448+ $apiKind = " Sql"
449+ $locations = @ ()
450+ $locations += New-AzCosmosDBLocationObject - Location " West Us" - FailoverPriority 0 - IsZoneRedundant 0
451+
452+ $resourceGroup = New-AzResourceGroup - ResourceGroupName $rgName - Location $location
453+ New-AzCosmosDBAccount - ResourceGroupName $rgName - LocationObject $locations - Name $sourceCosmosDBAccountName - ApiKind $apiKind - DefaultConsistencyLevel $consistencyLevel - BackupPolicyType Continuous - ContinuousTier Continuous7Days
454+
455+ $sourceCosmosDBAccount = Get-AzCosmosDBAccount - Name $sourceCosmosDBAccountName - ResourceGroupName $rgName
456+ Assert-AreEqual " Continuous" $sourceCosmosDBAccount.BackupPolicy.BackupType
457+ Assert-AreEqual " Continuous7Days" $sourceCosmosDBAccount.BackupPolicy.Tier
458+
459+ $sourceRestorableAccount = Get-AzCosmosDBRestorableDatabaseAccount - Location $sourceCosmosDBAccount.Location - DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
460+ Assert-NotNull $sourceRestorableAccount.Id
461+ Assert-NotNull $sourceRestorableAccount.Location
462+ Assert-NotNull $sourceRestorableAccount.DatabaseAccountInstanceId
463+ Assert-NotNull $sourceRestorableAccount.RestorableLocations
464+ Assert-AreEqual $sourceRestorableAccount.RestorableLocations.Count 1
465+ Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
466+ Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
467+ Assert-NotNull $sourceRestorableAccount.CreationTime
468+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
355469}
0 commit comments