Skip to content

Commit dc9b786

Browse files
committed
clean role defs
1 parent ad36449 commit dc9b786

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

.github/tests/cleanup-scripts/cleanup_resouce_groups.ps1

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,34 +44,35 @@ $managementGroups | ForEach-Object -Parallel {
4444
} -ThrottleLimit 10
4545

4646
$roleDefinitionsFilter = $using:roleDefinitionsFilter
47-
$roleDefinitions = az role definition list --management-group $managementGroup | ConvertFrom-Json | Where-Object { $_.name -like "*$roleDefinitionsFilter*" -and $_.assignableScopes -contains "/providers/Microsoft.Management/managementGroups/$managementGroup" }
47+
$subscriptions = $using:subscriptions
48+
$roleDefinitions = az role definition list --custom-role-only true --scope "/providers/Microsoft.Management/managementGroups/$managementGroup" --query "[].{name:name,roleName:roleName,id:id,assignableScopes:assignableScopes}" -o json | ConvertFrom-Json | Where-Object { $_.roleName -like "*$roleDefinitionsFilter*" -and $_.assignableScopes -contains "/providers/Microsoft.Management/managementGroups/$managementGroup" }
4849
$roleDefinitions | ForEach-Object -Parallel {
4950
$managementGroup = $using:managementGroup
5051
$roleDefinition = $_
5152

52-
$roleAssignments = az role assignment list --role $roleDefinition.name --management-group $managementGroup | ConvertFrom-Json
53+
$roleAssignments = az role assignment list --role $roleDefinition.roleName --scope "/providers/Microsoft.Management/managementGroups/$managementGroup" --query "[].{id:id,principalName:principalName,principalId:principalId}" -o json | ConvertFrom-Json
5354
$roleAssignments | ForEach-Object -Parallel {
5455
$managementGroup = $using:managementGroup
5556
$roleDefinition = $using:roleDefinition
5657
$roleAssignment = $_
57-
Write-Host "Deleting role assignment: $($roleAssignment.name) for role definition: $($roleDefinition.name) in management group: $managementGroup"
58+
Write-Host "Deleting role assignment: $($roleAssignment.id) for role definition: $($roleDefinition.roleName) in management group: $managementGroup"
5859
az role assignment delete --ids $roleAssignment.id
5960
} -ThrottleLimit 10
6061

6162
foreach ( $subscription in $using:subscriptions ) {
62-
$subscriptionRoleAssignments = az role assignment list --role $roleDefinition.name --subscription $subscription | ConvertFrom-Json
63+
$subscriptionRoleAssignments = az role assignment list --role $roleDefinition.roleName --subscription $subscription --query "[].{id:id,principalName:principalName,principalId:principalId}" -o json | ConvertFrom-Json
6364
$subscriptionRoleAssignments | ForEach-Object -Parallel {
6465
$roleDefinition = $using:roleDefinition
6566
$subscription = $using:subscription
6667
$roleAssignment = $_
67-
Write-Host "Deleting role assignment: $($roleAssignment.name) for role definition: $($roleDefinition.name) in subscription: $subscription"
68+
Write-Host "Deleting role assignment: $($roleAssignment.id) for role definition: $($roleDefinition.roleName) in subscription: $subscription"
6869
az role assignment delete --ids $roleAssignment.id
6970
} -ThrottleLimit 10
7071
}
71-
if($roleDefinition.isCustom -eq $true) {
72-
Write-Host "Deleting custom role definition: $($roleDefinition.name) in management group: $managementGroup"
73-
az role definition delete --name $roleDefinition.name --management-group $managementGroup
74-
}
72+
73+
Write-Host "Deleting custom role definition: $($roleDefinition.name) in management group: $managementGroup"
74+
az role definition delete --name $roleDefinition.name --management-group $managementGroup
75+
7576
} -ThrottleLimit 10
7677
} -ThrottleLimit 10
7778

0 commit comments

Comments
 (0)