github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/compute/v2/attachinterfaces_test.go (about) 1 //go:build acceptance || compute || servers 2 // +build acceptance compute servers 3 4 package v2 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" 12 th "github.com/gophercloud/gophercloud/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(client, server.ID).Extract() 35 th.AssertNoErr(t, err) 36 37 var found bool 38 for _, networkAddresses := range server.Addresses[choices.NetworkName].([]interface{}) { 39 address := networkAddresses.(map[string]interface{}) 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, found, true) 52 }