func removeInterface(t *testing.T, routerID, subnetID string) { ir, err := routers.RemoveInterface(base.Client, routerID, routers.InterfaceOpts{SubnetID: subnetID}).Extract() th.AssertNoErr(t, err) t.Logf("Interface %s removed from %s", ir.ID, routerID) }
func resourceNetworkingRouterInterfaceV2Delete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) networkingClient, err := config.networkingV2Client(d.Get("region").(string)) if err != nil { return fmt.Errorf("Error creating OpenStack networking client: %s", err) } removeOpts := routers.InterfaceOpts{ SubnetID: d.Get("subnet_id").(string), } _, err = routers.RemoveInterface(networkingClient, d.Get("router_id").(string), removeOpts).Extract() if err != nil { return fmt.Errorf("Error deleting OpenStack Neutron Router Interface: %s", err) } d.SetId("") return nil }
func waitForRouterInterfaceDelete(networkingClient *gophercloud.ServiceClient, d *schema.ResourceData) resource.StateRefreshFunc { return func() (interface{}, string, error) { routerId := d.Get("router_id").(string) routerInterfaceId := d.Id() log.Printf("[DEBUG] Attempting to delete OpenStack Router Interface %s.\n", routerInterfaceId) removeOpts := routers.InterfaceOpts{ SubnetID: d.Get("subnet_id").(string), PortID: d.Get("port_id").(string), } r, err := ports.Get(networkingClient, routerInterfaceId).Extract() if err != nil { errCode, ok := err.(*gophercloud.UnexpectedResponseCodeError) if !ok { return r, "ACTIVE", err } if errCode.Actual == 404 { log.Printf("[DEBUG] Successfully deleted OpenStack Router Interface %s", routerInterfaceId) return r, "DELETED", nil } } _, err = routers.RemoveInterface(networkingClient, routerId, removeOpts).Extract() if err != nil { errCode, ok := err.(*gophercloud.UnexpectedResponseCodeError) if !ok { return r, "ACTIVE", err } if errCode.Actual == 404 { log.Printf("[DEBUG] Successfully deleted OpenStack Router Interface %s", routerInterfaceId) return r, "DELETED", nil } } log.Printf("[DEBUG] OpenStack Router Interface %s still active.\n", routerInterfaceId) return r, "ACTIVE", nil } }