github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/containerinfra/v1/clusters_test.go (about)

     1  //go:build acceptance || containerinfra
     2  // +build acceptance containerinfra
     3  
     4  package v1
     5  
     6  import (
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    11  	"github.com/gophercloud/gophercloud/internal/acceptance/tools"
    12  	"github.com/gophercloud/gophercloud/openstack/containerinfra/v1/clusters"
    13  	th "github.com/gophercloud/gophercloud/testhelper"
    14  )
    15  
    16  func TestClustersCRUD(t *testing.T) {
    17  	t.Skip("Failure to deploy cluster in CI")
    18  	client, err := clients.NewContainerInfraV1Client()
    19  	th.AssertNoErr(t, err)
    20  
    21  	clusterTemplate, err := CreateKubernetesClusterTemplate(t, client)
    22  	th.AssertNoErr(t, err)
    23  	defer DeleteClusterTemplate(t, client, clusterTemplate.UUID)
    24  
    25  	clusterID, err := CreateKubernetesCluster(t, client, clusterTemplate.UUID)
    26  	th.AssertNoErr(t, err)
    27  	tools.PrintResource(t, clusterID)
    28  	defer DeleteCluster(t, client, clusterID)
    29  
    30  	allPages, err := clusters.List(client, nil).AllPages()
    31  	th.AssertNoErr(t, err)
    32  
    33  	allClusters, err := clusters.ExtractClusters(allPages)
    34  	th.AssertNoErr(t, err)
    35  
    36  	var found bool
    37  	for _, v := range allClusters {
    38  		if v.UUID == clusterID {
    39  			found = true
    40  		}
    41  	}
    42  	th.AssertEquals(t, found, true)
    43  	updateOpts := []clusters.UpdateOptsBuilder{
    44  		clusters.UpdateOpts{
    45  			Op:    clusters.ReplaceOp,
    46  			Path:  "/node_count",
    47  			Value: 2,
    48  		},
    49  	}
    50  	updateResult := clusters.Update(client, clusterID, updateOpts)
    51  	th.AssertNoErr(t, updateResult.Err)
    52  
    53  	if len(updateResult.Header["X-Openstack-Request-Id"]) > 0 {
    54  		t.Logf("Cluster Update Request ID: %s", updateResult.Header["X-Openstack-Request-Id"][0])
    55  	}
    56  
    57  	clusterID, err = updateResult.Extract()
    58  	th.AssertNoErr(t, err)
    59  
    60  	err = WaitForCluster(client, clusterID, "UPDATE_COMPLETE", time.Second*300)
    61  	th.AssertNoErr(t, err)
    62  
    63  	newCluster, err := clusters.Get(client, clusterID).Extract()
    64  	th.AssertNoErr(t, err)
    65  	th.AssertEquals(t, newCluster.UUID, clusterID)
    66  
    67  	allPagesDetail, err := clusters.ListDetail(client, nil).AllPages()
    68  	th.AssertNoErr(t, err)
    69  
    70  	allClustersDetail, err := clusters.ExtractClusters(allPagesDetail)
    71  	th.AssertNoErr(t, err)
    72  
    73  	var foundDetail bool
    74  	for _, v := range allClustersDetail {
    75  		if v.UUID == clusterID {
    76  			foundDetail = true
    77  		}
    78  	}
    79  	th.AssertEquals(t, foundDetail, true)
    80  
    81  	tools.PrintResource(t, newCluster)
    82  }