Skip to content

Commit 0f22fad

Browse files
authored
Merge pull request #7743 from sneivandt/7679
Update Get-AzureRmRoleAssignment -IncludeClassicAdministrators
2 parents 6f887e5 + 2e0f8ea commit 0f22fad

File tree

21 files changed

+1831
-1766
lines changed

21 files changed

+1831
-1766
lines changed

src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,9 @@
648648
<None Include="SessionRecords\Microsoft.Azure.Commands.Resources.Test.ScenarioTests.RoleAssignmentTests\RaClassicAdmins.json">
649649
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
650650
</None>
651+
<None Include="SessionRecords\Microsoft.Azure.Commands.Resources.Test.ScenarioTests.RoleAssignmentTests\RaClassicAdminsWithScope.json">
652+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
653+
</None>
651654
<None Include="SessionRecords\Microsoft.Azure.Commands.Resources.Test.ScenarioTests.RoleAssignmentTests\RaDeletionByScopeAtRootScope.json">
652655
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
653656
</None>

src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ public void RaClassicAdmins()
4747
ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaClassicAdmins");
4848
}
4949

50+
[Fact]
51+
[Trait(Category.AcceptanceType, Category.CheckIn)]
52+
public void RaClassicAdminsWithScope()
53+
{
54+
ResourcesController.NewInstance.RunPsTest(_logger, "Test-RaClassicAdminsWithScope");
55+
}
56+
5057
[Fact]
5158
[Trait(Category.AcceptanceType, Category.CheckIn)]
5259
public void RaDeletedPrincipals()

src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleAssignmentTests.ps1

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,36 @@
1717
Tests retrieval of classic administrators
1818
#>
1919
function Test-RaClassicAdmins
20+
{
21+
# Setup
22+
$subscription = $(Get-AzureRmContext).Subscription
23+
24+
# Test
25+
$classic = Get-AzureRmRoleAssignment -IncludeClassicAdministrators | Where-Object { $_.Scope -ieq ('/subscriptions/' + $subscription[0].Id) -and $_.RoleDefinitionName -ieq 'ServiceAdministrator;AccountAdministrator' }
26+
27+
# Assert
28+
Assert-NotNull $classic
29+
Assert-True { $classic.Length -ge 1 }
30+
}
31+
32+
<#
33+
.SYNOPSIS
34+
Tests retrieval of classic administrators with subscription scope
35+
#>
36+
function Test-RaClassicAdminsWithScope
2037
{
2138
# Setup
2239
$subscription = Get-AzureRmSubscription
2340

2441
# Test
25-
$classic = Get-AzureRmRoleAssignment -IncludeClassicAdministrators | Where-Object { $_.Scope -ieq ('/subscriptions/' + $subscription[0].Id) -and $_.RoleDefinitionName.ToLower().Contains('administrator')}
42+
$classic = Get-AzureRmRoleAssignment -Scope ("/subscriptions/" + $subscription[0].Id) -IncludeClassicAdministrators | Where-Object { $_.Scope.ToLower().Contains("/subscriptions/" + $subscription[0].Id) -and $_.RoleDefinitionName -ieq 'ServiceAdministrator;AccountAdministrator' }
43+
44+
# Assert
45+
Assert-NotNull $classic
46+
Assert-True { $classic.Length -ge 1 }
47+
48+
# Test
49+
$classic = Get-AzureRmRoleAssignment -Scope ("/subscriptions/" + $subscription[1].Id) -IncludeClassicAdministrators | Where-Object { $_.Scope.ToLower().Contains("/subscriptions/" + $subscription[1].Id) -and $_.RoleDefinitionName -ieq 'ServiceAdministrator;AccountAdministrator' }
2650

2751
# Assert
2852
Assert-NotNull $classic
@@ -36,7 +60,7 @@ This test will fail if the objectId is changed or the role assignment deleted
3660
#>
3761
function Test-RaDeletedPrincipals
3862
{
39-
$objectId = "012968d8-c7a3-49b4-a00e-f3e24fec95cb"
63+
$objectId = "6f58a770-c06e-4012-b9f9-e5479c03d43f"
4064
$assignment = Get-AzureRmRoleAssignment -ObjectId $objectId
4165
Assert-NotNull $assignment
4266
Assert-NotNull $assignment.ObjectType
@@ -52,7 +76,7 @@ Tests verifies negative scenarios for RoleAssignments
5276
function Test-RaNegativeScenarios
5377
{
5478
# Setup
55-
$subscription = Get-AzureRmSubscription
79+
$subscription = $(Get-AzureRmContext).Subscription
5680

5781
# Bad OID returns zero role assignments
5882
$badOid = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
@@ -81,7 +105,7 @@ function Test-RaDeleteByPSRoleAssignment
81105
# Setup
82106
$definitionName = 'Backup Contributor'
83107
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
84-
$subscription = Get-AzureRmSubscription
108+
$subscription = $(Get-AzureRmContext).Subscription
85109
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
86110
$scope = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
87111
Assert-AreEqual 1 $users.Count "There should be at least one user to run the test."
@@ -108,7 +132,7 @@ function Test-RaByScope
108132
# Setup
109133
$definitionName = 'Automation Job Operator'
110134
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
111-
$subscription = Get-AzureRmSubscription
135+
$subscription = $(Get-AzureRmContext).Subscription
112136
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
113137
$scope = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
114138
$assignmentScope = $scope +"/"
@@ -142,7 +166,7 @@ function Test-RaById
142166
# Setup
143167
$definitionName = 'Reader'
144168
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
145-
$subscription = Get-AzureRmSubscription
169+
$subscription = $(Get-AzureRmContext).Subscription
146170
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -First 1 -Wait
147171
$scope = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
148172
$assignmentScope = $scope +"/"
@@ -276,7 +300,7 @@ function Test-RaValidateInputParameters ($cmdName)
276300

277301
# Check if ResourceType is valid
278302
Assert-AreEqual $resource.ResourceType "Microsoft.Web/sites"
279-
$subscription = Get-AzureRmSubscription | Select-Object -Last 1 -Wait
303+
$subscription = $(Get-AzureRmContext).Subscription
280304
# Below invalid resource type should not return 'Not supported api version'.
281305
$resource.ResourceType = "Microsoft.KeyVault/"
282306
$invalidResourceType = "Scope '/subscriptions/"+$subscription.Id+"/resourceGroups/"+$resource.ResourceGroupName+"/providers/Microsoft.KeyVault/"+$resource.Name+"' should have even number of parts."
@@ -297,7 +321,7 @@ function Test-RaByServicePrincipal
297321
# Setup
298322
$definitionName = 'Web Plan Contributor'
299323
$servicePrincipals = Get-AzureRmADServicePrincipal | Select-Object -Last 1 -Wait
300-
$subscription = Get-AzureRmSubscription
324+
$subscription = $(Get-AzureRmContext).Subscription
301325
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
302326
$scope = '/subscriptions/'+ $subscription[0].Id
303327
Assert-AreEqual 1 $servicePrincipals.Count "No service principals found. Unable to run the test."
@@ -424,7 +448,7 @@ function Test-RaDeletionByScope
424448
# Setup
425449
$definitionName = 'Backup Operator'
426450
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
427-
$subscription = Get-AzureRmSubscription
451+
$subscription = $(Get-AzureRmContext).Subscription
428452
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
429453
$scope = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
430454
Assert-AreEqual 1 $users.Count "There should be at least one user to run the test."
@@ -458,7 +482,7 @@ function Test-RaDeletionByScopeAtRootScope
458482
# Setup
459483
$definitionName = 'Billing Reader'
460484
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
461-
$subscription = Get-AzureRmSubscription
485+
$subscription = $(Get-AzureRmContext).Subscription
462486
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
463487
$scope = '/'
464488
Assert-AreEqual 1 $users.Count "There should be at least one user to run the test."
@@ -491,7 +515,7 @@ function Test-RaPropertiesValidation
491515
{
492516
# Setup
493517
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
494-
$subscription = Get-AzureRmSubscription
518+
$subscription = $(Get-AzureRmContext).Subscription
495519
$scope = '/subscriptions/'+$subscription[0].Id
496520
$roleDef = Get-AzureRmRoleDefinition -Name "User Access Administrator"
497521
$roleDef.Id = $null
@@ -538,7 +562,7 @@ function Test-RaDelegation
538562
# Setup
539563
$definitionName = 'Automation Runbook Operator'
540564
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
541-
$subscription = Get-AzureRmSubscription
565+
$subscription = $(Get-AzureRmContext).Subscription
542566
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
543567
$scope = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
544568
$assignmentScope = $scope +"/"
@@ -574,7 +598,7 @@ function Test-RaGetByScope
574598
# Setup
575599
$definitionName = 'Automation Operator'
576600
$users = Get-AzureRmADUser | Select-Object -First 1 -Wait
577-
$subscription = Get-AzureRmSubscription
601+
$subscription = $(Get-AzureRmContext).Subscription
578602
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 2 -Wait
579603
$scope1 = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[0].ResourceGroupName
580604
$scope2 = '/subscriptions/'+ $subscription[0].Id +'/resourceGroups/' + $resourceGroups[1].ResourceGroupName

src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/RoleDefinitionTests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ function Test-RDRemove
181181
# Setup
182182
# Create a role definition at RG Scope.
183183

184-
$subscription = Get-AzureRmSubscription
184+
$subscription = $(Get-AzureRmContext).Subscription
185185
$resourceGroups = Get-AzureRmResourceGroup | Select-Object -Last 1 -Wait
186186

187187
$scope = "/subscriptions/" + $subscription[0].SubscriptionId
@@ -216,7 +216,7 @@ Verify positive and negative scenarios for RoleDefinition Get.
216216
function Test-RDGet
217217
{
218218
# Setup
219-
$subscription = Get-AzureRmSubscription
219+
$subscription = $(Get-AzureRmContext).Subscription
220220

221221
$resource = Get-AzureRmResource | Select-Object -Last 1 -Wait
222222
Assert-NotNull $resource "Cannot find any resource to continue test execution."

0 commit comments

Comments
 (0)