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