Skip to content

Commit 3b25381

Browse files
authored
Merge pull request #5949 from payiAzure/database2017
Modify the create/update Azure Sql database and elastic pool cmdlets. And modify corresponding model/services.
2 parents fb314ad + e6fe85b commit 3b25381

File tree

209 files changed

+133738
-2878545
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

209 files changed

+133738
-2878545
lines changed

src/ResourceManager/Sql/ChangeLog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
## Current Release
2121
* Updated Auditing cmdlets to allow removing AuditActions or AuditActionGroups
2222
* Fixed issue with Set-AzureRmSqlDatabaseBackupLongTermRetentionPolicy when setting a new flexible retention policy where the command would fail with "Configure long term retention policy with azure recovery service vault and policy is no longer supported. Please submit request with the new flexible retention policy".
23+
* Update all Azure Sql Database/ElasticPool Creation/Update related cmdlets to use the new Database API, which support Sku property for scale and tier-related properties.
24+
* The updated cmdlets including:
25+
- New-AzureRmSqlDatabase; Set-AzureRmSqlDatabase
26+
- New-AzureRmSqlElasticPool; Set-AzureRmSqlElasticPool
27+
- New-AzureRmSqlDatabaseCopy
28+
- New-AzureRmSqlDatabaseSecondary
29+
- Restore-AzureRmSqlDatabase
2330

2431
## Version 4.4.1
2532
* Set minimum dependency of module to PowerShell 5.0

src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@
7777
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Network.19.0.0-preview\lib\net452\Microsoft.Azure.Management.Network.dll</HintPath>
7878
</Reference>
7979
<Reference Include="Microsoft.Azure.Management.Sql, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
80-
<SpecificVersion>False</SpecificVersion>
81-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Sql.1.13.0-preview\lib\net452\Microsoft.Azure.Management.Sql.dll</HintPath>
82-
<Private>True</Private>
80+
<SpecificVersion>False</SpecificVersion>
81+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Sql.1.15.0-preview\lib\net452\Microsoft.Azure.Management.Sql.dll</HintPath>
82+
<Private>True</Private>
8383
</Reference>
8484
<Reference Include="Microsoft.Azure.Management.Storage">
8585
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Storage.2.4.0-preview\lib\net40\Microsoft.Azure.Management.Storage.dll</HintPath>
@@ -638,6 +638,12 @@
638638
</None>
639639
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DatabaseCrudTests\TestDatabaseUpdateWithZoneRedundancyNotSpecified.json">
640640
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
641+
</None>
642+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DatabaseCrudTests\TestVcoreDatabaseCreate.json">
643+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
644+
</None>
645+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DatabaseCrudTests\TestVcoreDatabaseUpdate.json">
646+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
641647
</None>
642648
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.DatabaseReplicationTests\TestCreateDatabaseCopy.json">
643649
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -740,6 +746,12 @@
740746
</None>
741747
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.ElasticPoolCrudTests\TestElasticPoolCancelOperation.json">
742748
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
749+
</None>
750+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.ElasticPoolCrudTests\TestVcoreElasticPoolUpdate.json">
751+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
752+
</None>
753+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.ElasticPoolCrudTests\TestVcoreElasticPoolCreate.json">
754+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
743755
</None>
744756
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_AutomaticPolicy.json">
745757
<CopyToOutputDirectory>Always</CopyToOutputDirectory>

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/AuditingTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function Test-AuditingDatabaseUpdatePolicyWithSameNameStorageOnDifferentRegion
6464
Assert-AreEqual $policy.UseServerDefault "Disabled"
6565

6666
$newResourceGroupName = "test-rg2-for-sql-cmdlets-" + $testSuffix
67-
New-AzureRmResourceGroup -Location "japanwest" -ResourceGroupName $newResourceGroupName
67+
New-AzureRmResourceGroup -Location "West Europe" -ResourceGroupName $newResourceGroupName
6868
New-AzureRmStorageAccount -StorageAccountName $params.storageAccount -ResourceGroupName $newResourceGroupName -Location "West Europe" -Type Standard_GRS
6969

7070
Set-AzureRmSqlDatabaseAuditingPolicy -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName -StorageAccountName $params.storageAccount

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/BlobAuditingTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ protected override void SetupManagementClients(RestTestFramework.MockContext con
2626
{
2727
var sqlClient = GetSqlClient(context);
2828
var sqlLegacyClient = GetLegacySqlClient();
29-
var storageClient = GetStorageClient();
3029
var storageV2Client = GetStorageV2Client();
3130
var resourcesClient = GetResourcesClient();
3231
var newResourcesClient = GetResourcesClient(context);
3332
var authorizationClient = GetAuthorizationManagementClient();
34-
helper.SetupSomeOfManagementClients(sqlClient, sqlLegacyClient, storageClient, storageV2Client, resourcesClient, newResourcesClient, authorizationClient);
33+
helper.SetupSomeOfManagementClients(sqlClient, sqlLegacyClient, storageV2Client, resourcesClient, newResourcesClient, authorizationClient);
3534
}
3635

3736
public BlobAuditingTests(ITestOutputHelper output) : base(output)

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/BlobAuditingTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ function Test-BlobAuditingDatabaseUpdatePolicyWithSameNameStorageOnDifferentRegi
6262
Assert-AreEqual $policy.AuditState "Enabled"
6363

6464
$newResourceGroupName = "test-rg2-for-sql-cmdlets-" + $testSuffix
65-
New-AzureRmResourceGroup -Location "japanwest" -ResourceGroupName $newResourceGroupName
65+
New-AzureRmResourceGroup -Location "West Europe" -ResourceGroupName $newResourceGroupName
6666
New-AzureRmStorageAccount -StorageAccountName $params.storageAccount -ResourceGroupName $newResourceGroupName -Location "West Europe" -Type Standard_GRS
6767

6868
Set-AzureRmSqlDatabaseAuditing -State Enabled -ResourceGroupName $params.rgname -ServerName $params.serverName -DatabaseName $params.databaseName -StorageAccountName $params.storageAccount

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/Common.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ function Get-SqlServerKeyVaultKeyTestEnvironmentParameters ()
264264
serverKeyName = "akvtdekeyvault_key1_51c2fab9ff3c4a17aab4cd51b932b106";
265265
vaultName = "akvtdekeyvault";
266266
keyName = "key1"
267-
location = "centraluseuap";
267+
location = "southeastasia";
268268
}
269269
}
270270

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/DatabaseBackupTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public void TestServerBackupLongTermRetentionVault()
8080
RunPowerShellTest("Test-ServerBackupLongTermRetentionVault");
8181
}
8282
}
83-
[Fact]
83+
[Fact(Skip = "LTR-V1 restore service is retiring in Prod.")]
8484
[Trait(Category.AcceptanceType, Category.CheckIn)]
8585
public void TestRestoreLongTermRetentionBackup()
8686
{

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/DatabaseBackupTests.ps1

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
function Test-ListDatabaseRestorePoints
2020
{
2121
# Setup
22-
$location = "Japan East"
22+
$location = "Southeast Asia"
2323
$serverVersion = "12.0";
2424
$rg = Create-ResourceGroupForTest
2525

@@ -59,43 +59,66 @@ function Test-RestoreGeoBackup
5959
# Setup
6060
$location = "Southeast Asia"
6161
$serverVersion = "12.0"
62-
$rg = Get-AzureRmResourceGroup -ResourceGroupName hchung-test2
63-
$server = Get-AzureRmSqlServer -ServerName hchung-testsvr2 -ResourceGroupName $rg.ResourceGroupName
64-
$db = Get-AzureRmSqlDatabase -ServerName $server.ServerName -DatabaseName hchung-testdb-geo2 -ResourceGroupName $rg.ResourceGroupName
65-
$restoredDbName = "powershell_db_georestored"
62+
$rg = Get-AzureRmResourceGroup -ResourceGroupName payi-test
63+
$server = Get-AzureRmSqlServer -ServerName payi-testsvr -ResourceGroupName $rg.ResourceGroupName
64+
$db = Get-AzureRmSqlDatabase -ServerName $server.ServerName -DatabaseName payi-testdb-geo2 -ResourceGroupName $rg.ResourceGroupName
65+
$restoredDbName = "powershell_db_georestored2"
66+
$restoredVcoreDbName = "powershell_db_georestored_vcore"
6667

6768
$geobackup = Get-AzureRmSqlDatabaseGeoBackup -ResourceGroupName $server.ResourceGroupName -ServerName $server.ServerName -DatabaseName $db.DatabaseName
68-
$job = $geobackup | Restore-AzureRmSqlDatabase -FromGeoBackup -TargetDatabaseName $restoredDbName -AsJob
69+
# Restore to a same db as it in geo backup
70+
$job = Restore-AzureRmSqlDatabase -FromGeoBackup -TargetDatabaseName $restoredDbName -ResourceGroupName $geobackup.ResourceGroupName `
71+
-ServerName $geobackup.ServerName -ResourceId $geobackup.ResourceId -AsJob
6972
$job | Wait-Job
73+
74+
# restore to a vcore db using geobackup
75+
Restore-AzureRmSqlDatabase -FromGeoBackup -TargetDatabaseName $restoredVcoreDbName -ResourceGroupName $geobackup.ResourceGroupName `
76+
-ServerName $geobackup.ServerName -ResourceId $geobackup.ResourceId -Edition "GeneralPurpose" -VCore 2 -ComputeGeneration "Gen4"
7077
}
7178

7279
function Test-RestoreDeletedDatabaseBackup
7380
{
7481
# Setup
7582
$location = "Southeast Asia"
7683
$serverVersion = "12.0"
77-
$rg = Get-AzureRmResourceGroup -ResourceGroupName hchung-test2
78-
$server = Get-AzureRmSqlServer -ServerName hchung-testsvr2 -ResourceGroupName $rg.ResourceGroupName
84+
$rg = Get-AzureRmResourceGroup -ResourceGroupName payi-test
85+
$server = Get-AzureRmSqlServer -ServerName payi-testsvr -ResourceGroupName $rg.ResourceGroupName
7986
$droppedDbName = "powershell_db_georestored"
8087
$restoredDbName = "powershell_db_deleted"
88+
$restoredVcoreDbName = "powershell_db_deleted_vcore"
8189

90+
# this Get command has regression in MS when specifying Deletiondate. Fix should be in Prod by 5/7/2018. so currently use another way to do testing
8291
$deletedDb = Get-AzureRmSqlDeletedDatabaseBackup -ResourceGroupName $server.ResourceGroupName -ServerName $server.ServerName `
83-
-DatabaseName $droppedDbName -DeletionDate "2016-02-23T00:21:22.847Z"
84-
$deletedDb | Restore-AzureRmSqlDatabase -FromDeletedDatabaseBackup -TargetDatabaseName $restoredDbName
92+
-DatabaseName $droppedDbName #-DeletionDate "2018-04-20 20:21:37.397Z"
93+
94+
# restore to a db same as the deleted db
95+
Restore-AzureRmSqlDatabase -FromDeletedDatabaseBackup -TargetDatabaseName $restoredDbName -DeletionDate "2018-04-20 20:21:37.397Z" `
96+
-ResourceGroupName $deletedDb[0].ResourceGroupName -ServerName $deletedDb[0].ServerName -ResourceId $deletedDb[0].ResourceId
97+
98+
# restore to a vcore db
99+
Restore-AzureRmSqlDatabase -FromDeletedDatabaseBackup -TargetDatabaseName $restoredVcoreDbName -DeletionDate "2018-04-20 20:21:37.397Z" `
100+
-ResourceGroupName $deletedDb[0].ResourceGroupName -ServerName $deletedDb[0].ServerName -ResourceId $deletedDb[0].ResourceId -Edition "GeneralPurpose" `
101+
-VCore 2 -ComputeGeneration "Gen4"
85102
}
86103

87104
function Test-RestorePointInTimeBackup
88105
{
89106
# Setup
90107
$location = "Southeast Asia"
91108
$serverVersion = "12.0"
92-
$rg = Get-AzureRmResourceGroup -ResourceGroupName hchung-test
93-
$server = Get-AzureRmSqlServer -ServerName hchung-testsvr -ResourceGroupName $rg.ResourceGroupName
94-
$db = Get-AzureRmSqlDatabase -ServerName $server.ServerName -DatabaseName hchung-testdb -ResourceGroupName $rg.ResourceGroupName
109+
$rg = Get-AzureRmResourceGroup -ResourceGroupName payi-test
110+
$server = Get-AzureRmSqlServer -ServerName payi-testsvr -ResourceGroupName $rg.ResourceGroupName
111+
$db = Get-AzureRmSqlDatabase -ServerName $server.ServerName -DatabaseName payi-testdb -ResourceGroupName $rg.ResourceGroupName
95112
$restoredDbName = "powershell_db_restored"
113+
$restoredVcoreDbName = "powershell_db_restored_vcore"
96114

97-
Get-AzureRmSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $db.DatabaseName |
98-
Restore-AzureRmSqlDatabase -FromPointInTimeBackup -PointInTime "2016-02-20T00:06:00Z" -TargetDatabaseName $restoredDbName
115+
# Restore to same with source db
116+
Restore-AzureRmSqlDatabase -FromPointInTimeBackup -PointInTime "2018-04-18T20:20:00Z" -TargetDatabaseName $restoredDbName -ResourceGroupName $db.ResourceGroupName `
117+
-ServerName $db.ServerName -ResourceId $db.ResourceId
118+
119+
# Restore to a Vcore db
120+
Restore-AzureRmSqlDatabase -FromPointInTimeBackup -PointInTime "2018-04-18T20:20:00Z" -TargetDatabaseName $restoredVcoreDbName -ResourceGroupName $db.ResourceGroupName `
121+
-ServerName $db.ServerName -ResourceId $db.ResourceId -Edition 'GeneralPurpose' -VCore 2 -ComputeGeneration 'Gen4'
99122
}
100123

101124
function Test-ServerBackupLongTermRetentionVault
@@ -132,6 +155,7 @@ function Test-DatabaseBackupLongTermRetentionPolicy
132155
Assert-True { $result.RecoveryServicesBackupPolicyResourceId -eq $policyResourceId }
133156
}
134157

158+
# LTR-V1 restore tests need to be removed once the service is retired completely
135159
function Test-RestoreLongTermRetentionBackup
136160
{
137161
$location = "North Europe"
@@ -148,7 +172,7 @@ function Test-RestoreLongTermRetentionBackup
148172
function Test-LongTermRetentionV2Policy($location = "westcentralus")
149173
{
150174
# Setup
151-
$location = Get-Location Microsoft.Sql "servers" $location
175+
$location = Get-Location "Microsoft.Sql" "servers" "West central US"
152176
$rg = Create-ResourceGroupForTest
153177
$server = Create-ServerForTest $rg $location
154178
$weeklyRetention1 = "P1W"
@@ -184,7 +208,7 @@ function Test-LongTermRetentionV2Policy($location = "westcentralus")
184208
function Test-LongTermRetentionV2Backup($location = "westcentralus")
185209
{
186210
# Setup
187-
$location = Get-Location Microsoft.Sql "servers" $location
211+
$location = Get-Location "Microsoft.Sql" "servers" "West central US"
188212
$rg = Create-ResourceGroupForTest
189213
$server = Create-ServerForTest $rg $location
190214

@@ -223,7 +247,7 @@ function Test-LongTermRetentionV2
223247
$databaseName = "testdb2"
224248
$weeklyRetention1 = "P1W"
225249
$weeklyRetention2 = "P2W"
226-
$restoredDatabase = "testdb3"
250+
$restoredDatabase = "testdb5"
227251
$databaseWithRemovableBackup = "testdb";
228252

229253
# Basic Get Tests
@@ -256,15 +280,18 @@ function Test-LongTermRetentionV2
256280
Assert-AreEqual $db.DatabaseName $restoredDatabase
257281

258282
# Test Remove with Piping
259-
#Get-AzureRmSqlDatabaseLongTermRetentionBackup -Location $locationName -ServerName $serverName -DatabaseName $removalDatabase -BackupName $backups[0].BackupName | Remove-AzureRmSqlDatabaseLongTermRetentionBackup
283+
#Get-AzureRmSqlDatabaseLongTermRetentionBackup -Location $locationName -ServerName $serverName -DatabaseName $databaseWithRemovableBackup -BackupName $backups[0].BackupName | Remove-AzureRmSqlDatabaseLongTermRetentionBackup
260284
$backups = Get-AzureRmSqlDatabase -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $databaseWithRemovableBackup | Get-AzureRmSqlDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
261285
Assert-AreEqual $backups.Count 0
286+
287+
# drop the restored db
288+
Remove-AzureRmSqlDatabase -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $restoredDatabase
262289
}
263290

264291
function Test-DatabaseGeoBackupPolicy
265292
{
266-
$rg = Get-AzureRmResourceGroup -ResourceGroupName alazad-rg
267-
$server = Get-AzureRmSqlServer -ServerName testsvr-alazad -ResourceGroupName $rg.ResourceGroupName
293+
$rg = Get-AzureRmResourceGroup -ResourceGroupName payi-test
294+
$server = Get-AzureRmSqlServer -ServerName payi-testsvr -ResourceGroupName $rg.ResourceGroupName
268295
$db = Get-AzureRmSqlDatabase -ServerName $server.ServerName -DatabaseName testdwdb -ResourceGroupName $rg.ResourceGroupName
269296

270297
# Enable and verify
@@ -345,6 +372,7 @@ function Test-RemoveDatabaseRestorePoint
345372

346373
Remove-AzureRmSqlDatabaseRestorePoint -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $dwdb.DatabaseName -RestorePointCreationDate $restorePoint.RestorePointCreationDate
347374

375+
Start-Sleep -s 60
348376
# Get restore points from data warehouse database.
349377
$restorePoints = Get-AzureRmSqlDatabaseRestorePoints -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $dwdb.DatabaseName
350378

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/DatabaseCrudTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ public void TestDatabaseCreate()
4545
RunPowerShellTest("Test-CreateDatabase");
4646
}
4747

48+
[Fact]
49+
[Trait(Category.AcceptanceType, Category.CheckIn)]
50+
public void TestVcoreDatabaseCreate()
51+
{
52+
RunPowerShellTest("Test-CreateVcoreDatabase");
53+
}
54+
4855
[Fact]
4956
[Trait(Category.AcceptanceType, Category.CheckIn)]
5057
public void TestDatabaseCreateWithSampleName()
@@ -66,6 +73,13 @@ public void TestDatabaseUpdate()
6673
RunPowerShellTest("Test-UpdateDatabase");
6774
}
6875

76+
[Fact]
77+
[Trait(Category.AcceptanceType, Category.CheckIn)]
78+
public void TestVcoreDatabaseUpdate()
79+
{
80+
RunPowerShellTest("Test-UpdateVcoreDatabase");
81+
}
82+
6983
[Fact]
7084
[Trait(Category.AcceptanceType, Category.CheckIn)]
7185
public void TestDatabaseUpdateWithZoneRedundancy()

0 commit comments

Comments
 (0)