From e83c77ff2d4648047d9847814b40f2d83488b680 Mon Sep 17 00:00:00 2001 From: jackofallops Date: Wed, 16 Sep 2020 15:03:11 +0100 Subject: [PATCH 1/3] Add resource_manager_id attribute --- .../authorization/role_definition_resource.go | 11 +++++++++++ website/docs/r/role_definition.html.markdown | 2 ++ 2 files changed, 13 insertions(+) diff --git a/azurerm/internal/services/authorization/role_definition_resource.go b/azurerm/internal/services/authorization/role_definition_resource.go index 8fa28f333d5b..2ef746197c04 100644 --- a/azurerm/internal/services/authorization/role_definition_resource.go +++ b/azurerm/internal/services/authorization/role_definition_resource.go @@ -118,6 +118,11 @@ func resourceArmRoleDefinition() *schema.Resource { Type: schema.TypeString, }, }, + + "resource_manager_id": { + Type: schema.TypeString, + Computed: true, + }, }, } } @@ -223,6 +228,12 @@ func resourceArmRoleDefinitionRead(d *schema.ResourceData, meta interface{}) err } } + resourceManagerID := "" + if resp.ID != nil && *resp.ID == "" { + resourceManagerID = *resp.ID + } + d.Set("resource_manager_id", resourceManagerID) + return nil } diff --git a/website/docs/r/role_definition.html.markdown b/website/docs/r/role_definition.html.markdown index e6a2bf61acae..65cdee567373 100644 --- a/website/docs/r/role_definition.html.markdown +++ b/website/docs/r/role_definition.html.markdown @@ -67,6 +67,8 @@ The following attributes are exported: * `id` - The Role Definition ID. +* `resource_manager_id` - The Azure Resource Manager ID for the resource + ## Timeouts The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: From a27ac91eb8124d5257f8bbf631f69428830ebd46 Mon Sep 17 00:00:00 2001 From: jackofallops Date: Wed, 16 Sep 2020 15:20:42 +0100 Subject: [PATCH 2/3] updated to set from data we already have --- .../authorization/role_definition_resource.go | 15 ++++----------- website/docs/r/role_definition.html.markdown | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/azurerm/internal/services/authorization/role_definition_resource.go b/azurerm/internal/services/authorization/role_definition_resource.go index 2ef746197c04..030d73c0e255 100644 --- a/azurerm/internal/services/authorization/role_definition_resource.go +++ b/azurerm/internal/services/authorization/role_definition_resource.go @@ -5,15 +5,13 @@ import ( "log" "time" - azSchema "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tf/schema" - - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/authorization/parse" - "github.com/Azure/azure-sdk-for-go/services/preview/authorization/mgmt/2018-09-01-preview/authorization" "github.com/hashicorp/go-uuid" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/authorization/parse" + azSchema "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tf/schema" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) @@ -119,7 +117,7 @@ func resourceArmRoleDefinition() *schema.Resource { }, }, - "resource_manager_id": { + "role_definition_resource_id": { Type: schema.TypeString, Computed: true, }, @@ -201,6 +199,7 @@ func resourceArmRoleDefinitionRead(d *schema.ResourceData, meta interface{}) err d.Set("scope", roleDefinitionId.Scope) d.Set("role_definition_id", roleDefinitionId.RoleID) + d.Set("role_definition_resource_id", roleDefinitionId.ResourceID) resp, err := client.Get(ctx, roleDefinitionId.Scope, roleDefinitionId.RoleID) if err != nil { @@ -228,12 +227,6 @@ func resourceArmRoleDefinitionRead(d *schema.ResourceData, meta interface{}) err } } - resourceManagerID := "" - if resp.ID != nil && *resp.ID == "" { - resourceManagerID = *resp.ID - } - d.Set("resource_manager_id", resourceManagerID) - return nil } diff --git a/website/docs/r/role_definition.html.markdown b/website/docs/r/role_definition.html.markdown index 65cdee567373..328f42542212 100644 --- a/website/docs/r/role_definition.html.markdown +++ b/website/docs/r/role_definition.html.markdown @@ -67,7 +67,7 @@ The following attributes are exported: * `id` - The Role Definition ID. -* `resource_manager_id` - The Azure Resource Manager ID for the resource +* `role_definition_resource_id` - The Azure Resource Manager ID for the resource ## Timeouts From 9e6e1cf5fe9dee2241c15993410996adc0815eca Mon Sep 17 00:00:00 2001 From: jackofallops Date: Wed, 16 Sep 2020 15:37:38 +0100 Subject: [PATCH 3/3] updated test for new role_definition_resource_id attribute reference --- .../authorization/tests/role_assignment_resource_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/internal/services/authorization/tests/role_assignment_resource_test.go b/azurerm/internal/services/authorization/tests/role_assignment_resource_test.go index f7a95d8fd4b9..688f1cc7738e 100644 --- a/azurerm/internal/services/authorization/tests/role_assignment_resource_test.go +++ b/azurerm/internal/services/authorization/tests/role_assignment_resource_test.go @@ -459,7 +459,7 @@ resource "azurerm_role_definition" "test" { resource "azurerm_role_assignment" "test" { name = "%s" scope = data.azurerm_subscription.primary.id - role_definition_id = azurerm_role_definition.test.id + role_definition_id = azurerm_role_definition.test.role_definition_resource_id principal_id = data.azurerm_client_config.test.object_id } `, roleDefinitionId, rInt, roleAssignmentId)