Skip to content

LTR MI cmdlets and tests #11192

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
Mar 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4f10ccc
adding files for LTR MI Powershell tests
xaliciayang Feb 14, 2020
6d19b44
point Sql.dll to local dll
xaliciayang Feb 18, 2020
6b28dfc
minor fix to restore powershell workflow
xaliciayang Feb 21, 2020
3b23544
fixes for managed database backups and restore manage db cmdlets
xaliciayang Feb 26, 2020
89c444a
add managed instance LTR tests
xaliciayang Feb 26, 2020
9b0f2b5
fixing PR issues, changing lots of 'servers' to 'managedInstances' wh…
xaliciayang Feb 28, 2020
7838b87
updated tests; renamed parameters for consistency; adjusted backups A…
xaliciayang Mar 3, 2020
1be0731
fixed some tests; including all session tests (with mock resources)
xaliciayang Mar 3, 2020
52ce17a
some fixes in remove backup; redid session records, minor fixes throu…
xaliciayang Mar 4, 2020
4f81c11
Merge branch 'master' into ayang
xaliciayang Mar 4, 2020
ae637b2
bumping .net
xaliciayang Mar 4, 2020
bbe7e3d
bumping .net
xaliciayang Mar 4, 2020
e992cf0
help files; changelog
xaliciayang Mar 4, 2020
1d3dd43
fix conflit in changelog
xaliciayang Mar 4, 2020
6c9402d
fix test issue
xaliciayang Mar 4, 2020
6815833
Merge branch 'release-2020-03-10' into ayang
xaliciayang Mar 4, 2020
d2f9c03
More updates to help documentation
xaliciayang Mar 4, 2020
5b0c933
Merge branch 'ayang' of https://github.com/xaliciayang/azure-powershe…
xaliciayang Mar 4, 2020
5f191ad
generic names in help files
xaliciayang Mar 4, 2020
31bdf2b
adding online versions to help files
xaliciayang Mar 4, 2020
9c1bfcf
fixing online version
xaliciayang Mar 4, 2020
0084309
more tweakes to set-...policy help docs
xaliciayang Mar 4, 2020
8a831ce
Merge branch 'release-2020-03-10' into ayang
xaliciayang Mar 4, 2020
9211313
ps-vsprompt
xaliciayang Mar 4, 2020
a3fb936
removed ps-vsprompt from PR
xaliciayang Mar 4, 2020
1addc8c
add comma
xaliciayang Mar 4, 2020
2ff5861
change dogfood endpoint in session records
xaliciayang Mar 4, 2020
12c572e
add servers back into vulnerability
xaliciayang Mar 4, 2020
6110ca3
ltr policy record
xaliciayang Mar 4, 2020
5ccf6ac
re-recorded backup tests
xaliciayang Mar 4, 2020
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
4 changes: 2 additions & 2 deletions src/Sql/Sql.Test/ScenarioTests/DataSyncTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public DataSyncTests(ITestOutputHelper output) : base(output)

base.resourceTypesToIgnoreApiVersion = new string[] {
"Microsoft.Sql/servers",
"Microsoft.Sql/managedInstances/databases"
"Microsoft.Sql/managedInstances/databases"
};
}

Expand Down Expand Up @@ -135,6 +135,6 @@ public void TestSyncMemberSchemaRefreshAndGet()
public void TestSyncMemberRemove()
{
RunPowerShellTest("Test-RemoveSyncMember");
}
}
}
}
21 changes: 21 additions & 0 deletions src/Sql/Sql.Test/ScenarioTests/ManagedDatabaseBackupTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,26 @@ public void ManagedDeletedDatabaseShortTermRetentionPolicy()
{
RunPowerShellTest("Test-ManagedDeletedDatabaseShortTermRetentionPolicy");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManagedInstanceLongTermRetentionPolicy()
{
RunPowerShellTest("Test-ManagedInstanceLongTermRetentionPolicy");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManagedInstanceLongTermRetentionBackup()
{
RunPowerShellTest("Test-ManagedInstanceLongTermRetentionBackup");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestManagedInstanceLongTermRetentionResourceGroupBasedBackup()
{
RunPowerShellTest("Test-ManagedInstanceLongTermRetentionResourceGroupBasedBackup");
}
}
}
151 changes: 147 additions & 4 deletions src/Sql/Sql.Test/ScenarioTests/ManagedDatabaseBackupTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function Test-ManagedLiveDatabaseShortTermRetentionPolicy
$vnetName = "cl_initial"
$subnetName = "Cool"

# Setup VNET
# Setup VNET
$virtualNetwork1 = CreateAndGetVirtualNetworkForManagedInstance $vnetName $subnetName $rg.Location
$subnetId = $virtualNetwork1.Subnets.where({ $_.Name -eq $subnetName })[0].Id

Expand Down Expand Up @@ -88,14 +88,18 @@ function Test-ManagedLiveDatabaseShortTermRetentionPolicy
}
}

<#
.SYNOPSIS
Test LTR Policy functions for MI
#>
function Test-ManagedDeletedDatabaseShortTermRetentionPolicy
{
# Setup
$rg = Create-ResourceGroupForTest
$vnetName = "cl_initial"
$subnetName = "Cool"

# Setup VNET
# Setup VNET
$virtualNetwork1 = CreateAndGetVirtualNetworkForManagedInstance $vnetName $subnetName $rg.Location
$subnetId = $virtualNetwork1.Subnets.where({ $_.Name -eq $subnetName })[0].Id

Expand Down Expand Up @@ -130,7 +134,7 @@ function Test-ManagedDeletedDatabaseShortTermRetentionPolicy
Remove-AzSqlInstanceDatabase -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -Name $managedDatabaseName -Force

# Get deleted database
$deletedDatabases = Get-AzSqlDeletedInstanceDatabaseBackup -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -DatabaseName $managedDatabaseName
$deletedDatabases = Get-AzSqlDeletedInstanceDatabaseBackup -ResourceGroupName $rg.ResourceGroupName -InstanceName $managedInstance.ManagedInstanceName -DatabaseName $managedDatabaseName

# Set retention to 29, test default parameter providing.
$retention = 29
Expand Down Expand Up @@ -173,4 +177,143 @@ function Test-ManagedDeletedDatabaseShortTermRetentionPolicy
{
Remove-ResourceGroupForTest $rg
}
}
}
<#
.SYNOPSIS
Test long term retention for managed databases.
#>
function Test-ManagedInstanceLongTermRetentionPolicy()
{
# Setup
$resourceGroupName = "cl_stage_sea_cv"
$managedInstanceName = "seageodr-gen5-gp"
$weeklyRetention = "P1W"
$zeroRetention = "PT0S"

try
{
# create test database
$databaseName = "ps-ltr-policy-test-1"
$database = New-AzSqlInstanceDatabase -ResourceGroupName $resourceGroupName -InstanceName $managedInstanceName -Name $databaseName

Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroupName $resourceGroupName -InstanceName $managedInstanceName -DatabaseName $databaseName -WeeklyRetention $weeklyRetention
$policy = Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $resourceGroupName -InstanceName $managedInstanceName -DatabaseName $databaseName
Assert-AreEqual $policy.WeeklyRetention $weeklyRetention
Assert-AreEqual $policy.MonthlyRetention $zeroRetention
Assert-AreEqual $policy.YearlyRetention $zeroRetention
}
finally
{
Remove-ResourceGroupForTest $resourceGroup
}
}

<#
.SYNOPSIS
Test long term retention backup commands for managed databases.
#>
function Test-ManagedInstanceLongTermRetentionBackup
{

# MANUAL INSTRUCTIONS
# Create a server and database and fill in the appropriate information below
# Set the weekly retention on the database so that the first backup gets picked up, for example:
# Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $databaseName -WeeklyRetention P1W
# Wait about 18 hours until it gets properly copied and you see the backup when run get backups, for example:
# Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaeName $databaseName
$resourceGroup = "cl_stage_sea_cv"
$locationName = "southeastasia"
$managedInstanceName = "seageodr-gen5-gp"
$databaseName = "ps-test-1"
$databaseWithRemovableBackup = "ps-test-2";

# Basic Get Tests
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName
Assert-AreNotEqual $backups.Count 0

# Test Get Optional Parameters
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -OnlyLatestPerDatabase
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -OnlyLatestPerDatabase -DatabaseState All
Assert-AreNotEqual $backups.Count 0

# Test Get Piping with Optional Parameters
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
Assert-AreNotEqual $backups.Count 0

# Restore Test
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName
$restoredDatabase = "ps-test-restore-2"
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -TargetResourceGroupName $resourceGroup -TargetInstanceName $managedInstanceName -TargetInstanceDatabaseName $restoredDatabase
Assert-AreEqual $db.Name $restoredDatabase

# Test Remove Backup
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup
$initialBackups = $backups.Count
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup -BackupName $backups[0].BackupName -Force
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseWithRemovableBackup | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
$expectedBackups = $initialBackups-1
Assert-AreEqual $expectedBackups $backups.Count

# drop the restored db
Remove-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $managedInstanceName -Name $restoredDatabase -Force
}

<#
.SYNOPSIS
Test long term retention backup commands for managed databases (using resource group).
#>
function Test-ManagedInstanceLongTermRetentionResourceGroupBasedBackup
{
# MANUAL INSTRUCTIONS
# Create a server and database and fill in the appropriate information below
# Set the weekly retention on the database so that the first backup gets picked up, for example:
# Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $databaseName -WeeklyRetention P1W
# Wait about 18 hours until it gets properly copied and you see the backup when run get backups, for example:
# Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ServerName $serverName -DatabaeName $databaseName -ResourceGroupName $resourceGroup
$resourceGroup = "cl_stage_sea_cv"
$locationName = "southeastasia"
$managedInstanceName = "seageodr-gen5-gp"
$databaseName = "ps-test-3"

# Basic Get Tests
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ResourceGroupName $resourceGroup
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -ResourceGroupName $resourceGroup
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName -ResourceGroupName $resourceGroup
Assert-AreNotEqual $backups.Count 0

# Test Get Piping
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
Assert-AreNotEqual $backups.Count 0
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -BackupName $backups[0].BackupName
Assert-AreNotEqual $backups.Count 0

# Test Get Optional Parameters
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup -OnlyLatestPerDatabase
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -ResourceGroupName $resourceGroup -DatabaseState All
Assert-AreNotEqual $backups.Count 0

# Test Get Piping with Optional Parameters
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
Assert-AreNotEqual $backups.Count 0

# Restore Test
$restoredDatabase = "ps-test-restore-with-rg-2"
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ResourceGroupName $resourceGroup
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -TargetResourceGroupName $resourceGroup -TargetInstanceName $managedInstanceName -TargetInstanceDatabaseName $restoredDatabase
Assert-AreEqual $db.Name $restoredDatabase

# drop the restored db
Remove-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $managedInstanceName -Name $restoredDatabase -Force
}

Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public void TestRemoveManagedDatabase()
RunPowerShellTest("Test-RemoveManagedDatabase");
}

[Fact]
[Fact(Skip = "Skip due to long setup time for managed instance")]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestRestoreManagedDatabase()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ protected override void SetupManagementClients(RestTestFramework.MockContext con
public VulnerabilityAssessmentTests(ITestOutputHelper output) : base(output)
{
base.resourceTypesToIgnoreApiVersion = new string[] {
"Microsoft.Sql/servers"
"Microsoft.Sql/servers",
"Microsoft.Sql/managedInstances",
"Microsoft.Sql/managedInstances/databases"
};
}

Expand Down Expand Up @@ -95,4 +97,4 @@ public void VulnerabilityAssessmentScanConvertTest()

#endregion
}
}
}
Loading