@@ -27,6 +27,9 @@ func TestAccAzureRMRoleAssignment(t *testing.T) {
27
27
"sp" : testAccAzureRMActiveDirectoryServicePrincipal_servicePrincipal ,
28
28
"group" : testAccAzureRMActiveDirectoryServicePrincipal_group ,
29
29
},
30
+ "management" : {
31
+ "assign" : testAccAzureRMRoleAssignment_managementGroup ,
32
+ },
30
33
}
31
34
32
35
for group , m := range testCases {
@@ -207,7 +210,7 @@ func testAccAzureRMActiveDirectoryServicePrincipal_servicePrincipal(t *testing.T
207
210
CheckDestroy : testCheckAzureRMRoleAssignmentDestroy ,
208
211
Steps : []resource.TestStep {
209
212
{
210
- Config : testAccAzureRMRoleAssingment_servicePrincipal (ri , id ),
213
+ Config : testAccAzureRMRoleAssignment_servicePrincipal (ri , id ),
211
214
Check : resource .ComposeTestCheckFunc (
212
215
testCheckAzureRMRoleAssignmentExists ("azurerm_role_assignment.test" ),
213
216
),
@@ -226,7 +229,7 @@ func testAccAzureRMActiveDirectoryServicePrincipal_group(t *testing.T) {
226
229
CheckDestroy : testCheckAzureRMRoleAssignmentDestroy ,
227
230
Steps : []resource.TestStep {
228
231
{
229
- Config : testAccAzureRMRoleAssingment_group (ri , id ),
232
+ Config : testAccAzureRMRoleAssignment_group (ri , id ),
230
233
Check : resource .ComposeTestCheckFunc (
231
234
testCheckAzureRMRoleAssignmentExists ("azurerm_role_assignment.test" ),
232
235
),
@@ -287,6 +290,24 @@ func testCheckAzureRMRoleAssignmentDestroy(s *terraform.State) error {
287
290
return nil
288
291
}
289
292
293
+ func testAccAzureRMRoleAssignment_managementGroup (t * testing.T ) {
294
+ groupId := uuid .New ().String ()
295
+
296
+ resource .Test (t , resource.TestCase {
297
+ PreCheck : func () { testAccPreCheck (t ) },
298
+ Providers : testAccProviders ,
299
+ CheckDestroy : testCheckAzureRMRoleAssignmentDestroy ,
300
+ Steps : []resource.TestStep {
301
+ {
302
+ Config : testAccAzureRMRoleAssignment_managementGroupConfig (groupId ),
303
+ Check : resource .ComposeTestCheckFunc (
304
+ testCheckAzureRMRoleAssignmentExists ("azurerm_role_assignment.test" ),
305
+ ),
306
+ },
307
+ },
308
+ })
309
+ }
310
+
290
311
func testAccAzureRMRoleAssignment_emptyNameConfig () string {
291
312
return `
292
313
data "azurerm_subscription" "primary" {}
@@ -398,7 +419,7 @@ resource "azurerm_role_assignment" "test" {
398
419
` , roleDefinitionId , rInt , roleAssignmentId )
399
420
}
400
421
401
- func testAccAzureRMRoleAssingment_servicePrincipal (rInt int , roleAssignmentID string ) string {
422
+ func testAccAzureRMRoleAssignment_servicePrincipal (rInt int , roleAssignmentID string ) string {
402
423
return fmt .Sprintf (`
403
424
data "azurerm_subscription" "current" {}
404
425
@@ -419,7 +440,7 @@ resource "azurerm_role_assignment" "test" {
419
440
` , rInt , roleAssignmentID )
420
441
}
421
442
422
- func testAccAzureRMRoleAssingment_group (rInt int , roleAssignmentID string ) string {
443
+ func testAccAzureRMRoleAssignment_group (rInt int , roleAssignmentID string ) string {
423
444
return fmt .Sprintf (`
424
445
data "azurerm_subscription" "current" {}
425
446
@@ -435,3 +456,25 @@ resource "azurerm_role_assignment" "test" {
435
456
}
436
457
` , rInt , roleAssignmentID )
437
458
}
459
+
460
+ func testAccAzureRMRoleAssignment_managementGroupConfig (groupId string ) string {
461
+ return fmt .Sprintf (`
462
+ data "azurerm_subscription" "primary" {}
463
+
464
+ data "azurerm_client_config" "test" {}
465
+
466
+ data "azurerm_role_definition" "test" {
467
+ name = "Monitoring Reader"
468
+ }
469
+
470
+ resource "azurerm_management_group" "test" {
471
+ group_id = "%s"
472
+ }
473
+
474
+ resource "azurerm_role_assignment" "test" {
475
+ scope = "${azurerm_management_group.test.id}"
476
+ role_definition_id = "${data.azurerm_role_definition.test.id}"
477
+ principal_id = "${data.azurerm_client_config.test.service_principal_object_id}"
478
+ }
479
+ ` , groupId )
480
+ }
0 commit comments