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  }