From 45efb4e62bde0e603efdeea215bf815f34612fae Mon Sep 17 00:00:00 2001 From: Junyi Yi Date: Sat, 12 Jan 2019 01:01:11 -0500 Subject: [PATCH 1/4] Populate access keys to SignalR service (#2506) --- azurerm/resource_arm_signalr_service.go | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/azurerm/resource_arm_signalr_service.go b/azurerm/resource_arm_signalr_service.go index 10e86fb0e3f1..f3af9a04dbc8 100644 --- a/azurerm/resource_arm_signalr_service.go +++ b/azurerm/resource_arm_signalr_service.go @@ -79,6 +79,30 @@ func resourceArmSignalRService() *schema.Resource { Computed: true, }, + "primary_access_key": { + Type: schema.TypeString, + Computed: true, + Sensitive: true, + }, + + "primary_connection_string": { + Type: schema.TypeString, + Computed: true, + Sensitive: true, + }, + + "secondary_access_key": { + Type: schema.TypeString, + Computed: true, + Sensitive: true, + }, + + "secondary_connection_string": { + Type: schema.TypeString, + Computed: true, + Sensitive: true, + }, + "tags": tagsSchema(), }, } @@ -143,6 +167,11 @@ func resourceArmSignalRServiceRead(d *schema.ResourceData, meta interface{}) err return fmt.Errorf("Error getting SignalR %q (Resource Group %q): %+v", name, resourceGroup, err) } + keys, err := client.ListKeys(ctx, resourceGroup, name) + if err != nil { + return fmt.Errorf("Error getting keys of SignalR %q (Resource Group %q): %+v", name, resourceGroup, err) + } + d.Set("name", name) d.Set("resource_group_name", resourceGroup) if location := resp.Location; location != nil { @@ -160,6 +189,11 @@ func resourceArmSignalRServiceRead(d *schema.ResourceData, meta interface{}) err d.Set("server_port", properties.ServerPort) } + d.Set("primary_access_key", keys.PrimaryKey) + d.Set("primary_connection_string", keys.PrimaryConnectionString) + d.Set("secondary_access_key", keys.SecondaryKey) + d.Set("secondary_connection_string", keys.SecondaryConnectionString) + flattenAndSetTags(d, resp.Tags) return nil From 53b567d6ce6ccfb5b5bbf441a7954d60589f3697 Mon Sep 17 00:00:00 2001 From: Junyi Yi Date: Sat, 12 Jan 2019 01:06:19 -0500 Subject: [PATCH 2/4] Include access keys in SignalR documentation --- website/docs/r/signalr_service.html.markdown | 38 ++++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/website/docs/r/signalr_service.html.markdown b/website/docs/r/signalr_service.html.markdown index 67cb53d9523c..901f1b18fc9b 100644 --- a/website/docs/r/signalr_service.html.markdown +++ b/website/docs/r/signalr_service.html.markdown @@ -13,21 +13,21 @@ Manages an Azure SignalR service. ## Example Usage ```hcl -resource "azurerm_resource_group" "example" { - name = "terraform-signalr" - location = "West US" -} - -resource "azurerm_signalr_service" "example" { - name = "tfex-signalr" - location = "${azurerm_resource_group.example.location}" - resource_group_name = "${azurerm_resource_group.example.name}" - - sku { - name = "Free_F1" - capacity = 1 - } -} +resource "azurerm_resource_group" "example" { + name = "terraform-signalr" + location = "West US" +} + +resource "azurerm_signalr_service" "example" { + name = "tfex-signalr" + location = "${azurerm_resource_group.example.location}" + resource_group_name = "${azurerm_resource_group.example.name}" + + sku { + name = "Free_F1" + capacity = 1 + } +} ``` ## Argument Reference @@ -66,6 +66,14 @@ The following attributes are exported: * `server_port` - The publicly accessible port of the SignalR service which is designed for customer server side use. +* `primary_access_key` - The primary access key for the SignalR service. + +* `primary_connection_string` - The primary connection string for the SignalR service. + +* `secondary_access_key` - The secondary access key for the SignalR service. + +* `secondary_connection_string` - The secondary connection string for the SignalR service. + ## Import SignalR services can be imported using the `resource id`, e.g. From 377d4f6ca818f3d265a9e66d571c17d056c852ec Mon Sep 17 00:00:00 2001 From: Junyi Yi Date: Sat, 12 Jan 2019 01:59:23 -0500 Subject: [PATCH 3/4] Modify tests to check access keys for SignalR --- azurerm/resource_arm_signalr_service_test.go | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/azurerm/resource_arm_signalr_service_test.go b/azurerm/resource_arm_signalr_service_test.go index de8a06aecb18..c33c203d1872 100644 --- a/azurerm/resource_arm_signalr_service_test.go +++ b/azurerm/resource_arm_signalr_service_test.go @@ -30,6 +30,10 @@ func TestAccAzureRMSignalRService_basic(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -61,6 +65,10 @@ func TestAccAzureRMSignalRService_standard(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -92,6 +100,10 @@ func TestAccAzureRMSignalRService_standardWithCap2(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -125,6 +137,10 @@ func TestAccAzureRMSignalRService_skuUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -137,6 +153,10 @@ func TestAccAzureRMSignalRService_skuUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -149,6 +169,10 @@ func TestAccAzureRMSignalRService_skuUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, }, @@ -177,6 +201,10 @@ func TestAccAzureRMSignalRService_capacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -189,6 +217,10 @@ func TestAccAzureRMSignalRService_capacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -201,6 +233,10 @@ func TestAccAzureRMSignalRService_capacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, }, @@ -229,6 +265,10 @@ func TestAccAzureRMSignalRService_skuAndCapacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -241,6 +281,10 @@ func TestAccAzureRMSignalRService_skuAndCapacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, { @@ -253,6 +297,10 @@ func TestAccAzureRMSignalRService_skuAndCapacityUpdate(t *testing.T) { resource.TestCheckResourceAttrSet(resourceName, "ip_address"), resource.TestCheckResourceAttrSet(resourceName, "public_port"), resource.TestCheckResourceAttrSet(resourceName, "server_port"), + resource.TestCheckResourceAttrSet(resourceName, "primary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "primary_connection_string"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_access_key"), + resource.TestCheckResourceAttrSet(resourceName, "secondary_connection_string"), ), }, }, From bfa9df6c7d0ee12245bc4d5164cbb19eb5ffa597 Mon Sep 17 00:00:00 2001 From: Junyi Yi Date: Sat, 12 Jan 2019 02:56:17 -0500 Subject: [PATCH 4/4] Make sure line-ending is LF instead of CRLF in SignalR documentation --- website/docs/r/signalr_service.html.markdown | 166 +++++++++---------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/website/docs/r/signalr_service.html.markdown b/website/docs/r/signalr_service.html.markdown index 901f1b18fc9b..66d45215482f 100644 --- a/website/docs/r/signalr_service.html.markdown +++ b/website/docs/r/signalr_service.html.markdown @@ -1,83 +1,83 @@ ---- -layout: "azurerm" -page_title: "Azure Resource Manager: azurerm_signalr_service" -sidebar_current: "docs-azurerm-resource-messaging-signalr-service" -description: |- - Manages an Azure SignalR service. ---- - -# azurerm_signalr_service - -Manages an Azure SignalR service. - -## Example Usage - -```hcl -resource "azurerm_resource_group" "example" { - name = "terraform-signalr" - location = "West US" -} - -resource "azurerm_signalr_service" "example" { - name = "tfex-signalr" - location = "${azurerm_resource_group.example.location}" - resource_group_name = "${azurerm_resource_group.example.name}" - - sku { - name = "Free_F1" - capacity = 1 - } -} -``` - -## Argument Reference - -The following arguments are supported: - -* `name` - (Required) The name of the SignalR service. Changing this forces a new resource to be created. - -* `resource_group_name` - (Required) The name of the resource group in which to create the SignalR service. Changing this forces a new resource to be created. - -* `location` - (Required) Specifies the supported Azure location where the SignalR service exists. Changing this forces a new resource to be created. - -* `sku` - A `sku` block as documented below. - -* `tags` - (Optional) A mapping of tags to assign to the resource. - ---- - -A `sku` block supports the following: - -* `name` - (Required) Specifies which tier to use. Valid values are `Free_F1` and `Standard_S1`. - -* `capacity` - (Required) Specifies the number of units associated with this SignalR service. Valid values are `1`, `2`, `5`, `10`, `20`, `50` and `100`. - -## Attributes Reference - -The following attributes are exported: - -* `id` - The ID of the SignalR service. - -* `hostname` - The FQDN of the SignalR service. - -* `ip_address` - The publicly accessible IP of the SignalR service. - -* `public_port` - The publicly accessible port of the SignalR service which is designed for browser/client use. - -* `server_port` - The publicly accessible port of the SignalR service which is designed for customer server side use. - -* `primary_access_key` - The primary access key for the SignalR service. - -* `primary_connection_string` - The primary connection string for the SignalR service. - -* `secondary_access_key` - The secondary access key for the SignalR service. - -* `secondary_connection_string` - The secondary connection string for the SignalR service. - -## Import - -SignalR services can be imported using the `resource id`, e.g. - -```shell -terraform import azurerm_signalr_service.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/terraform-signalr/providers/Microsoft.SignalRService/SignalR/tfex-signalr -``` +--- +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_signalr_service" +sidebar_current: "docs-azurerm-resource-messaging-signalr-service" +description: |- + Manages an Azure SignalR service. +--- + +# azurerm_signalr_service + +Manages an Azure SignalR service. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "terraform-signalr" + location = "West US" +} + +resource "azurerm_signalr_service" "example" { + name = "tfex-signalr" + location = "${azurerm_resource_group.example.location}" + resource_group_name = "${azurerm_resource_group.example.name}" + + sku { + name = "Free_F1" + capacity = 1 + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the SignalR service. Changing this forces a new resource to be created. + +* `resource_group_name` - (Required) The name of the resource group in which to create the SignalR service. Changing this forces a new resource to be created. + +* `location` - (Required) Specifies the supported Azure location where the SignalR service exists. Changing this forces a new resource to be created. + +* `sku` - A `sku` block as documented below. + +* `tags` - (Optional) A mapping of tags to assign to the resource. + +--- + +A `sku` block supports the following: + +* `name` - (Required) Specifies which tier to use. Valid values are `Free_F1` and `Standard_S1`. + +* `capacity` - (Required) Specifies the number of units associated with this SignalR service. Valid values are `1`, `2`, `5`, `10`, `20`, `50` and `100`. + +## Attributes Reference + +The following attributes are exported: + +* `id` - The ID of the SignalR service. + +* `hostname` - The FQDN of the SignalR service. + +* `ip_address` - The publicly accessible IP of the SignalR service. + +* `public_port` - The publicly accessible port of the SignalR service which is designed for browser/client use. + +* `server_port` - The publicly accessible port of the SignalR service which is designed for customer server side use. + +* `primary_access_key` - The primary access key for the SignalR service. + +* `primary_connection_string` - The primary connection string for the SignalR service. + +* `secondary_access_key` - The secondary access key for the SignalR service. + +* `secondary_connection_string` - The secondary connection string for the SignalR service. + +## Import + +SignalR services can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_signalr_service.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/terraform-signalr/providers/Microsoft.SignalRService/SignalR/tfex-signalr +```