github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/compute/v2/attachinterfaces_test.go (about) 1 //go:build acceptance || compute || servers 2 3 package v2 4 5 import ( 6 "context" 7 "testing" 8 9 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients" 10 "github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools" 11 "github.com/vnpaycloud-console/gophercloud/v2/openstack/compute/v2/servers" 12 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 13 ) 14 15 func TestAttachDetachInterface(t *testing.T) { 16 clients.RequireLong(t) 17 18 choices, err := clients.AcceptanceTestChoicesFromEnv() 19 th.AssertNoErr(t, err) 20 21 client, err := clients.NewComputeV2Client() 22 th.AssertNoErr(t, err) 23 24 server, err := CreateServer(t, client) 25 th.AssertNoErr(t, err) 26 defer DeleteServer(t, client, server) 27 28 iface, err := AttachInterface(t, client, server.ID) 29 th.AssertNoErr(t, err) 30 defer DetachInterface(t, client, server.ID, iface.PortID) 31 32 tools.PrintResource(t, iface) 33 34 server, err = servers.Get(context.TODO(), client, server.ID).Extract() 35 th.AssertNoErr(t, err) 36 37 var found bool 38 for _, networkAddresses := range server.Addresses[choices.NetworkName].([]any) { 39 address := networkAddresses.(map[string]any) 40 if address["OS-EXT-IPS:type"] == "fixed" { 41 fixedIP := address["addr"].(string) 42 43 for _, v := range iface.FixedIPs { 44 if fixedIP == v.IPAddress { 45 found = true 46 } 47 } 48 } 49 } 50 51 th.AssertEquals(t, true, found) 52 }