From ab18f60071268f303bb60d465368bb62c666ae70 Mon Sep 17 00:00:00 2001 From: Kannan Goundan Date: Sun, 29 Jan 2017 08:45:13 -0800 Subject: [PATCH] provider/ns1/record: Fix "use_client_subnet". (#11368) The support for "use_client_subnet" was half finished. - Field was defined in schema. - ResourceData-to-struct code was present but incorrect. - struct-to-ResourceData code was missing. Made the change and verified with manual testing: 1. In NS1 UI, switched "Use Client Subnet" between checked and unchecked. 2. In Terraform config file, switched "use_client_subnet" field between "true", "false", and omitted. 3. The output of "terraform plan" was as expected in all six cases. --- builtin/providers/ns1/resource_record.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/builtin/providers/ns1/resource_record.go b/builtin/providers/ns1/resource_record.go index c4946a36f..b9d035a57 100644 --- a/builtin/providers/ns1/resource_record.go +++ b/builtin/providers/ns1/resource_record.go @@ -159,6 +159,9 @@ func recordToResourceData(d *schema.ResourceData, r *dns.Record) error { // t := metaStructToDynamic(r.Meta) // d.Set("meta", t) // } + if r.UseClientSubnet != nil { + d.Set("use_client_subnet", *r.UseClientSubnet) + } if len(r.Filters) > 0 { filters := make([]map[string]interface{}, len(r.Filters)) for i, f := range r.Filters { @@ -261,9 +264,9 @@ func resourceDataToRecord(r *dns.Record, d *schema.ResourceData) error { // if v, ok := d.GetOk("meta"); ok { // metaDynamicToStruct(r.Meta, v) // } - useClientSubnetVal := d.Get("use_client_subnet").(bool) - if v := strconv.FormatBool(useClientSubnetVal); v != "" { - r.UseClientSubnet = &useClientSubnetVal + if v, ok := d.GetOk("use_client_subnet"); ok { + copy := v.(bool) + r.UseClientSubnet = © } if rawFilters := d.Get("filters").([]interface{}); len(rawFilters) > 0 {