github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/compute/v2/servergroup_test.go (about) 1 //go:build acceptance || compute || servergroups 2 // +build acceptance compute servergroups 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/extensions/servergroups" 12 "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" 13 th "github.com/gophercloud/gophercloud/testhelper" 14 ) 15 16 func TestServergroupsCreateDelete(t *testing.T) { 17 client, err := clients.NewComputeV2Client() 18 th.AssertNoErr(t, err) 19 20 serverGroup, err := CreateServerGroup(t, client, "anti-affinity") 21 th.AssertNoErr(t, err) 22 defer DeleteServerGroup(t, client, serverGroup) 23 24 serverGroup, err = servergroups.Get(client, serverGroup.ID).Extract() 25 th.AssertNoErr(t, err) 26 27 tools.PrintResource(t, serverGroup) 28 29 allPages, err := servergroups.List(client, &servergroups.ListOpts{}).AllPages() 30 th.AssertNoErr(t, err) 31 32 allServerGroups, err := servergroups.ExtractServerGroups(allPages) 33 th.AssertNoErr(t, err) 34 35 var found bool 36 for _, sg := range allServerGroups { 37 tools.PrintResource(t, serverGroup) 38 39 if sg.ID == serverGroup.ID { 40 found = true 41 } 42 } 43 44 th.AssertEquals(t, found, true) 45 } 46 47 func TestServergroupsAffinityPolicy(t *testing.T) { 48 clients.RequireLong(t) 49 50 client, err := clients.NewComputeV2Client() 51 th.AssertNoErr(t, err) 52 53 serverGroup, err := CreateServerGroup(t, client, "affinity") 54 th.AssertNoErr(t, err) 55 defer DeleteServerGroup(t, client, serverGroup) 56 57 firstServer, err := CreateServerInServerGroup(t, client, serverGroup) 58 th.AssertNoErr(t, err) 59 defer DeleteServer(t, client, firstServer) 60 61 firstServer, err = servers.Get(client, firstServer.ID).Extract() 62 th.AssertNoErr(t, err) 63 64 secondServer, err := CreateServerInServerGroup(t, client, serverGroup) 65 th.AssertNoErr(t, err) 66 defer DeleteServer(t, client, secondServer) 67 68 secondServer, err = servers.Get(client, secondServer.ID).Extract() 69 th.AssertNoErr(t, err) 70 71 th.AssertEquals(t, firstServer.HostID, secondServer.HostID) 72 } 73 74 func TestServergroupsMicroversionCreateDelete(t *testing.T) { 75 client, err := clients.NewComputeV2Client() 76 th.AssertNoErr(t, err) 77 78 client.Microversion = "2.64" 79 serverGroup, err := CreateServerGroupMicroversion(t, client) 80 th.AssertNoErr(t, err) 81 defer DeleteServerGroup(t, client, serverGroup) 82 83 serverGroup, err = servergroups.Get(client, serverGroup.ID).Extract() 84 th.AssertNoErr(t, err) 85 86 tools.PrintResource(t, serverGroup) 87 88 allPages, err := servergroups.List(client, &servergroups.ListOpts{}).AllPages() 89 th.AssertNoErr(t, err) 90 91 allServerGroups, err := servergroups.ExtractServerGroups(allPages) 92 th.AssertNoErr(t, err) 93 94 var found bool 95 for _, sg := range allServerGroups { 96 tools.PrintResource(t, serverGroup) 97 98 if sg.ID == serverGroup.ID { 99 found = true 100 } 101 } 102 103 th.AssertEquals(t, found, true) 104 }