github.com/gophercloud/gophercloud@v1.11.0/openstack/containerinfra/v1/clusters/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 6 "github.com/gophercloud/gophercloud" 7 "github.com/gophercloud/gophercloud/openstack/containerinfra/v1/clusters" 8 "github.com/gophercloud/gophercloud/pagination" 9 th "github.com/gophercloud/gophercloud/testhelper" 10 fake "github.com/gophercloud/gophercloud/testhelper/client" 11 ) 12 13 func TestCreateCluster(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 17 HandleCreateClusterSuccessfully(t) 18 19 masterCount := 1 20 nodeCount := 1 21 createTimeout := 30 22 masterLBEnabled := true 23 opts := clusters.CreateOpts{ 24 ClusterTemplateID: "0562d357-8641-4759-8fed-8173f02c9633", 25 CreateTimeout: &createTimeout, 26 DiscoveryURL: "", 27 FlavorID: "m1.small", 28 Keypair: "my_keypair", 29 Labels: map[string]string{}, 30 MasterCount: &masterCount, 31 MasterFlavorID: "m1.small", 32 MasterLBEnabled: &masterLBEnabled, 33 Name: "k8s", 34 NodeCount: &nodeCount, 35 FloatingIPEnabled: gophercloud.Enabled, 36 FixedNetwork: "private_network", 37 FixedSubnet: "private_subnet", 38 MergeLabels: gophercloud.Enabled, 39 } 40 41 sc := fake.ServiceClient() 42 sc.Endpoint = sc.Endpoint + "v1/" 43 res := clusters.Create(sc, opts) 44 th.AssertNoErr(t, res.Err) 45 46 requestID := res.Header.Get("X-OpenStack-Request-Id") 47 th.AssertEquals(t, requestUUID, requestID) 48 49 actual, err := res.Extract() 50 th.AssertNoErr(t, err) 51 52 th.AssertDeepEquals(t, clusterUUID, actual) 53 } 54 55 func TestGetCluster(t *testing.T) { 56 th.SetupHTTP() 57 defer th.TeardownHTTP() 58 59 HandleGetClusterSuccessfully(t) 60 61 sc := fake.ServiceClient() 62 sc.Endpoint = sc.Endpoint + "v1/" 63 actual, err := clusters.Get(sc, "746e779a-751a-456b-a3e9-c883d734946f").Extract() 64 th.AssertNoErr(t, err) 65 actual.CreatedAt = actual.CreatedAt.UTC() 66 actual.UpdatedAt = actual.UpdatedAt.UTC() 67 th.AssertDeepEquals(t, ExpectedCluster, *actual) 68 } 69 70 func TestListClusters(t *testing.T) { 71 th.SetupHTTP() 72 defer th.TeardownHTTP() 73 74 HandleListClusterSuccessfully(t) 75 76 count := 0 77 sc := fake.ServiceClient() 78 sc.Endpoint = sc.Endpoint + "v1/" 79 clusters.List(sc, clusters.ListOpts{Limit: 2}).EachPage(func(page pagination.Page) (bool, error) { 80 count++ 81 actual, err := clusters.ExtractClusters(page) 82 th.AssertNoErr(t, err) 83 for idx := range actual { 84 actual[idx].CreatedAt = actual[idx].CreatedAt.UTC() 85 actual[idx].UpdatedAt = actual[idx].UpdatedAt.UTC() 86 } 87 th.AssertDeepEquals(t, ExpectedClusters, actual) 88 89 return true, nil 90 }) 91 92 if count != 1 { 93 t.Errorf("Expected 1 page, got %d", count) 94 } 95 } 96 97 func TestListDetailClusters(t *testing.T) { 98 th.SetupHTTP() 99 defer th.TeardownHTTP() 100 101 HandleListDetailClusterSuccessfully(t) 102 103 count := 0 104 sc := fake.ServiceClient() 105 sc.Endpoint = sc.Endpoint + "v1/" 106 clusters.ListDetail(sc, clusters.ListOpts{Limit: 2}).EachPage(func(page pagination.Page) (bool, error) { 107 count++ 108 actual, err := clusters.ExtractClusters(page) 109 th.AssertNoErr(t, err) 110 for idx := range actual { 111 actual[idx].CreatedAt = actual[idx].CreatedAt.UTC() 112 actual[idx].UpdatedAt = actual[idx].UpdatedAt.UTC() 113 } 114 th.AssertDeepEquals(t, ExpectedClusters, actual) 115 116 return true, nil 117 }) 118 119 if count != 1 { 120 t.Errorf("Expected 1 page, got %d", count) 121 } 122 } 123 124 func TestUpdateCluster(t *testing.T) { 125 th.SetupHTTP() 126 defer th.TeardownHTTP() 127 128 HandleUpdateClusterSuccessfully(t) 129 130 updateOpts := []clusters.UpdateOptsBuilder{ 131 clusters.UpdateOpts{ 132 Op: clusters.ReplaceOp, 133 Path: "/master_lb_enabled", 134 Value: "True", 135 }, 136 clusters.UpdateOpts{ 137 Op: clusters.ReplaceOp, 138 Path: "/registry_enabled", 139 Value: "True", 140 }, 141 } 142 143 sc := fake.ServiceClient() 144 sc.Endpoint = sc.Endpoint + "v1/" 145 res := clusters.Update(sc, clusterUUID, updateOpts) 146 th.AssertNoErr(t, res.Err) 147 148 requestID := res.Header.Get("X-OpenStack-Request-Id") 149 th.AssertEquals(t, requestUUID, requestID) 150 151 actual, err := res.Extract() 152 th.AssertNoErr(t, err) 153 154 th.AssertDeepEquals(t, clusterUUID, actual) 155 } 156 157 func TestUpgradeCluster(t *testing.T) { 158 th.SetupHTTP() 159 defer th.TeardownHTTP() 160 161 HandleUpgradeClusterSuccessfully(t) 162 163 var opts clusters.UpgradeOptsBuilder 164 opts = clusters.UpgradeOpts{ 165 ClusterTemplate: "0562d357-8641-4759-8fed-8173f02c9633", 166 } 167 168 sc := fake.ServiceClient() 169 sc.Endpoint = sc.Endpoint + "v1/" 170 res := clusters.Upgrade(sc, clusterUUID, opts) 171 th.AssertNoErr(t, res.Err) 172 173 requestID := res.Header.Get("X-OpenStack-Request-Id") 174 th.AssertEquals(t, requestUUID, requestID) 175 176 actual, err := res.Extract() 177 th.AssertNoErr(t, err) 178 179 th.AssertDeepEquals(t, clusterUUID, actual) 180 } 181 182 func TestDeleteCluster(t *testing.T) { 183 th.SetupHTTP() 184 defer th.TeardownHTTP() 185 186 HandleDeleteClusterSuccessfully(t) 187 188 sc := fake.ServiceClient() 189 sc.Endpoint = sc.Endpoint + "v1/" 190 r := clusters.Delete(sc, clusterUUID) 191 err := r.ExtractErr() 192 th.AssertNoErr(t, err) 193 194 uuid := "" 195 idKey := "X-Openstack-Request-Id" 196 if len(r.Header[idKey]) > 0 { 197 uuid = r.Header[idKey][0] 198 if uuid == "" { 199 t.Errorf("No value for header [%s]", idKey) 200 } 201 } else { 202 t.Errorf("Missing header [%s]", idKey) 203 } 204 205 th.AssertEquals(t, requestUUID, uuid) 206 } 207 208 func TestResizeCluster(t *testing.T) { 209 th.SetupHTTP() 210 defer th.TeardownHTTP() 211 212 HandleResizeClusterSuccessfully(t) 213 214 nodeCount := 2 215 216 var opts clusters.ResizeOptsBuilder 217 opts = clusters.ResizeOpts{ 218 NodeCount: &nodeCount, 219 } 220 221 sc := fake.ServiceClient() 222 sc.Endpoint = sc.Endpoint + "v1/" 223 res := clusters.Resize(sc, clusterUUID, opts) 224 th.AssertNoErr(t, res.Err) 225 226 requestID := res.Header.Get("X-OpenStack-Request-Id") 227 th.AssertEquals(t, requestUUID, requestID) 228 229 actual, err := res.Extract() 230 th.AssertNoErr(t, err) 231 232 th.AssertDeepEquals(t, clusterUUID, actual) 233 }