Skip to content

Commit def8ad7

Browse files
authored
Merge pull request #1037 from Azure/issue1036
Fixes to parameter generation
2 parents 2910a6d + bc24fa0 commit def8ad7

File tree

1 file changed

+63
-21
lines changed

1 file changed

+63
-21
lines changed

Scripts/CloudAdoptionFramework/New-ALZPolicyDefaultStructure.ps1

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ foreach ($mg in $archetypeDefinitionFile.management_groups) {
7676
# Static Parameter Values
7777

7878
$additionalValues = @(
79+
80+
[PSCustomObject]@{
81+
default_name = "ama_mdfc_sql_workspace_id"
82+
description = "Workspace Id of the Log Analytics workspace destination for the Data Collection Rule."
83+
policy_assignments = @(
84+
@{
85+
policy_assignment_name = "Deploy-MDFC-DefSQL-AMA"
86+
parameter_names = @("userWorkspaceId")
87+
}
88+
)
89+
},
7990
[PSCustomObject]@{
8091
default_name = "ama_mdfc_sql_workspace_region"
8192
description = "The region short name (e.g. `westus`) that should be used for the Log Analytics workspace for the SQL MDFC deployment."
@@ -132,29 +143,60 @@ if ($Type -eq "ALZ") {
132143
}
133144

134145
foreach ($parameter in $policyDefaults) {
135-
# Grab the first policy assignment to grab default value of the parameter
136-
$parameterAssignmentName = $parameter.policy_assignments[0].parameter_names[0]
137-
$assignment = $parameter.policy_assignments[0]
138-
139-
$assignmentFileName = ("$($assignment.policy_assignment_name).alz_policy_assignment.json")
140-
if ($Type -eq "AMBA") {
141-
$assignmentFileName = $assignmentFileName -replace ("-", "_")
142-
}
143-
$file = Get-ChildItem -Recurse -Path $LibraryPath -Filter "$assignmentFileName" -File | Select-Object -First 1
144-
$jsonContent = Get-Content -Path $file.FullName -Raw | ConvertFrom-Json
145-
$tempDefaultParamValue = $jsonContent.properties.parameters.$parameterAssignmentName.value
146+
if ($parameter.default_name -ne "log_analytics_workspace_id") {
147+
# Grab the first policy assignment to grab default value of the parameter
148+
$parameterAssignmentName = $parameter.policy_assignments[0].parameter_names[0]
149+
$assignment = $parameter.policy_assignments[0]
150+
151+
$assignmentFileName = ("$($assignment.policy_assignment_name).alz_policy_assignment.json")
152+
if ($Type -eq "AMBA") {
153+
$assignmentFileName = $assignmentFileName -replace ("-", "_")
154+
}
155+
$file = Get-ChildItem -Recurse -Path $LibraryPath -Filter "$assignmentFileName" -File | Select-Object -First 1
156+
$jsonContent = Get-Content -Path $file.FullName -Raw | ConvertFrom-Json
157+
$tempDefaultParamValue = $jsonContent.properties.parameters.$parameterAssignmentName.value
146158

147-
$obj = @(
148-
@{
149-
description = $parameter.description
150-
policy_assignment_name = $parameter.policy_assignments.policy_assignment_name
151-
parameters = @{
152-
parameter_name = $parameter.policy_assignments[0].parameter_names[0]
153-
value = $tempDefaultParamValue
159+
$obj = @(
160+
@{
161+
description = $parameter.description
162+
policy_assignment_name = $parameter.policy_assignments.policy_assignment_name
163+
parameters = @{
164+
parameter_name = $parameter.policy_assignments[0].parameter_names[0]
165+
value = $tempDefaultParamValue
166+
}
167+
})
168+
169+
$jsonOutput.defaultParameterValues.Add($parameter.default_name, $obj)
170+
}
171+
else {
172+
$suffix = 0
173+
foreach ($name in $parameter.policy_assignments.parameter_names | Group-Object | Select-Object -ExpandProperty Name) {
174+
$parameterAssignmentName = $name
175+
$assignments = $parameter.policy_assignments | Where-Object { $_.parameter_names -contains $parameterAssignmentName }
176+
$assignment = $assignments[0]
177+
178+
$assignmentFileName = ("$($assignment.policy_assignment_name).alz_policy_assignment.json")
179+
if ($Type -eq "AMBA") {
180+
$assignmentFileName = $assignmentFileName -replace ("-", "_")
154181
}
155-
})
156-
157-
$jsonOutput.defaultParameterValues.Add($parameter.default_name, $obj)
182+
$file = Get-ChildItem -Recurse -Path $LibraryPath -Filter "$assignmentFileName" -File | Select-Object -First 1
183+
$jsonContent = Get-Content -Path $file.FullName -Raw | ConvertFrom-Json
184+
$tempDefaultParamValue = $jsonContent.properties.parameters.$parameterAssignmentName.value
185+
186+
$obj = @(
187+
@{
188+
description = $parameter.description
189+
policy_assignment_name = $assignments.policy_assignment_name
190+
parameters = @{
191+
parameter_name = [string]$assignment.parameter_names[0]
192+
value = $tempDefaultParamValue
193+
}
194+
})
195+
196+
$jsonOutput.defaultParameterValues.Add("$($parameter.default_name)_$suffix", $obj)
197+
$suffix++
198+
}
199+
}
158200
}
159201

160202
# Build Guardrail Deployment Object

0 commit comments

Comments
 (0)