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 }