From d3687fc9e9a09f2081ea7ce82c50e63c505db95e Mon Sep 17 00:00:00 2001 From: Josh VanderLinden Date: Wed, 26 Apr 2017 05:22:01 +0000 Subject: [PATCH] Expose any dynamically-assigned private IP address --- .../azurerm/resource_arm_loadbalancer.go | 18 +++++++++++++++++- .../azurerm/r/loadbalancer.html.markdown | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/builtin/providers/azurerm/resource_arm_loadbalancer.go b/builtin/providers/azurerm/resource_arm_loadbalancer.go index 60bb95990a..22ea3359f3 100644 --- a/builtin/providers/azurerm/resource_arm_loadbalancer.go +++ b/builtin/providers/azurerm/resource_arm_loadbalancer.go @@ -92,6 +92,11 @@ func resourceArmLoadBalancer() *schema.Resource { }, }, + "private_ip_address": { + Type: schema.TypeString, + Computed: true, + }, + "tags": tagsSchema(), }, } @@ -172,7 +177,18 @@ func resourecArmLoadBalancerRead(d *schema.ResourceData, meta interface{}) error d.Set("resource_group_name", id.ResourceGroup) if loadBalancer.LoadBalancerPropertiesFormat != nil && loadBalancer.LoadBalancerPropertiesFormat.FrontendIPConfigurations != nil { - d.Set("frontend_ip_configuration", flattenLoadBalancerFrontendIpConfiguration(loadBalancer.LoadBalancerPropertiesFormat.FrontendIPConfigurations)) + ipconfig := flattenLoadBalancerFrontendIpConfiguration(loadBalancer.LoadBalancerPropertiesFormat.FrontendIPConfigurations) + d.Set("frontend_ip_configuration", ipconfig) + + for _, config := range ipconfig { + cfg := config.(map[string]interface{}) + if priv_ip, ok := cfg["private_ip_address"]; ok { + d.Set("private_ip_address", priv_ip) + + // set the private IP address at most once + break + } + } } flattenAndSetTags(d, loadBalancer.Tags) diff --git a/website/source/docs/providers/azurerm/r/loadbalancer.html.markdown b/website/source/docs/providers/azurerm/r/loadbalancer.html.markdown index e659bf2ec0..7753a5ca52 100644 --- a/website/source/docs/providers/azurerm/r/loadbalancer.html.markdown +++ b/website/source/docs/providers/azurerm/r/loadbalancer.html.markdown @@ -60,6 +60,7 @@ The following arguments are supported: The following attributes are exported: * `id` - The LoadBalancer ID. +* `private_ip_address` - The private IP address assigned to the load balancer, if any. ## Import