Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ public enum ContainerParams
Name,
ResourceGroupName,
Status,
Container
Container,
FriendlyName,
}

public enum RecoveryPointParams
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -479,4 +479,7 @@ Please contact Microsoft for further assistant.</value>
<data name="AzureSqlRetainDataException" xml:space="preserve">
<value>Azure Sql does not support disable protection with retain data</value>
</data>
<data name="GetContainerNameParamDeprecated" xml:space="preserve">
<value>Name parameter will be deprecated. Please use FriendlyName instead for filtering by name.</value>
</data>
</root>
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@ public List<ContainerBase> ListProtectionContainers()
Models.BackupManagementType? backupManagementTypeNullable =
(Models.BackupManagementType?)this.ProviderData[ContainerParams.BackupManagementType];
string name = (string)this.ProviderData[ContainerParams.Name];
string friendlyName = (string)this.ProviderData[ContainerParams.FriendlyName];
string resourceGroupName = (string)this.ProviderData[ContainerParams.ResourceGroupName];
ContainerRegistrationStatus status =
(ContainerRegistrationStatus)this.ProviderData[ContainerParams.Status];
Expand All @@ -461,10 +462,22 @@ public List<ContainerBase> ListProtectionContainers()
ValidateAzureVMBackupManagementType(backupManagementTypeNullable.Value);
}

string nameQueryFilter = friendlyName;

if (!string.IsNullOrEmpty(name))
{
Logger.Instance.WriteWarning(Resources.GetContainerNameParamDeprecated);

if (string.IsNullOrEmpty(friendlyName))
{
nameQueryFilter = name;
}
}

ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();

// 1. Filter by Name
queryParams.FriendlyName = name;
queryParams.FriendlyName = nameQueryFilter;

// 2. Filter by ContainerType
queryParams.BackupManagementType =
Expand All @@ -484,7 +497,7 @@ public List<ContainerBase> ListProtectionContainers()
if (!string.IsNullOrEmpty(resourceGroupName))
{
containerModels = containerModels.Where(containerModel =>
(containerModel as AzureVmContainer).ResourceGroupName == resourceGroupName).ToList();
string.Compare((containerModel as AzureVmContainer).ResourceGroupName, resourceGroupName, true) == 0).ToList();
}

return containerModels;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,61 @@
# limitations under the License.
# ----------------------------------------------------------------------------------

$resourceGroupName = "labRG1";
$resourceName = "pstestrsvault";
$vaultLocation = "westus";
$defaultPolicyName = "DefaultPolicy";
# Create VM instead of taking these as parameters
$vmResourceGroupName = "arpittestresourcegroup";
$vmName = "arpittestencvm1";
$vmStorageAccountName = "mkheranirmrestore";
$vmStorageAccountResourceGroup = "mkheranirmrestore";
$vmUniqueName = "iaasvmcontainerv2;" + $vmResourceGroupName + ";" + $vmName;

function Test-GetContainerScenario
{
# 1. Get the vault
$vault = Get-AzureRmRecoveryServicesVault -ResourceGroupName "RsvTestRG" -Name "PsTestRsVault";

# 2. Set the vault context
# 1. Create / update and get vault
$vault = New-AzureRmRecoveryServicesVault -Name $resourceName -ResourceGroupName $resourceGroupName -Location $vaultLocation;
# 2. Set vault context
Set-AzureRmRecoveryServicesVaultContext -Vault $vault;

# 3. Get container
$global:container = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureVM -Name $vmName -ResourceGroupName $vmResourceGroupName -Status Registered;

# 4. If not already protected, enable protection
if ($global:container -eq $null)
{
# 4.1 Get default policy
$policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name $defaultPolicyName;

Enable-AzureRmRecoveryServicesBackupProtection -Policy $policy -Name $vmName -ResourceGroupName $vmResourceGroupName;

$global:container = Get-AzureRmRecoveryServicesBackupContainer -ContainerType AzureVM -Name $vmName -ResourceGroupName $vmResourceGroupName -Status Registered;
}

# VAR-1: Get All Containers with only mandatory parameters
$containers = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered";

$global:containerExists = $false;
foreach ($container in $containers)
{
echo $container.Name $container.ResourceGroupName;
if ($container.Name -match $vmUniqueName)
{
$global:containerExists = $true;
}
}
Assert-AreEqual $containers[2].FriendlyName "mkheranirmvm1";
Assert-AreEqual $global:containerExists $true;

# VAR-2: Get Containers with friendly name filter
$namedContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -Name "mkheraniRMVM1";
Assert-AreEqual $namedContainer.FriendlyName "mkheraniRMVM1";
$namedContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -Name $vmName;
Assert-AreEqual $namedContainer.Name $vmUniqueName;

# VAR-3: Get Containers with friendly name and resource group filters
$rgFilteredContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -Name "mkheraniRMVM1" -ResourceGroupName "RsvTestRG";
Assert-AreEqual $namedContainer.FriendlyName "mkheraniRMVM1";
$rgFilteredContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -Name $vmName -ResourceGroupName $vmResourceGroupName;
Assert-AreEqual $namedContainer.Name $vmUniqueName;

# VAR-4: Get Containers with resource group filter
$rgFilteredContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -ResourceGroupName "RsvTestRG";
Assert-AreEqual $namedContainer.FriendlyName "mkheraniRMVM1";
$rgFilteredContainer = Get-AzureRmRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -ResourceGroupName $vmResourceGroupName;
Assert-AreEqual $namedContainer.Name $vmUniqueName;
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ public void TestBackupItemScenario()
this.RunPowerShellTest(PsBackupProviderTypes.IaasVm.ToString(), "Test-BackupItemScenario");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetAzureVMRecoveryPointsScenario()
{
this.RunPowerShellTest(PsBackupProviderTypes.IaasVm.ToString(), "Test-GetAzureVMRecoveryPointsScenario");
Expand All @@ -69,6 +71,5 @@ public void TestRestoreAzureVMItemScenario()
{
this.RunPowerShellTest(PsBackupProviderTypes.IaasVm.ToString(), "Test-RestoreAzureVMRItemScenario");
}

}
}
Loading