github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/containerinfra/v1/clusters/testing/fixtures_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/vnpaycloud-console/gophercloud/v2" 10 "github.com/vnpaycloud-console/gophercloud/v2/openstack/containerinfra/v1/clusters" 11 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 12 fake "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client" 13 ) 14 15 const clusterUUID = "746e779a-751a-456b-a3e9-c883d734946f" 16 const clusterUUID2 = "846e779a-751a-456b-a3e9-c883d734946f" 17 const requestUUID = "req-781e9bdc-4163-46eb-91c9-786c53188bbb" 18 19 var ClusterCreateResponse = fmt.Sprintf(` 20 { 21 "uuid":"%s" 22 }`, clusterUUID) 23 24 var ExpectedCluster = clusters.Cluster{ 25 APIAddress: "https://172.24.4.6:6443", 26 COEVersion: "v1.2.0", 27 ClusterTemplateID: "0562d357-8641-4759-8fed-8173f02c9633", 28 CreateTimeout: 60, 29 CreatedAt: time.Date(2016, 8, 29, 6, 51, 31, 0, time.UTC), 30 DiscoveryURL: "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", 31 Links: []gophercloud.Link{ 32 { 33 Href: "http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f", 34 Rel: "self", 35 }, 36 { 37 Href: "http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f", 38 Rel: "bookmark", 39 }, 40 }, 41 KeyPair: "my-keypair", 42 MasterAddresses: []string{"172.24.4.6"}, 43 MasterCount: 1, 44 Name: "k8s", 45 NodeAddresses: []string{"172.24.4.13"}, 46 NodeCount: 1, 47 StackID: "9c6f1169-7300-4d08-a444-d2be38758719", 48 Status: "CREATE_COMPLETE", 49 StatusReason: "Stack CREATE completed successfully", 50 UpdatedAt: time.Date(2016, 8, 29, 6, 53, 24, 0, time.UTC), 51 UUID: clusterUUID, 52 FloatingIPEnabled: true, 53 MasterLBEnabled: true, 54 FixedNetwork: "private_network", 55 FixedSubnet: "private_subnet", 56 HealthStatus: "HEALTHY", 57 HealthStatusReason: map[string]any{"api": "ok"}, 58 } 59 60 var ExpectedCluster2 = clusters.Cluster{ 61 APIAddress: "https://172.24.4.6:6443", 62 COEVersion: "v1.2.0", 63 ClusterTemplateID: "0562d357-8641-4759-8fed-8173f02c9633", 64 CreateTimeout: 60, 65 CreatedAt: time.Time{}, 66 DiscoveryURL: "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", 67 Links: []gophercloud.Link{ 68 { 69 Href: "http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f", 70 Rel: "self", 71 }, 72 { 73 Href: "http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f", 74 Rel: "bookmark", 75 }, 76 }, 77 KeyPair: "my-keypair", 78 MasterAddresses: []string{"172.24.4.6"}, 79 MasterCount: 1, 80 Name: "k8s", 81 NodeAddresses: []string{"172.24.4.13"}, 82 NodeCount: 1, 83 StackID: "9c6f1169-7300-4d08-a444-d2be38758719", 84 Status: "CREATE_COMPLETE", 85 StatusReason: "Stack CREATE completed successfully", 86 UpdatedAt: time.Date(2016, 8, 29, 6, 53, 24, 0, time.UTC), 87 UUID: clusterUUID2, 88 FloatingIPEnabled: true, 89 MasterLBEnabled: true, 90 FixedNetwork: "private_network", 91 FixedSubnet: "private_subnet", 92 HealthStatus: "HEALTHY", 93 HealthStatusReason: map[string]any{"api": "ok"}, 94 } 95 96 var ExpectedClusterUUID = clusterUUID 97 98 func HandleCreateClusterSuccessfully(t *testing.T) { 99 th.Mux.HandleFunc("/v1/clusters", func(w http.ResponseWriter, r *http.Request) { 100 th.TestMethod(t, r, "POST") 101 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 102 103 w.Header().Add("Content-Type", "application/json") 104 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 105 w.WriteHeader(http.StatusAccepted) 106 107 fmt.Fprint(w, ClusterCreateResponse) 108 }) 109 } 110 111 func HandleGetClusterSuccessfully(t *testing.T) { 112 th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) { 113 th.TestMethod(t, r, "GET") 114 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 115 116 w.Header().Add("Content-Type", "application/json") 117 w.WriteHeader(http.StatusOK) 118 119 fmt.Fprint(w, ClusterGetResponse) 120 }) 121 } 122 123 var ClusterGetResponse = fmt.Sprintf(` 124 { 125 "status":"CREATE_COMPLETE", 126 "uuid":"%s", 127 "links":[ 128 { 129 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f", 130 "rel":"self" 131 }, 132 { 133 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f", 134 "rel":"bookmark" 135 } 136 ], 137 "stack_id":"9c6f1169-7300-4d08-a444-d2be38758719", 138 "created_at":"2016-08-29T06:51:31+00:00", 139 "api_address":"https://172.24.4.6:6443", 140 "discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", 141 "updated_at":"2016-08-29T06:53:24+00:00", 142 "master_count":1, 143 "coe_version": "v1.2.0", 144 "keypair":"my-keypair", 145 "cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633", 146 "master_addresses":[ 147 "172.24.4.6" 148 ], 149 "node_count":1, 150 "node_addresses":[ 151 "172.24.4.13" 152 ], 153 "status_reason":"Stack CREATE completed successfully", 154 "create_timeout":60, 155 "name":"k8s", 156 "floating_ip_enabled": true, 157 "master_lb_enabled": true, 158 "fixed_network": "private_network", 159 "fixed_subnet": "private_subnet", 160 "health_status": "HEALTHY", 161 "health_status_reason": {"api": "ok"} 162 }`, clusterUUID) 163 164 var ClusterListResponse = fmt.Sprintf(` 165 { 166 "clusters": [ 167 { 168 "api_address":"https://172.24.4.6:6443", 169 "cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633", 170 "coe_version": "v1.2.0", 171 "create_timeout":60, 172 "created_at":"2016-08-29T06:51:31+00:00", 173 "discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", 174 "keypair":"my-keypair", 175 "links":[ 176 { 177 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f", 178 "rel":"self" 179 }, 180 { 181 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f", 182 "rel":"bookmark" 183 } 184 ], 185 "master_addresses":[ 186 "172.24.4.6" 187 ], 188 "master_count":1, 189 "name":"k8s", 190 "node_addresses":[ 191 "172.24.4.13" 192 ], 193 "node_count":1, 194 "stack_id":"9c6f1169-7300-4d08-a444-d2be38758719", 195 "status":"CREATE_COMPLETE", 196 "status_reason":"Stack CREATE completed successfully", 197 "updated_at":"2016-08-29T06:53:24+00:00", 198 "uuid":"%s", 199 "floating_ip_enabled": true, 200 "master_lb_enabled": true, 201 "fixed_network": "private_network", 202 "fixed_subnet": "private_subnet", 203 "health_status": "HEALTHY", 204 "health_status_reason": {"api": "ok"} 205 }, 206 { 207 "api_address":"https://172.24.4.6:6443", 208 "cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633", 209 "coe_version": "v1.2.0", 210 "create_timeout":60, 211 "created_at":null, 212 "discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3", 213 "keypair":"my-keypair", 214 "links":[ 215 { 216 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f", 217 "rel":"self" 218 }, 219 { 220 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f", 221 "rel":"bookmark" 222 } 223 ], 224 "master_addresses":[ 225 "172.24.4.6" 226 ], 227 "master_count":1, 228 "name":"k8s", 229 "node_addresses":[ 230 "172.24.4.13" 231 ], 232 "node_count":1, 233 "stack_id":"9c6f1169-7300-4d08-a444-d2be38758719", 234 "status":"CREATE_COMPLETE", 235 "status_reason":"Stack CREATE completed successfully", 236 "updated_at":null, 237 "uuid":"%s", 238 "floating_ip_enabled": true, 239 "master_lb_enabled": true, 240 "fixed_network": "private_network", 241 "fixed_subnet": "private_subnet", 242 "health_status": "HEALTHY", 243 "health_status_reason": {"api": "ok"} 244 } 245 ] 246 }`, clusterUUID, clusterUUID2) 247 248 var ExpectedClusters = []clusters.Cluster{ExpectedCluster} 249 250 func HandleListClusterSuccessfully(t *testing.T) { 251 th.Mux.HandleFunc("/v1/clusters", func(w http.ResponseWriter, r *http.Request) { 252 th.TestMethod(t, r, "GET") 253 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 254 255 w.Header().Add("Content-Type", "application/json") 256 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 257 w.WriteHeader(http.StatusOK) 258 259 fmt.Fprint(w, ClusterListResponse) 260 }) 261 } 262 263 func HandleListDetailClusterSuccessfully(t *testing.T) { 264 th.Mux.HandleFunc("/v1/clusters/detail", func(w http.ResponseWriter, r *http.Request) { 265 th.TestMethod(t, r, "GET") 266 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 267 268 w.Header().Add("Content-Type", "application/json") 269 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 270 w.WriteHeader(http.StatusOK) 271 272 fmt.Fprint(w, ClusterListResponse) 273 }) 274 } 275 276 var UpdateResponse = fmt.Sprintf(` 277 { 278 "uuid":"%s" 279 }`, clusterUUID) 280 281 func HandleUpdateClusterSuccessfully(t *testing.T) { 282 th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) { 283 th.TestMethod(t, r, "PATCH") 284 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 285 286 w.Header().Add("Content-Type", "application/json") 287 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 288 w.WriteHeader(http.StatusOK) 289 290 fmt.Fprint(w, UpdateResponse) 291 }) 292 } 293 294 var UpgradeResponse = fmt.Sprintf(` 295 { 296 "uuid":"%s" 297 }`, clusterUUID) 298 299 func HandleUpgradeClusterSuccessfully(t *testing.T) { 300 th.Mux.HandleFunc("/v1/clusters/"+clusterUUID+"/actions/upgrade", func(w http.ResponseWriter, r *http.Request) { 301 th.TestMethod(t, r, "POST") 302 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 303 304 w.Header().Add("Content-Type", "application/json") 305 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 306 w.WriteHeader(http.StatusAccepted) 307 308 fmt.Fprint(w, UpgradeResponse) 309 }) 310 } 311 312 func HandleDeleteClusterSuccessfully(t *testing.T) { 313 th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) { 314 th.TestMethod(t, r, "DELETE") 315 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 316 317 w.Header().Add("Content-Type", "application/json") 318 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 319 w.WriteHeader(http.StatusNoContent) 320 }) 321 } 322 323 var ResizeResponse = fmt.Sprintf(` 324 { 325 "uuid": "%s" 326 }`, clusterUUID) 327 328 func HandleResizeClusterSuccessfully(t *testing.T) { 329 th.Mux.HandleFunc("/v1/clusters/"+clusterUUID+"/actions/resize", func(w http.ResponseWriter, r *http.Request) { 330 th.TestMethod(t, r, "POST") 331 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 332 333 w.Header().Add("Content-Type", "application/json") 334 w.Header().Add("X-OpenStack-Request-Id", requestUUID) 335 w.WriteHeader(http.StatusAccepted) 336 337 fmt.Fprint(w, ResizeResponse) 338 }) 339 }