Skip to content

Commit

Permalink
Merge pull request #2655 from terraform-providers/signalr_keys
Browse files Browse the repository at this point in the history
Include access keys and connection strings in `azurerm_signalr_service`
  • Loading branch information
katbyte authored Jan 12, 2019
2 parents afe9677 + bfa9df6 commit 465ea3f
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 60 deletions.
34 changes: 34 additions & 0 deletions azurerm/resource_arm_signalr_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
},
}
Expand Down Expand Up @@ -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 {
Expand All @@ -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
Expand Down
48 changes: 48 additions & 0 deletions azurerm/resource_arm_signalr_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
),
},
{
Expand Down Expand Up @@ -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"),
),
},
{
Expand Down Expand Up @@ -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"),
),
},
{
Expand Down Expand Up @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
},
Expand Down Expand Up @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
},
Expand Down Expand Up @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
{
Expand All @@ -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"),
),
},
},
Expand Down
128 changes: 68 additions & 60 deletions website/docs/r/signalr_service.html.markdown
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
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
---
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"
Expand All @@ -28,48 +28,56 @@ resource "azurerm_signalr_service" "example" {
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.

## 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
```
```

## 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
```

0 comments on commit 465ea3f

Please sign in to comment.