func disassociateFloatingIPFromInstance(computeClient *gophercloud.ServiceClient, floatingIP string, instanceID string, fixedIP string) error { disassociateOpts := floatingips.DisassociateOpts{ FloatingIP: floatingIP, } if err := floatingips.DisassociateInstance(computeClient, instanceID, disassociateOpts).ExtractErr(); err != nil { return fmt.Errorf("Error disassociating floating IP: %s", err) } return nil }
// DisassociateFloatingIP will disassociate a floating IP from an instance. A // fatal error will occur if the floating IP failed to disassociate. This works // best when using it as a deferred function. func DisassociateFloatingIP(t *testing.T, client *gophercloud.ServiceClient, floatingIP *floatingips.FloatingIP, server *servers.Server) { disassociateOpts := floatingips.DisassociateOpts{ FloatingIP: floatingIP.IP, } err := floatingips.DisassociateInstance(client, server.ID, disassociateOpts).ExtractErr() if err != nil { t.Fatalf("Unable to disassociate floating IP %s from server %s: %v", floatingIP.IP, server.ID, err) } t.Logf("Disassociated floating IP %s from server %s", floatingIP.IP, server.ID) }
func TestDisassociateInstance(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() HandleDisassociateSuccessfully(t) disassociateOpts := floatingips.DisassociateOpts{ FloatingIP: "10.10.10.2", } err := floatingips.DisassociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", disassociateOpts).ExtractErr() th.AssertNoErr(t, err) }