@@ -44,6 +44,7 @@ function Test-RestoreFromNewAccountCmdlets {
44
44
Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
45
45
Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
46
46
Assert-NotNull $sourceRestorableAccount.CreationTime
47
+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
47
48
48
49
$restorableSqlDatabases = Get-AzCosmosDBSqlRestorableDatabase - Location $sourceCosmosDBAccount.Location - DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
49
50
Assert-NotNull $restorableSqlDatabases
@@ -139,6 +140,7 @@ function Test-MongoRestoreAccountCmdlets {
139
140
Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
140
141
Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
141
142
Assert-NotNull $sourceRestorableAccount.CreationTime
143
+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
142
144
143
145
$NewDatabase = New-AzCosmosDBMongoDBDatabase - AccountName $sourceCosmosDBAccountName - ResourceGroupName $rgName - Name $databaseName - Throughput $ThroughputValue
144
146
$NewCollection = New-AzCosmosDBMongoDBCollection - AccountName $sourceCosmosDBAccountName - ResourceGroupName $rgName - DatabaseName $databaseName - Throughput $CollectionThroughputValue - Name $CollectionName - Shard $ShardKey
@@ -218,6 +220,7 @@ function Test-RestoreFailuresAccountCmdlets {
218
220
Assert-AreEqual $sourceRestorableAccount.DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
219
221
Assert-NotNull $sourceRestorableAccount.DatabaseAccountName
220
222
Assert-NotNull $sourceRestorableAccount.CreationTime
223
+ Assert-NotNull $sourceRestorableAccount.OldestRestorableTime
221
224
222
225
$restorableSqlDatabases = Get-AzCosmosDBSqlRestorableDatabase - Location $sourceCosmosDBAccount.Location - DatabaseAccountInstanceId $sourceCosmosDBAccount.InstanceId
223
226
Assert-NotNull $restorableSqlDatabases
@@ -246,9 +249,9 @@ function Test-RestoreFailuresAccountCmdlets {
246
249
}
247
250
248
251
function Test-SqlContainerBackupInformationCmdLets {
249
- $rgName = " CosmosDBResourceGroup14 "
252
+ $rgName = " CosmosDBResourceGroup52 "
250
253
$location = " Central US"
251
- $cosmosDBAccountName = " cosmosdb-1214 "
254
+ $cosmosDBAccountName = " cosmosdb-1252 "
252
255
$databaseName = " TestDB1" ;
253
256
$collectionName = " TestCollectionInDB1" ;
254
257
$apiKind = " Sql"
@@ -326,10 +329,10 @@ function Test-MongoDBCollectionBackupInformationCmdLets {
326
329
Assert-NotNull $backupInfo.LatestRestorableTimestamp
327
330
}
328
331
329
- function Test-UpdateCosmosDBAccountBackupPolicyCmdLet {
330
- $rgName = " CosmosDBResourceGroup20 "
332
+ function Test-UpdateCosmosDBAccountBackupPolicyToContinuous30DaysCmdLets {
333
+ $rgName = " PSCosmosDBResourceGroup20 "
331
334
$location = " Central US"
332
- $cosmosDBAccountName = " cosmosdb-1220"
335
+ $cosmosDBAccountName = " ps- cosmosdb-1220"
333
336
$apiKind = " Sql"
334
337
$consistencyLevel = " Session"
335
338
$locations = @ ()
@@ -345,11 +348,122 @@ function Test-UpdateCosmosDBAccountBackupPolicyCmdLet {
345
348
}
346
349
347
350
$updatedCosmosDBAccount = Update-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName - BackupPolicyType Continuous
348
- Start-Sleep - s 50
351
+ Start-Sleep - s ( 60 )
349
352
350
353
$updatedCosmosDBAccount = Get-AzCosmosDBAccount - ResourceGroupName $rgName - Name $cosmosDBAccountName
351
354
Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState
352
355
Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.Status
353
356
Assert-NotNull $updatedCosmosDBAccount.BackupPolicy.BackupPolicyMigrationState.TargetType
354
357
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
355
469
}
0 commit comments