Skip to content

Commit 6c04298

Browse files
AEM: Add support for proxy and debug (#15992)
* add proxy and debug support to AEM extension * AEM: add support for proxy and debug * add secret suppress message * Update ChangeLog.md Co-authored-by: Yunchi Wang <[email protected]>
1 parent 9b3f37f commit 6c04298

File tree

5 files changed

+5876
-2
lines changed

5 files changed

+5876
-2
lines changed

src/Compute/Compute.Test/ScenarioTests/AEMExtensionTests.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,14 @@ public void TestExtensionUpgrade()
164164
public void TestNewExtensionDiskAdd()
165165
{
166166
TestRunner.RunTestScript("Test-NewExtensionDiskAdd");
167-
}
167+
}
168+
169+
[Fact]
170+
[Trait(Category.AcceptanceType, Category.CheckIn)]
171+
public void TestExtensionProxyDebug()
172+
{
173+
TestRunner.RunTestScript("Test-ExtensionProxyDebug");
174+
}
168175

169176
[Fact]
170177
[Trait(Category.AcceptanceType, Category.CheckIn)]

src/Compute/Compute.Test/ScenarioTests/AEMExtensionTests.ps1

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ Set Tests:
7474
17. Test with new extension and no switch
7575
Tested by: Test-ExtensionDowngrade
7676
77+
187. Test new extension with proxy and debug mode
78+
Tested by: Test-ExtensionProxyDebug
79+
7780
Remove Test:
7881
1. run with no extension
7982
tested by: Test-WithUserAssignedIdentity
@@ -388,6 +391,44 @@ function Test-NewExtensionDiskAdd() {
388391
}
389392
}
390393

394+
function Test-ExtensionProxyDebug
395+
{
396+
Write-Verbose "Test: VM Extension with proxy and debug mode"
397+
$rgname = Get-CustomResourceGroupName
398+
try
399+
{
400+
$proxyURI = "https://proxyhost:8080"
401+
$loc = Get-LocationForNewExtension
402+
$vm = Create-AdvancedVM -rgname $rgname -loc $loc -useMD -vmsize Standard_E4s_v3 -stotype Premium_LRS
403+
404+
Write-Verbose "`tInstalling new extension"
405+
Set-AzVMAEMExtension -ResourceGroupName $rgname -VMName $vm.Name -InstallNewExtension -SetAccessToIndividualResources -ProxyURI $proxyURI -DebugExtension
406+
Assert-NewExtension -ResourceGroupName $rgname -VMName $vm.Name -IdentityType 'SystemAssigned'
407+
408+
$extension = Get-AzVMExtension -ResourceGroupName $rgname -VMName $vm.Name
409+
$nul = Assert-NotNull $extension
410+
$nul = Assert-NotNull $extension.PublicSettings
411+
412+
$extensionSettings = $extension.PublicSettings | ConvertFrom-Json
413+
$nul = Assert-NotNull $extensionSettings
414+
$nul = Assert-NotNull $extensionSettings.cfg
415+
416+
$proxySetting = $extensionSettings.cfg | Where-Object { $_.key -eq "proxy"}
417+
$nul = Assert-NotNull $proxySetting
418+
$nul = Assert-AreEqual $proxySetting.value $proxyURI
419+
420+
$debugSetting = $extensionSettings.cfg | Where-Object { $_.key -eq "debug"}
421+
$nul = Assert-NotNull $debugSetting
422+
$nul = Assert-AreEqual $debugSetting.value "1"
423+
424+
}
425+
finally
426+
{
427+
# Cleanup
428+
Clean-ResourceGroup $rgname
429+
}
430+
}
431+
391432
function Test-AEMExtensionBasicWindowsWAD
392433
{
393434
$rgname = Get-ComputeTestResourceName
@@ -1315,7 +1356,7 @@ function Create-AdvancedVM($rgname, $vmname, $loc, $vmsize, $stotype, $nicCount,
13151356
{
13161357
$p = Set-AzVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred -ProvisionVMAgent;
13171358

1318-
$imgRef = Get-DefaultCRPWindowsImageOffline;
1359+
$imgRef = Get-WindowsImage $imageType;
13191360
$p = ($imgRef | Set-AzVMSourceImage -VM $p);
13201361
}
13211362
Write-Verbose "Start Create-AdvancedVM 6"
@@ -1366,6 +1407,12 @@ function Get-LinuxImage($imageType) {
13661407
}
13671408
}
13681409

1410+
function Get-WindowsImage($imageType) {
1411+
1412+
return Create-ComputeVMImageObject 'MicrosoftWindowsServer' 'WindowsServer' '2019-Datacenter' 'latest';
1413+
1414+
}
1415+
13691416
function GetWrongTestResult($TestResult, $searchFor, $level)
13701417
{
13711418
$result = ""

src/Compute/Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.AEMExtensionTests/TestExtensionProxyDebug.json

Lines changed: 5789 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
@@ -20,6 +20,7 @@
2020
2121
-->
2222
## Upcoming Release
23+
* Added support for proxy and debug settings for VM Extension for SAP (AEM)
2324
* Updated New-AzGalleryImageVersion to take in the 'Encryption' property correctly from '-TagetRegion' parameter.
2425
* Updated Set-AzVmBootDiagnostic to default to managed storage account if not provided.
2526

src/Compute/Compute/Extension/AEM/SetAzureRmVMAEMExtension.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,22 @@ public class SetAzureRmVMAEMExtension : VirtualMachineExtensionBaseCmdlet
109109
HelpMessage = "Install the new extension.")]
110110
public SwitchParameter InstallNewExtension { get; set; }
111111

112+
[Parameter(
113+
Mandatory = false,
114+
Position = 7,
115+
ParameterSetName = "NewExtension",
116+
ValueFromPipelineByPropertyName = false,
117+
HelpMessage = "Configures the proxy URI that should be used by the VM Extension for SAP.")]
118+
public string ProxyURI { get; set; }
119+
120+
[Parameter(
121+
Mandatory = false,
122+
Position = 8,
123+
ParameterSetName = "NewExtension",
124+
ValueFromPipelineByPropertyName = false,
125+
HelpMessage = "Enable debug mode for the VM Extension.")]
126+
public SwitchParameter DebugExtension { get; set; }
127+
112128
private IAuthorizationManagementClient _authClient;
113129

114130
protected IAuthorizationManagementClient AuthClient =>
@@ -304,12 +320,26 @@ private void SetNewExtension(VirtualMachine selectedVM, VirtualMachineInstanceVi
304320
}
305321
}
306322

323+
var sapmonPublicConfig = new List<KeyValuePair>();
324+
if (!String.IsNullOrEmpty(this.ProxyURI))
325+
{
326+
sapmonPublicConfig.Add(new KeyValuePair() { Key = "proxy", Value = this.ProxyURI });
327+
}
328+
if (this.DebugExtension.IsPresent)
329+
{
330+
sapmonPublicConfig.Add(new KeyValuePair() { Key = "debug", Value = "1" });
331+
}
332+
333+
ExtensionConfig jsonPublicConfig = new ExtensionConfig();
334+
jsonPublicConfig.Config = sapmonPublicConfig;
335+
307336
var vmExtensionConfig = new VirtualMachineExtension()
308337
{
309338
Publisher = AEMExtensionConstants.AEMExtensionPublisherv2[OSType],
310339
VirtualMachineExtensionType = AEMExtensionConstants.AEMExtensionTypev2[OSType],
311340
TypeHandlerVersion = AEMExtensionConstants.AEMExtensionVersionv2[OSType].ToString(2),
312341
Location = selectedVM.Location,
342+
Settings = jsonPublicConfig,
313343
AutoUpgradeMinorVersion = true,
314344
ForceUpdateTag = DateTime.Now.Ticks.ToString()
315345
};

0 commit comments

Comments
 (0)