diff --git a/azurerm/internal/services/netapp/netapp_volume_data_source.go b/azurerm/internal/services/netapp/netapp_volume_data_source.go index 3cb9929de84c..0af279cb5cfe 100644 --- a/azurerm/internal/services/netapp/netapp_volume_data_source.go +++ b/azurerm/internal/services/netapp/netapp_volume_data_source.go @@ -42,6 +42,14 @@ func dataSourceArmNetAppVolume() *schema.Resource { ValidateFunc: ValidateNetAppPoolName, }, + "mount_ip_addresses": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "volume_path": { Type: schema.TypeString, Computed: true, @@ -116,6 +124,9 @@ func dataSourceArmNetAppVolumeRead(d *schema.ResourceData, meta interface{}) err if props.UsageThreshold != nil { d.Set("storage_quota_in_gb", *props.UsageThreshold/1073741824) } + if err := d.Set("mount_ip_addresses", flattenArmNetAppVolumeMountIPAddresses(props.MountTargets)); err != nil { + return fmt.Errorf("setting `mount_ip_addresses`: %+v", err) + } } return nil diff --git a/azurerm/internal/services/netapp/netapp_volume_resource.go b/azurerm/internal/services/netapp/netapp_volume_resource.go index 53aa39cb08d3..d84a78220753 100644 --- a/azurerm/internal/services/netapp/netapp_volume_resource.go +++ b/azurerm/internal/services/netapp/netapp_volume_resource.go @@ -183,6 +183,14 @@ func resourceArmNetAppVolume() *schema.Resource { }, "tags": tags.Schema(), + + "mount_ip_addresses": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, }, } } @@ -292,6 +300,9 @@ func resourceArmNetAppVolumeRead(d *schema.ResourceData, meta interface{}) error if err := d.Set("export_policy_rule", flattenArmNetAppVolumeExportPolicyRule(props.ExportPolicy)); err != nil { return fmt.Errorf("Error setting `export_policy_rule`: %+v", err) } + if err := d.Set("mount_ip_addresses", flattenArmNetAppVolumeMountIPAddresses(props.MountTargets)); err != nil { + return fmt.Errorf("setting `mount_ip_addresses`: %+v", err) + } } return tags.FlattenAndSet(d, resp.Tags) @@ -468,3 +479,18 @@ func flattenArmNetAppVolumeExportPolicyRule(input *netapp.VolumePropertiesExport return results } + +func flattenArmNetAppVolumeMountIPAddresses(input *[]netapp.MountTargetProperties) []interface{} { + results := make([]interface{}, 0) + if input == nil { + return results + } + + for _, item := range *input { + if item.IPAddress != nil { + results = append(results, item.IPAddress) + } + } + + return results +} diff --git a/azurerm/internal/services/netapp/tests/netapp_volume_data_source_test.go b/azurerm/internal/services/netapp/tests/netapp_volume_data_source_test.go index 3429d7fe785e..760d5481bf9b 100644 --- a/azurerm/internal/services/netapp/tests/netapp_volume_data_source_test.go +++ b/azurerm/internal/services/netapp/tests/netapp_volume_data_source_test.go @@ -23,6 +23,7 @@ func TestAccDataSourceAzureRMNetAppVolume_basic(t *testing.T) { resource.TestCheckResourceAttrSet(data.ResourceName, "subnet_id"), resource.TestCheckResourceAttrSet(data.ResourceName, "storage_quota_in_gb"), resource.TestCheckResourceAttrSet(data.ResourceName, "protocols.0"), + resource.TestCheckResourceAttr(data.ResourceName, "mount_ip_addresses.#", "1"), ), }, }, diff --git a/azurerm/internal/services/netapp/tests/netapp_volume_resource_test.go b/azurerm/internal/services/netapp/tests/netapp_volume_resource_test.go index 3d25e74f7e90..29aabed189ea 100644 --- a/azurerm/internal/services/netapp/tests/netapp_volume_resource_test.go +++ b/azurerm/internal/services/netapp/tests/netapp_volume_resource_test.go @@ -91,6 +91,7 @@ func TestAccAzureRMNetAppVolume_complete(t *testing.T) { resource.TestCheckResourceAttr(data.ResourceName, "export_policy_rule.#", "3"), resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "1"), resource.TestCheckResourceAttr(data.ResourceName, "tags.FoO", "BaR"), + resource.TestCheckResourceAttr(data.ResourceName, "mount_ip_addresses.#", "1"), ), }, data.ImportStep(), @@ -464,14 +465,14 @@ resource "azurerm_virtual_network" "test" { name = "acctest-VirtualNetwork-%d" location = azurerm_resource_group.test.location resource_group_name = azurerm_resource_group.test.name - address_space = ["10.0.0.0/16"] + address_space = ["10.6.0.0/16"] } resource "azurerm_subnet" "test" { name = "acctest-Subnet-%d" resource_group_name = azurerm_resource_group.test.name virtual_network_name = azurerm_virtual_network.test.name - address_prefix = "10.0.2.0/24" + address_prefix = "10.6.2.0/24" delegation { name = "testdelegation" diff --git a/website/docs/d/netapp_volume.html.markdown b/website/docs/d/netapp_volume.html.markdown index 5d80cf5b940c..3f296be727d9 100644 --- a/website/docs/d/netapp_volume.html.markdown +++ b/website/docs/d/netapp_volume.html.markdown @@ -43,6 +43,8 @@ The following attributes are exported: * `location` - The Azure Region where the NetApp Volume exists. +* `mount_ip_addresses` - A list of IPv4 Addresses which should be used to mount the volume. + * `volume_path` - The unique file path of the volume. * `service_level` - The service level of the file system. diff --git a/website/docs/r/netapp_volume.html.markdown b/website/docs/r/netapp_volume.html.markdown index 76294e7c10e1..4faecc65c3e7 100644 --- a/website/docs/r/netapp_volume.html.markdown +++ b/website/docs/r/netapp_volume.html.markdown @@ -132,6 +132,8 @@ The following attributes are exported: * `id` - The ID of the NetApp Volume. +* `mount_ip_addresses` - A list of IPv4 Addresses which should be used to mount the volume. + ## Timeouts The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: