diff --git a/nsxt/resource_nsxt_policy_tier0_gateway_interface.go b/nsxt/resource_nsxt_policy_tier0_gateway_interface.go index 404e6b654..24f101a3b 100644 --- a/nsxt/resource_nsxt_policy_tier0_gateway_interface.go +++ b/nsxt/resource_nsxt_policy_tier0_gateway_interface.go @@ -249,8 +249,8 @@ func resourceNsxtPolicyTier0GatewayInterfaceUpdate(d *schema.ResourceData, m int tier0Path := d.Get("gateway_path").(string) localeServiceID := d.Get("locale_service_id").(string) tier0ID := getPolicyIDFromPath(tier0Path) - if id == "" || tier0ID == "" { - return fmt.Errorf("Error obtaining Tier0 id") + if id == "" || tier0ID == "" || localeServiceID == "" { + return fmt.Errorf("Error obtaining Tier0 id or Locale Service id") } displayName := d.Get("display_name").(string) @@ -305,11 +305,12 @@ func resourceNsxtPolicyTier0GatewayInterfaceDelete(d *schema.ResourceData, m int id := d.Id() tier0Path := d.Get("gateway_path").(string) tier0ID := getPolicyIDFromPath(tier0Path) - if id == "" || tier0ID == "" { - return fmt.Errorf("Error obtaining Tier0 Interface id") + localeServiceID := d.Get("locale_service_id").(string) + if id == "" || tier0ID == "" || localeServiceID == "" { + return fmt.Errorf("Error obtaining Tier0 id or Locale Service id") } - err := client.Delete(tier0ID, defaultPolicyLocaleServiceID, id) + err := client.Delete(tier0ID, localeServiceID, id) if err != nil { return handleDeleteError("Tier0 Interface", id, err) } diff --git a/nsxt/resource_nsxt_policy_tier0_gateway_interface_test.go b/nsxt/resource_nsxt_policy_tier0_gateway_interface_test.go index 07d38c647..e2fbb4139 100644 --- a/nsxt/resource_nsxt_policy_tier0_gateway_interface_test.go +++ b/nsxt/resource_nsxt_policy_tier0_gateway_interface_test.go @@ -45,6 +45,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_service(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -63,6 +64,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_service(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -79,6 +81,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_service(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -120,6 +123,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_external(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "edge_node_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -141,6 +145,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_external(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "edge_node_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -179,6 +184,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_withID(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -197,6 +203,7 @@ func TestAccResourceNsxtPolicyTier0GatewayInterface_withID(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, diff --git a/nsxt/resource_nsxt_policy_tier1_gateway_interface.go b/nsxt/resource_nsxt_policy_tier1_gateway_interface.go index dacf09362..f4c3b59c7 100644 --- a/nsxt/resource_nsxt_policy_tier1_gateway_interface.go +++ b/nsxt/resource_nsxt_policy_tier1_gateway_interface.go @@ -37,6 +37,11 @@ func resourceNsxtPolicyTier1GatewayInterface() *schema.Resource { "mtu": getMtuSchema(), "ipv6_ndra_profile_path": getIPv6NDRAPathSchema(), "urpf_mode": getGatewayInterfaceUrpfModeSchema(), + "locale_service_id": { + Type: schema.TypeString, + Description: "Locale Service ID for this interface", + Computed: true, + }, }, } } @@ -125,6 +130,7 @@ func resourceNsxtPolicyTier1GatewayInterfaceCreate(d *schema.ResourceData, m int d.SetId(id) d.Set("nsx_id", id) + d.Set("locale_service_id", localeServiceID) return resourceNsxtPolicyTier1GatewayInterfaceRead(d, m) } @@ -182,10 +188,12 @@ func resourceNsxtPolicyTier1GatewayInterfaceUpdate(d *schema.ResourceData, m int id := d.Id() tier1Path := d.Get("gateway_path").(string) + localeServiceID := d.Get("locale_service_id").(string) tier1ID := getPolicyIDFromPath(tier1Path) - if id == "" || tier1ID == "" { - return fmt.Errorf("Error obtaining Tier1 id") + if id == "" || tier1ID == "" || localeServiceID == "" { + return fmt.Errorf("Error obtaining Tier1 id or Locale Service id") } + displayName := d.Get("display_name").(string) description := d.Get("description").(string) tags := getPolicyTagsFromSchema(d) @@ -216,7 +224,7 @@ func resourceNsxtPolicyTier1GatewayInterfaceUpdate(d *schema.ResourceData, m int obj.UrpfMode = &urpfMode } - _, err := client.Update(tier1ID, defaultPolicyLocaleServiceID, id, obj) + _, err := client.Update(tier1ID, localeServiceID, id, obj) if err != nil { return handleUpdateError("Tier1 Interface", id, err) } @@ -231,11 +239,12 @@ func resourceNsxtPolicyTier1GatewayInterfaceDelete(d *schema.ResourceData, m int id := d.Id() tier1Path := d.Get("gateway_path").(string) tier1ID := getPolicyIDFromPath(tier1Path) - if id == "" || tier1ID == "" { - return fmt.Errorf("Error obtaining Tier1 Interface id") + localeServiceID := d.Get("locale_service_id").(string) + if id == "" || tier1ID == "" || localeServiceID == "" { + return fmt.Errorf("Error obtaining Tier1 id or Locale Service id") } - err := client.Delete(tier1ID, defaultPolicyLocaleServiceID, id) + err := client.Delete(tier1ID, localeServiceID, id) if err != nil { return handleDeleteError("Tier1 Interface", id, err) } diff --git a/nsxt/resource_nsxt_policy_tier1_gateway_interface_test.go b/nsxt/resource_nsxt_policy_tier1_gateway_interface_test.go index 17c2a3731..848322d2e 100644 --- a/nsxt/resource_nsxt_policy_tier1_gateway_interface_test.go +++ b/nsxt/resource_nsxt_policy_tier1_gateway_interface_test.go @@ -44,6 +44,7 @@ func TestAccResourceNsxtPolicyTier1GatewayInterface_basic(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -61,6 +62,7 @@ func TestAccResourceNsxtPolicyTier1GatewayInterface_basic(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -77,6 +79,7 @@ func TestAccResourceNsxtPolicyTier1GatewayInterface_basic(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -116,6 +119,7 @@ func TestAccResourceNsxtPolicyTier1GatewayInterface_withID(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), }, @@ -135,6 +139,7 @@ func TestAccResourceNsxtPolicyTier1GatewayInterface_withID(t *testing.T) { resource.TestCheckResourceAttrSet(testResourceName, "gateway_path"), resource.TestCheckResourceAttrSet(testResourceName, "path"), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), + resource.TestCheckResourceAttrSet(testResourceName, "locale_service_id"), resource.TestCheckResourceAttrSet(testResourceName, "revision"), ), },