Skip to content

Commit 2e349bf

Browse files
nexxaikatbyte
authored andcommitted
[azurerm_role_assignment] Add support for Management Groups (#4063)
Solves #4040
1 parent 6a6b890 commit 2e349bf

19 files changed

+4555
-12
lines changed

azurerm/data_source_builtin_role_definition.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package azurerm
33
import (
44
"fmt"
55

6-
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-01-01-preview/authorization"
6+
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization"
77
"github.com/hashicorp/terraform/helper/schema"
88
)
99

azurerm/data_source_role_definition.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package azurerm
33
import (
44
"fmt"
55

6-
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-01-01-preview/authorization"
6+
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization"
77
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/validate"
88

99
"github.com/hashicorp/terraform/helper/schema"

azurerm/internal/services/authorization/client.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package authorization
22

33
import (
4-
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-01-01-preview/authorization"
4+
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization"
55
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/common"
66
)
77

azurerm/resource_arm_role_assignment.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010

1111
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/suppress"
1212

13-
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-01-01-preview/authorization"
13+
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization"
1414
"github.com/hashicorp/go-uuid"
1515
"github.com/hashicorp/terraform/helper/resource"
1616
"github.com/hashicorp/terraform/helper/schema"

azurerm/resource_arm_role_assignment_test.go

+47-4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ func TestAccAzureRMRoleAssignment(t *testing.T) {
2727
"sp": testAccAzureRMActiveDirectoryServicePrincipal_servicePrincipal,
2828
"group": testAccAzureRMActiveDirectoryServicePrincipal_group,
2929
},
30+
"management": {
31+
"assign": testAccAzureRMRoleAssignment_managementGroup,
32+
},
3033
}
3134

3235
for group, m := range testCases {
@@ -207,7 +210,7 @@ func testAccAzureRMActiveDirectoryServicePrincipal_servicePrincipal(t *testing.T
207210
CheckDestroy: testCheckAzureRMRoleAssignmentDestroy,
208211
Steps: []resource.TestStep{
209212
{
210-
Config: testAccAzureRMRoleAssingment_servicePrincipal(ri, id),
213+
Config: testAccAzureRMRoleAssignment_servicePrincipal(ri, id),
211214
Check: resource.ComposeTestCheckFunc(
212215
testCheckAzureRMRoleAssignmentExists("azurerm_role_assignment.test"),
213216
),
@@ -226,7 +229,7 @@ func testAccAzureRMActiveDirectoryServicePrincipal_group(t *testing.T) {
226229
CheckDestroy: testCheckAzureRMRoleAssignmentDestroy,
227230
Steps: []resource.TestStep{
228231
{
229-
Config: testAccAzureRMRoleAssingment_group(ri, id),
232+
Config: testAccAzureRMRoleAssignment_group(ri, id),
230233
Check: resource.ComposeTestCheckFunc(
231234
testCheckAzureRMRoleAssignmentExists("azurerm_role_assignment.test"),
232235
),
@@ -287,6 +290,24 @@ func testCheckAzureRMRoleAssignmentDestroy(s *terraform.State) error {
287290
return nil
288291
}
289292

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+
290311
func testAccAzureRMRoleAssignment_emptyNameConfig() string {
291312
return `
292313
data "azurerm_subscription" "primary" {}
@@ -398,7 +419,7 @@ resource "azurerm_role_assignment" "test" {
398419
`, roleDefinitionId, rInt, roleAssignmentId)
399420
}
400421

401-
func testAccAzureRMRoleAssingment_servicePrincipal(rInt int, roleAssignmentID string) string {
422+
func testAccAzureRMRoleAssignment_servicePrincipal(rInt int, roleAssignmentID string) string {
402423
return fmt.Sprintf(`
403424
data "azurerm_subscription" "current" {}
404425
@@ -419,7 +440,7 @@ resource "azurerm_role_assignment" "test" {
419440
`, rInt, roleAssignmentID)
420441
}
421442

422-
func testAccAzureRMRoleAssingment_group(rInt int, roleAssignmentID string) string {
443+
func testAccAzureRMRoleAssignment_group(rInt int, roleAssignmentID string) string {
423444
return fmt.Sprintf(`
424445
data "azurerm_subscription" "current" {}
425446
@@ -435,3 +456,25 @@ resource "azurerm_role_assignment" "test" {
435456
}
436457
`, rInt, roleAssignmentID)
437458
}
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+
}

azurerm/resource_arm_role_definition.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf"
99

10-
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-01-01-preview/authorization"
10+
"github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization"
1111
"github.com/hashicorp/go-uuid"
1212
"github.com/hashicorp/terraform/helper/schema"
1313
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"

go.sum

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ github.com/Azure/azure-sdk-for-go v30.0.0+incompatible h1:6o1Yzl7wTBYg+xw0pY4qna
2020
github.com/Azure/azure-sdk-for-go v30.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
2121
github.com/Azure/azure-sdk-for-go v31.0.0+incompatible h1:18nT+M3yxnWcO66yoJyomlCoKMu578UHh0DjJBA5c1M=
2222
github.com/Azure/azure-sdk-for-go v31.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
23+
github.com/Azure/azure-sdk-for-go v32.3.0+incompatible h1:cPbYVpshHJc/lWNk0Gzhf8SLN+7qpdb8RQnRh0gntcI=
2324
github.com/Azure/go-autorest v10.15.4+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
2425
github.com/Azure/go-autorest v11.7.0+incompatible h1:gzma19dc9ejB75D90E5S+/wXouzpZyA+CV+/MJPSD/k=
2526
github.com/Azure/go-autorest v11.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=

vendor/github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization/classicadministrators.go

+151
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization/client.go

+51
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)