Skip to content

Commit 3125757

Browse files
committed
Added migration scenario test
1 parent 2e3ef75 commit 3125757

File tree

3 files changed

+3196
-3792
lines changed

3 files changed

+3196
-3792
lines changed

src/Compute/Compute.Test/ScenarioTests/VirtualMachineExtensionTests.ps1

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
10421042
New-AzResourceGroup -Name $rgname -Location $loc -Force;
10431043

10441044
# Create a VM with managed disk
1045-
$vmname0 = $rgname + "v0";
1045+
$vmname0 = $rgname + "v0";
10461046
$username = "admin01";
10471047
$password = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force;
10481048
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password;
@@ -1063,7 +1063,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
10631063
$managedDisk = Get-AzDisk -ResourceGroupName $rgname -DiskName $vm.StorageProfile.OsDisk.Name;
10641064

10651065
# Create a managed OS disk by copying the OS disk of the stopped VM.
1066-
$diskname = $rgname + "disk";
1066+
$diskname = $rgname + "disk";
10671067
$diskConfig = New-AzDiskConfig -SourceResourceId $managedDisk.Id -Location $loc -CreateOption Copy;
10681068
New-AzDisk -ResourceGroupName $rgname -DiskName $diskname -Disk $diskConfig;
10691069
$disk = Get-AzDisk -ResourceGroupName $rgname -DiskName $diskname;
@@ -1104,7 +1104,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
11041104

11051105
# Create a VM using the managed OS disk.
11061106
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $p;
1107-
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname1;
1107+
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname1;
11081108
Assert-Null $vm.OSProfile;
11091109

11101110
# Storage Account (SA)
@@ -1407,6 +1407,16 @@ function Test-AzureDiskEncryptionExtensionSinglePass
14071407
Assert-NotNull $settings
14081408
Assert-NotNull $settings.DiskEncryptionKey.SecretUrl
14091409
Assert-AreEqual $settings.DiskEncryptionKey.SourceVault.Id $kv.DiskEncryptionKeyVaultId
1410+
1411+
#Enable using -Migrate flag and verify exception is thrown
1412+
Write-Verbose "Use -Migrate flag"
1413+
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -Migrate -Force; } `
1414+
"Migration is only supported for VMs using Azure Disk Encryption (with AAD). -Migrate parameter is unsupported for this VM as it is running Azure Disk Encryption (without AAD)";
1415+
1416+
# Enable using -MigrationRecovery flag and verify exception is thrown
1417+
Write-Verbose "Use -MigrationRecovery flag"
1418+
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -MigrationRecovery -Force; } `
1419+
"Invalid -MigrationRecovery parameter. VM does not meet the prerequisites for migration recovery";
14101420
}
14111421
finally
14121422
{
@@ -1638,7 +1648,12 @@ function Test-AzureDiskEncryptionLnxManagedDisk
16381648
$computerName = 'test';
16391649
$vhdContainer = "https://$stoname.blob.core.windows.net/test";
16401650

1641-
$p = Set-AzVMOperatingSystem -VM $p -Linux -ComputerName $computerName -Credential $cred;
1651+
$p = Set-AzVMOperatingSystem -VM $p -Linux -ComputerName $computerName -Credential $cred -DisablePasswordAuthentication;
1652+
Write-Verbose "Adding SSH public key for VM"
1653+
$sshPublicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9tGj7bjzqid3QP5YpH2+YGK8Or2KRZLdNuRGiFqgefGEF4uZrsKXeRXAXS7ia5CdCSIu020PDR69nPZq3dEQGp8GNMKXvfIBIpI++BISbT1jPuMVwEnI4JESGI4ay1glh1JtbRzQsktNjUGUYDxoOAYbtj3GU5lvw2CJ5WmobtcQbXLHWYqdDmTZQ7ry7l6GCjJSzye4IkwlQoGUql/T2iU2bLQyOCsFzcDEzFv6hVR8iFcV+eOJNHIkjCQz3Bw+tOTZbHMz1G95tSswdkrdwfMvR8fkWmby39lnFC+I7xcySQI6FMzaQZ7bA0tFGpp1JoThy5J5hBak5yOTqGBYL dummy@cc-1b92760a-6bb78476c6-h5cwh";
1654+
$sshPath = "/home/" + $user + "/.ssh/authorized_keys"
1655+
Add-AzVMSshPublicKey -VM $p -KeyData $sshPublicKey -Path $sshPath
1656+
Write-Verbose "Added SSH public key successfully."
16421657
$p = Set-AzVMSourceImage -VM $p -PublisherName $imagePublisher -Offer $imageOffer -Skus $imageSku -Version "latest"
16431658
Assert-AreEqual $p.OSProfile.AdminUsername $user;
16441659
Assert-AreEqual $p.OSProfile.ComputerName $computerName;
@@ -1653,6 +1668,21 @@ function Test-AzureDiskEncryptionLnxManagedDisk
16531668
# Enable single pass encryption without -skipVmBackup on Linux VM managed disk and verify exception is thrown
16541669
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmname -DiskEncryptionKeyVaultUrl $kv.DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $kv.DiskEncryptionKeyVaultId -VolumeType "OS" -Force; } `
16551670
"skipVmBackup parameter is a required parameter for encrypting Linux VMs with managed disks"; #>
1671+
1672+
# Enable with normal parameters
1673+
Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmname -DiskEncryptionKeyVaultUrl $kv.DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $kv.DiskEncryptionKeyVaultId -VolumeType "OS" -Force -skipVmBackup;
1674+
$status = Get-AzVmDiskEncryptionStatus -ResourceGroupName $rgname -VMName $vmname
1675+
Assert-NotNull $status
1676+
Assert-AreEqual $status.OsVolumeEncrypted EncryptionInProgress;
1677+
1678+
# Enable using -Migrate flag and verify exception is thrown
1679+
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmname -Migrate -Force; } `
1680+
"Migration is only supported for VMs using Azure Disk Encryption (with AAD). -Migrate parameter is unsupported for this VM as it is running Azure Disk Encryption (without AAD)";
1681+
1682+
# Enable using -MigrationRecovery flag and verify exception is thrown
1683+
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmname -MigrationRecovery -Force; } `
1684+
"Invalid -MigrationRecovery parameter. VM does not meet the prerequisites for migration recovery";
1685+
16561686
}
16571687
finally
16581688
{
@@ -2554,20 +2584,20 @@ function Test-VirtualMachineExtensionEnableAutomaticUpgrade
25542584
Assert-NotNull $vm;
25552585
$vmss = Get-AzVmss -Name $vmssname -ResourceGroupName $rgname;
25562586
Assert-NotNull $vmss;
2557-
2587+
25582588
# Extension
25592589
$extname = 'csetest';
25602590
$publisher = 'Microsoft.Compute';
25612591
$exttype = 'CustomScriptExtension';
25622592
$extver = '1.1';
2563-
2593+
25642594
# Set extension settings by raw strings
25652595
$settingstr = '{"fileUris":[],"commandToExecute":"powershell Get-Process"}';
25662596
$protectedsettingstr = '{"storageAccountName":"somename","storageAccountKey":"somekey"}';
25672597

2568-
Set-AzVMExtension -ResourceGroupName $rgname -Location $loc -VMName $vmname -Name $extname -Publisher $publisher -ExtensionType $exttype -TypeHandlerVersion $extver -SettingString $settingstr -ProtectedSettingString $protectedsettingstr -enableAutomaticUpgrade $False;
2569-
$VMSSext = Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extname -Publisher $publisher -Type $exttype -TypeHandlerVersion $extver -enableAutomaticUpgrade $False;
2570-
2598+
Set-AzVMExtension -ResourceGroupName $rgname -Location $loc -VMName $vmname -Name $extname -Publisher $publisher -ExtensionType $exttype -TypeHandlerVersion $extver -SettingString $settingstr -ProtectedSettingString $protectedsettingstr -enableAutomaticUpgrade $False;
2599+
$VMSSext = Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extname -Publisher $publisher -Type $exttype -TypeHandlerVersion $extver -enableAutomaticUpgrade $False;
2600+
25712601
$VMext = Get-AzVMExtension -ResourceGroupName $rgname -VMName $vmname -Name $extname;
25722602

25732603
# check enableAutomaticUpgrade property

src/Compute/Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineExtensionTests/TestAzureDiskEncryptionExtensionSinglePass.json

Lines changed: 1734 additions & 1098 deletions
Large diffs are not rendered by default.

src/Compute/Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineExtensionTests/TestAzureDiskEncryptionLnxManagedDisk.json

Lines changed: 1423 additions & 2685 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)