Skip to content

Commit 4779e25

Browse files
authored
Merge pull request Azure#10125 from Jyotsna-Anand/jyanand-vimish-ps
ADE - Remove QueryEncryptionStatus & honor different publisher, type and name
2 parents 1ab4f03 + b4d01f0 commit 4779e25

File tree

6 files changed

+5474
-18
lines changed

6 files changed

+5474
-18
lines changed

src/Compute/Compute.Test/ScenarioTests/VirtualMachineExtensionTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,13 @@ public void TestAzureDiskEncryptionExtensionSinglePassDisableAndRemove()
113113
TestRunner.RunTestScript("Test-AzureDiskEncryptionExtensionSinglePassDisableAndRemove");
114114
}
115115

116+
[Fact]
117+
[Trait(Category.AcceptanceType, Category.CheckIn)]
118+
public void TestAzureDiskEncryptionExtensionSinglePassEnableAndDisableWithNonDefaultParams()
119+
{
120+
TestRunner.RunTestScript("Test-AzureDiskEncryptionExtensionSinglePassEnableAndDisableWithNonDefaultParams");
121+
}
122+
116123
[Fact]
117124
[Trait(Category.AcceptanceType, Category.CheckIn)]
118125
public void TestVirtualMachineBginfoExtension()

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,6 +1250,60 @@ function Test-AzureDiskEncryptionExtensionSinglePassDisableAndRemove
12501250
}
12511251
}
12521252

1253+
<#
1254+
.SYNOPSIS
1255+
Test the Set-AzVMDiskEncryptionExtension single pass enable and disable scenario with non default parameters
1256+
#>
1257+
function Test-AzureDiskEncryptionExtensionSinglePassEnableAndDisableWithNonDefaultParams
1258+
{
1259+
$resourceGroupName = Get-ComputeTestResourceName
1260+
try
1261+
{
1262+
# create virtual machine and key vault prerequisites
1263+
$vm = Create-VirtualMachine $resourceGroupName
1264+
$kv = Create-KeyVault $vm.ResourceGroupName $vm.Location
1265+
1266+
$extensionPublisher = "Microsoft.Azure.Security.Edp";
1267+
$extensionName = "MyExtension";
1268+
1269+
# enable encryption with single pass syntax (omits AD parameters)
1270+
Set-AzVMDiskEncryptionExtension `
1271+
-ResourceGroupName $vm.ResourceGroupName `
1272+
-VMName $vm.Name `
1273+
-DiskEncryptionKeyVaultUrl $kv.DiskEncryptionKeyVaultUrl `
1274+
-DiskEncryptionKeyVaultId $kv.DiskEncryptionKeyVaultId `
1275+
-ExtensionPublisherName $extensionPublisher `
1276+
-ExtensionName $extensionName `
1277+
-Force
1278+
1279+
# verify encryption state
1280+
$status = Get-AzVmDiskEncryptionStatus -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -ExtensionPublisherName $extensionPublisher -ExtensionName $extensionName
1281+
Assert-NotNull $status
1282+
Assert-AreEqual $status.OsVolumeEncrypted Encrypted
1283+
Assert-AreEqual $status.DataVolumesEncrypted Encrypted
1284+
1285+
# verify encryption settings
1286+
$settings = $status.OsVolumeEncryptionSettings
1287+
Assert-NotNull $settings
1288+
Assert-NotNull $settings.DiskEncryptionKey.SecretUrl
1289+
Assert-AreEqual $settings.DiskEncryptionKey.SourceVault.Id $kv.DiskEncryptionKeyVaultId
1290+
1291+
# disable encryption
1292+
$status = Disable-AzVmDiskEncryption -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -ExtensionPublisherName $extensionPublisher -ExtensionName $extensionName -Force
1293+
Assert-NotNull $status
1294+
1295+
# verify encryption state
1296+
$status = Get-AzVmDiskEncryptionStatus -ResourceGroupName $vm.ResourceGroupName -VMName $vm.Name -ExtensionPublisherName $extensionPublisher -ExtensionName $extensionName
1297+
Assert-NotNull $status
1298+
Assert-AreEqual $status.OsVolumeEncrypted NotEncrypted
1299+
Assert-AreEqual $status.DataVolumesEncrypted NotEncrypted
1300+
}
1301+
finally
1302+
{
1303+
Clean-ResourceGroup($resourceGroupName)
1304+
}
1305+
}
1306+
12531307
<#
12541308
.SYNOPSIS
12551309
Test AzureDiskEncryption extension

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

Lines changed: 5400 additions & 0 deletions
Large diffs are not rendered by default.

src/Compute/Compute/ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* Fix the null exception for Get-AzRemoteDesktopFile.
3131
* Fix VHD Seek method for end-relative position.
3232
* Fix UltraSSD issue for New-AzVM and Update-AzVM.
33+
* Fix code to allow non default extension publisher, type and name for Get-AzVMDiskEncryptionStatus
3334

3435
## Version 2.5.0
3536
* Add VmssId to New-AzVMConfig cmdlet

src/Compute/Compute/Extension/AzureDiskEncryption/GetAzureDiskEncryptionStatus.cs

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,12 @@ private VirtualMachineExtensionInstanceView FindEncryptionExtensionInstanceView(
340340
switch(vm.StorageProfile.OsDisk.OsType)
341341
{
342342
case OperatingSystemTypes.Linux:
343-
extensionPublisher = AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultPublisher;
344-
extensionName = AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultName;
343+
extensionPublisher = this.ExtensionPublisherName ?? AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultPublisher;
344+
extensionName = this.Name ?? AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultName;
345345
break;
346346
case OperatingSystemTypes.Windows:
347-
extensionPublisher = AzureDiskEncryptionExtensionContext.ExtensionDefaultPublisher;
348-
extensionName = AzureDiskEncryptionExtensionContext.ExtensionDefaultName;
347+
extensionPublisher = this.ExtensionPublisherName ?? AzureDiskEncryptionExtensionContext.ExtensionDefaultPublisher;
348+
extensionName = this.Name ?? AzureDiskEncryptionExtensionContext.ExtensionDefaultName;
349349
break;
350350
}
351351

@@ -373,12 +373,12 @@ private VirtualMachineExtension FindEncryptionExtension(VirtualMachine vm)
373373
switch(vm.StorageProfile.OsDisk.OsType)
374374
{
375375
case OperatingSystemTypes.Linux:
376-
extensionPublisher = AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultPublisher;
377-
extensionType = AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultType;
376+
extensionPublisher = this.ExtensionPublisherName ?? AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultPublisher;
377+
extensionType = this.ExtensionType ?? AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultType;
378378
break;
379379
case OperatingSystemTypes.Windows:
380-
extensionPublisher = AzureDiskEncryptionExtensionContext.ExtensionDefaultPublisher;
381-
extensionType = AzureDiskEncryptionExtensionContext.ExtensionDefaultType;
380+
extensionPublisher = this.ExtensionPublisherName ?? AzureDiskEncryptionExtensionContext.ExtensionDefaultPublisher;
381+
extensionType = this.ExtensionType ?? AzureDiskEncryptionExtensionContext.ExtensionDefaultType;
382382
break;
383383
}
384384

@@ -518,16 +518,6 @@ private AzureDiskEncryptionStatusContext getStatusDualPass(VirtualMachine vm)
518518
};
519519
break;
520520
case OperatingSystemTypes.Linux:
521-
if (!this.IsExtensionInstalled(vm) && this.isVMRunning(vm))
522-
{
523-
VirtualMachineExtension parameters = GetDualPassQueryVmExtensionParameters(vm);
524-
525-
this.VirtualMachineExtensionClient.CreateOrUpdateWithHttpMessagesAsync(
526-
this.ResourceGroupName,
527-
this.VMName,
528-
this.Name,
529-
parameters).GetAwaiter().GetResult();
530-
}
531521

532522
Dictionary<string, string> encryptionStatusParsed = null;
533523
try

tools/SecurityTools/CredScanSuppressions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,10 @@
868868
{
869869
"file": "src\\Sql\\Sql.Test\\SessionRecords\\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.VulnerabilityAssessmentMiTests\\VulnerabilityAssessmentManagedDatabaseSettingsTest.json",
870870
"_justification": "Legitimate test session record - the resources are being deleted after the test run in Record mode."
871+
},
872+
{
873+
"file": "src\\Compute\\Compute.Test\\SessionRecords\\Microsoft.Azure.Commands.Compute.Test.ScenarioTests.VirtualMachineExtensionTests\\TestAzureDiskEncryptionExtensionSinglePassEnableAndDisableWithNonDefaultParams.json",
874+
"_justification": "Generated test resource group, deleted after test execution"
871875
}
872876
]
873877
}

0 commit comments

Comments
 (0)