github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/api/container/containerv1/alb_test.go (about) 1 package containerv1 2 3 import ( 4 "log" 5 "net/http" 6 7 bluemix "github.com/IBM-Cloud/bluemix-go" 8 "github.com/IBM-Cloud/bluemix-go/client" 9 bluemixHttp "github.com/IBM-Cloud/bluemix-go/http" 10 "github.com/IBM-Cloud/bluemix-go/session" 11 12 "github.com/onsi/gomega/ghttp" 13 14 . "github.com/onsi/ginkgo" 15 . "github.com/onsi/gomega" 16 ) 17 18 var _ = Describe("Albs", func() { 19 var server *ghttp.Server 20 21 updatePolicy := ALBUpdatePolicy{AutoUpdate: true, LatestVersion: true} 22 AfterEach(func() { 23 server.Close() 24 }) 25 //CreateALB 26 Describe("Create", func() { 27 Context("When alb is created", func() { 28 BeforeEach(func() { 29 server = ghttp.NewServer() 30 server.AppendHandlers( 31 ghttp.CombineHandlers( 32 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/clusters/testCluster/zone/testZone"), 33 ghttp.VerifyJSON(`{"zone":"testZone","vlanID":"testVlan","type":"testType","enableByDefault":true,"ip":"1.2.3.4","nlbVersion":"testnlbVersion","ingressImage":"testingressImage"}`), 34 ghttp.RespondWith(http.StatusCreated, `{"alb":"1234", "cluster":"clusterID"}`), 35 ), 36 ) 37 }) 38 39 It("should create an alb to a cluster", func() { 40 target := ClusterTargetHeader{ 41 OrgID: "abc", 42 SpaceID: "def", 43 AccountID: "ghi", 44 Region: "eu-de", 45 } 46 params := CreateALB{ 47 Zone: "testZone", VlanID: "testVlan", Type: "testType", EnableByDefault: true, IP: "1.2.3.4", NLBVersion: "testnlbVersion", IngressImage: "testingressImage", 48 } 49 50 AlbResp, err := newAlbs(server.URL()).CreateALB(params, "testCluster", target) 51 Expect(AlbResp.Alb).To(Equal("1234")) 52 Expect(AlbResp.Cluster).To(Equal("clusterID")) 53 Expect(err).NotTo(HaveOccurred()) 54 }) 55 }) 56 Context("When creating alb is unsuccessful", func() { 57 BeforeEach(func() { 58 server = ghttp.NewServer() 59 server.SetAllowUnhandledRequests(true) 60 server.AppendHandlers( 61 ghttp.CombineHandlers( 62 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/clusters/testCluster/zone/testZone"), 63 ghttp.VerifyJSON(`{"zone":"testZone","vlanID":"testVlan","type":"testType","enableByDefault":true,"ip":"1.2.3.4","nlbVersion":"testnlbVersion","ingressImage":"testingressImage"}`), 64 ghttp.RespondWith(http.StatusInternalServerError, `Failed to configure alb`), 65 ), 66 ) 67 }) 68 69 It("should return error during creation of alb", func() { 70 params := CreateALB{ 71 Zone: "testZone", VlanID: "testVlan", Type: "testType", EnableByDefault: true, IP: "1.2.3.4", NLBVersion: "testnlbVersion", IngressImage: "testingressImage", 72 } 73 target := ClusterTargetHeader{ 74 OrgID: "abc", 75 SpaceID: "def", 76 AccountID: "ghi", 77 Region: "eu-de", 78 } 79 _, err := newAlbs(server.URL()).CreateALB(params, "testCluster", target) 80 Expect(err).To(HaveOccurred()) 81 }) 82 }) 83 }) 84 85 //Configure 86 Describe("Configure", func() { 87 Context("When configuring alb is successful", func() { 88 BeforeEach(func() { 89 server = ghttp.NewServer() 90 server.AppendHandlers( 91 ghttp.CombineHandlers( 92 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/albs"), 93 ghttp.VerifyJSON(`{"albID":"123","clusterID":"345","name":"test","albType":"public","enable":true,"state":"active","createdDate":"","numOfInstances":"1","resize":false,"albip":"169.0.0.1","zone": "ams03","disableDeployment":false,"albBuild":"1.1.1_123","vlanID":"12345","status":"healthy"}`), 94 ghttp.RespondWith(http.StatusCreated, `{}`), 95 ), 96 ) 97 }) 98 99 It("should configure alb to a cluster", func() { 100 target := ClusterTargetHeader{ 101 OrgID: "abc", 102 SpaceID: "def", 103 AccountID: "ghi", 104 Region: "eu-de", 105 } 106 params := ALBConfig{ 107 ALBID: "123", ClusterID: "345", Name: "test", ALBType: "public", Enable: true, State: "active", CreatedDate: "", NumOfInstances: "1", Resize: false, ALBIP: "169.0.0.1", Zone: "ams03", DisableDeployment: false, VlanID: "12345", ALBBuild: "1.1.1_123", Status: "healthy", 108 } 109 err := newAlbs(server.URL()).ConfigureALB("123", params, false, target) 110 Expect(err).NotTo(HaveOccurred()) 111 }) 112 }) 113 Context("When configuring alb is unsuccessful", func() { 114 BeforeEach(func() { 115 server = ghttp.NewServer() 116 server.SetAllowUnhandledRequests(true) 117 server.AppendHandlers( 118 ghttp.CombineHandlers( 119 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/albs"), 120 ghttp.VerifyJSON(`{"albID":"123","clusterID":"345","name":"test","albType":"public","enable":true,"state":"active","createdDate":"","numOfInstances":"1","resize":false,"albip":"169.0.0.1","zone": "ams03","disableDeployment":false,"albBuild":"1.1.1_123","vlanID":"12345","status":"healthy"} 121 `), 122 ghttp.RespondWith(http.StatusInternalServerError, `Failed to configure alb`), 123 ), 124 ) 125 }) 126 127 It("should return error during configuring alb", func() { 128 params := ALBConfig{ 129 ALBID: "123", ClusterID: "345", Name: "test", ALBType: "public", Enable: true, State: "active", CreatedDate: "", NumOfInstances: "1", Resize: false, ALBIP: "169.0.0.1", Zone: "ams03", DisableDeployment: false, VlanID: "12345", ALBBuild: "1.1.1_123", Status: "healthy", 130 } 131 target := ClusterTargetHeader{ 132 OrgID: "abc", 133 SpaceID: "def", 134 AccountID: "ghi", 135 Region: "eu-de", 136 } 137 err := newAlbs(server.URL()).ConfigureALB("123", params, false, target) 138 Expect(err).To(HaveOccurred()) 139 }) 140 }) 141 }) 142 143 //ListClusterALBs 144 Describe("List cluster albs", func() { 145 Context("When read of cluster albs is successful", func() { 146 BeforeEach(func() { 147 server = ghttp.NewServer() 148 server.AppendHandlers( 149 ghttp.CombineHandlers( 150 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test"), 151 ghttp.RespondWith(http.StatusOK, ` 152 { 153 "alb": [ 154 { 155 "albID": "string", 156 "albType": "string", 157 "albip": "string", 158 "clusterID": "string", 159 "createdDate": "string", 160 "enable": true, 161 "name": "string", 162 "numOfInstances": "string", 163 "resize": true, 164 "state": "string", 165 "zone": "string", 166 "disableDeployment":false 167 } 168 ], 169 "dataCenter": "string", 170 "id": "string", 171 "ingressHostname": "string", 172 "ingressSecretName": "string", 173 "isPaid": true, 174 "region": "string" 175 } 176 `), 177 ), 178 ) 179 }) 180 181 It("should return cluster albs list", func() { 182 target := ClusterTargetHeader{ 183 OrgID: "abc", 184 SpaceID: "def", 185 AccountID: "ghi", 186 Region: "eu-de", 187 } 188 albs, err := newAlbs(server.URL()).ListClusterALBs("test", target) 189 Expect(albs).ShouldNot(BeNil()) 190 Expect(err).NotTo(HaveOccurred()) 191 }) 192 }) 193 Context("When read of cluster albs is unsuccessful", func() { 194 BeforeEach(func() { 195 server = ghttp.NewServer() 196 server.SetAllowUnhandledRequests(true) 197 server.AppendHandlers( 198 ghttp.CombineHandlers( 199 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test"), 200 ghttp.RespondWith(http.StatusInternalServerError, `Failed to retrieve albs`), 201 ), 202 ) 203 }) 204 205 It("should return error when cluster albs are retrieved", func() { 206 target := ClusterTargetHeader{ 207 OrgID: "abc", 208 SpaceID: "def", 209 AccountID: "ghi", 210 Region: "eu-de", 211 } 212 albs, err := newAlbs(server.URL()).ListClusterALBs("test", target) 213 Expect(err).To(HaveOccurred()) 214 Expect(albs).Should(BeNil()) 215 }) 216 }) 217 }) 218 //GetAlb 219 Describe("Get cluster alb", func() { 220 Context("When read of cluster alb is successful", func() { 221 BeforeEach(func() { 222 server = ghttp.NewServer() 223 server.AppendHandlers( 224 ghttp.CombineHandlers( 225 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/albs/testAlb"), 226 ghttp.RespondWith(http.StatusOK, `{"albID":"123","clusterID":"345","name":"test","albType":"public","enable":true,"state":"active","createdDate":"","numOfInstances":"1","resize":false,"albip":"169.0.0.1","zone": "ams03","disableDeployment":false}`), 227 ), 228 ) 229 }) 230 231 It("should return albs", func() { 232 target := ClusterTargetHeader{ 233 OrgID: "abc", 234 SpaceID: "def", 235 AccountID: "ghi", 236 Region: "eu-de", 237 } 238 alb, err := newAlbs(server.URL()).GetALB("testAlb", target) 239 Expect(alb).ShouldNot(BeNil()) 240 Expect(err).NotTo(HaveOccurred()) 241 }) 242 }) 243 Context("When read of cluster alb is unsuccessful", func() { 244 BeforeEach(func() { 245 server = ghttp.NewServer() 246 server.SetAllowUnhandledRequests(true) 247 server.AppendHandlers( 248 ghttp.CombineHandlers( 249 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/albs/testAlb"), 250 ghttp.RespondWith(http.StatusInternalServerError, `Failed to retrieve alb.`), 251 ), 252 ) 253 }) 254 255 It("should return error when alb are retrieved", func() { 256 target := ClusterTargetHeader{ 257 OrgID: "abc", 258 SpaceID: "def", 259 AccountID: "ghi", 260 Region: "eu-de", 261 } 262 _, err := newAlbs(server.URL()).GetALB("testAlb", target) 263 Expect(err).To(HaveOccurred()) 264 }) 265 }) 266 }) 267 //Deploy Alb cert 268 Describe("Deploy Alb cert", func() { 269 Context("When deploying alb cert is successful", func() { 270 BeforeEach(func() { 271 server = ghttp.NewServer() 272 server.AppendHandlers( 273 ghttp.CombineHandlers( 274 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/albsecrets"), 275 ghttp.VerifyJSON(`{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"} 276 `), 277 ghttp.RespondWith(http.StatusCreated, `{}`), 278 ), 279 ) 280 }) 281 282 It("should deploy alb to a cluster", func() { 283 params := ALBSecretConfig{ 284 SecretName: "test", ClusterID: "345", DomainName: "testDomain", CloudCertInstanceID: "456", ClusterCrn: "crn::cluster", CertCrn: "crn::cert", IssuerName: "testissue", ExpiresOn: "", State: "active", 285 } 286 target := ClusterTargetHeader{ 287 OrgID: "abc", 288 SpaceID: "def", 289 AccountID: "ghi", 290 Region: "eu-de", 291 } 292 err := newAlbs(server.URL()).DeployALBCert(params, target) 293 Expect(err).NotTo(HaveOccurred()) 294 }) 295 }) 296 Context("When deploying alb cert is unsuccessful", func() { 297 BeforeEach(func() { 298 server = ghttp.NewServer() 299 server.SetAllowUnhandledRequests(true) 300 server.AppendHandlers( 301 ghttp.CombineHandlers( 302 ghttp.VerifyRequest(http.MethodPost, "/v1/alb/albsecrets"), 303 ghttp.VerifyJSON(`{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"} 304 `), 305 ghttp.RespondWith(http.StatusInternalServerError, `Failed to deploy alb cert`), 306 ), 307 ) 308 }) 309 310 It("should return error during deploying alb cert", func() { 311 params := ALBSecretConfig{ 312 SecretName: "test", ClusterID: "345", DomainName: "testDomain", CloudCertInstanceID: "456", ClusterCrn: "crn::cluster", CertCrn: "crn::cert", IssuerName: "testissue", ExpiresOn: "", State: "active", 313 } 314 target := ClusterTargetHeader{ 315 OrgID: "abc", 316 SpaceID: "def", 317 AccountID: "ghi", 318 Region: "eu-de", 319 } 320 err := newAlbs(server.URL()).DeployALBCert(params, target) 321 Expect(err).To(HaveOccurred()) 322 }) 323 }) 324 }) 325 //UpdateALBCert 326 Describe("Update Alb cert", func() { 327 Context("When updating alb cert is successful", func() { 328 BeforeEach(func() { 329 server = ghttp.NewServer() 330 server.AppendHandlers( 331 ghttp.CombineHandlers( 332 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/albsecrets"), 333 ghttp.VerifyJSON(`{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"} 334 `), 335 ghttp.RespondWith(http.StatusNoContent, `{}`), 336 ), 337 ) 338 }) 339 340 It("should deploy alb to a cluster", func() { 341 params := ALBSecretConfig{ 342 SecretName: "test", ClusterID: "345", DomainName: "testDomain", CloudCertInstanceID: "456", ClusterCrn: "crn::cluster", CertCrn: "crn::cert", IssuerName: "testissue", ExpiresOn: "", State: "active", 343 } 344 target := ClusterTargetHeader{ 345 OrgID: "abc", 346 SpaceID: "def", 347 AccountID: "ghi", 348 Region: "eu-de", 349 } 350 err := newAlbs(server.URL()).UpdateALBCert(params, target) 351 Expect(err).NotTo(HaveOccurred()) 352 }) 353 }) 354 Context("When deploying alb cert is unsuccessful", func() { 355 BeforeEach(func() { 356 server = ghttp.NewServer() 357 server.SetAllowUnhandledRequests(true) 358 server.AppendHandlers( 359 ghttp.CombineHandlers( 360 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/albsecrets"), 361 ghttp.VerifyJSON(`{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"} 362 `), 363 ghttp.RespondWith(http.StatusInternalServerError, `Failed to update alb cert`), 364 ), 365 ) 366 }) 367 368 It("should return error during deploying alb cert", func() { 369 params := ALBSecretConfig{ 370 SecretName: "test", ClusterID: "345", DomainName: "testDomain", CloudCertInstanceID: "456", ClusterCrn: "crn::cluster", CertCrn: "crn::cert", IssuerName: "testissue", ExpiresOn: "", State: "active", 371 } 372 target := ClusterTargetHeader{ 373 OrgID: "abc", 374 SpaceID: "def", 375 AccountID: "ghi", 376 Region: "eu-de", 377 } 378 err := newAlbs(server.URL()).UpdateALBCert(params, target) 379 Expect(err).To(HaveOccurred()) 380 }) 381 }) 382 }) 383 //ListALBCerts 384 Describe("Get cluster alb certs", func() { 385 Context("When read of cluster alb certs is successful", func() { 386 BeforeEach(func() { 387 server = ghttp.NewServer() 388 server.AppendHandlers( 389 ghttp.CombineHandlers( 390 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 391 ghttp.RespondWith(http.StatusOK, `{"id":"123","region":"eu-de","dataCenter":"ams03","isPaid":true,"albSecrets":[{"secretName":"test","clusterID":"test","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"string","state":"active"}]}`), 392 ), 393 ) 394 }) 395 396 It("should return cluster alb certs list", func() { 397 target := ClusterTargetHeader{ 398 OrgID: "abc", 399 SpaceID: "def", 400 AccountID: "ghi", 401 Region: "eu-de", 402 } 403 albCerts, err := newAlbs(server.URL()).ListALBCerts("test", target) 404 Expect(albCerts).ShouldNot(BeNil()) 405 Expect(err).NotTo(HaveOccurred()) 406 }) 407 }) 408 Context("When read of cluster alb certs is unsuccessful", func() { 409 BeforeEach(func() { 410 server = ghttp.NewServer() 411 server.SetAllowUnhandledRequests(true) 412 server.AppendHandlers( 413 ghttp.CombineHandlers( 414 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 415 ghttp.RespondWith(http.StatusInternalServerError, `Failed to retrieve alb certs`), 416 ), 417 ) 418 }) 419 420 It("should return error when cluster alb certss are retrieved", func() { 421 target := ClusterTargetHeader{ 422 OrgID: "abc", 423 SpaceID: "def", 424 AccountID: "ghi", 425 Region: "eu-de", 426 } 427 albs, err := newAlbs(server.URL()).ListALBCerts("test", target) 428 Expect(err).To(HaveOccurred()) 429 Expect(albs).Should(BeNil()) 430 }) 431 }) 432 }) 433 //GetClusterALBCertBySecretName 434 Describe("Get cluster alb cert", func() { 435 Context("When read of cluster alb cert is successful", func() { 436 BeforeEach(func() { 437 server = ghttp.NewServer() 438 server.AppendHandlers( 439 ghttp.CombineHandlers( 440 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 441 ghttp.RespondWith(http.StatusOK, `{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"}`), 442 ), 443 ) 444 }) 445 446 It("should return albs", func() { 447 target := ClusterTargetHeader{ 448 OrgID: "abc", 449 SpaceID: "def", 450 AccountID: "ghi", 451 Region: "eu-de", 452 } 453 alb, err := newAlbs(server.URL()).GetClusterALBCertBySecretName("test", "testSecret", target) 454 Expect(alb).ShouldNot(BeNil()) 455 Expect(err).NotTo(HaveOccurred()) 456 }) 457 }) 458 Context("When read of cluster alb cert is unsuccessful", func() { 459 BeforeEach(func() { 460 server = ghttp.NewServer() 461 server.SetAllowUnhandledRequests(true) 462 server.AppendHandlers( 463 ghttp.CombineHandlers( 464 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 465 ghttp.RespondWith(http.StatusInternalServerError, `Failed to retrieve alb cert.`), 466 ), 467 ) 468 }) 469 470 It("should return error when alb cert are retrieved", func() { 471 target := ClusterTargetHeader{ 472 OrgID: "abc", 473 SpaceID: "def", 474 AccountID: "ghi", 475 Region: "eu-de", 476 } 477 _, err := newAlbs(server.URL()).GetClusterALBCertBySecretName("test", "testSecret", target) 478 Expect(err).To(HaveOccurred()) 479 }) 480 }) 481 }) 482 //GetClusterALBCertByCertCRN 483 Describe("Get cluster alb cert", func() { 484 Context("When read of cluster alb cert is successful", func() { 485 BeforeEach(func() { 486 server = ghttp.NewServer() 487 server.AppendHandlers( 488 ghttp.CombineHandlers( 489 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 490 ghttp.RespondWith(http.StatusOK, `{"secretName":"test","clusterID":"345","domainName":"testDomain","cloudCertInstanceID":"456","clusterCrn":"crn::cluster","certCrn":"crn::cert","issuerName":"testissue","expiresOn":"","state":"active"}`), 491 ), 492 ) 493 }) 494 495 It("should return albs", func() { 496 target := ClusterTargetHeader{ 497 OrgID: "abc", 498 SpaceID: "def", 499 AccountID: "ghi", 500 Region: "eu-de", 501 } 502 alb, err := newAlbs(server.URL()).GetClusterALBCertByCertCRN("test", "testCert", target) 503 Expect(alb).ShouldNot(BeNil()) 504 Expect(err).NotTo(HaveOccurred()) 505 }) 506 }) 507 Context("When read of cluster alb cert is unsuccessful", func() { 508 BeforeEach(func() { 509 server = ghttp.NewServer() 510 server.SetAllowUnhandledRequests(true) 511 server.AppendHandlers( 512 ghttp.CombineHandlers( 513 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/test/albsecrets"), 514 ghttp.RespondWith(http.StatusInternalServerError, `Failed to retrieve alb cert.`), 515 ), 516 ) 517 }) 518 519 It("should return error when alb cert are retrieved", func() { 520 target := ClusterTargetHeader{ 521 OrgID: "abc", 522 SpaceID: "def", 523 AccountID: "ghi", 524 Region: "eu-de", 525 } 526 _, err := newAlbs(server.URL()).GetClusterALBCertByCertCRN("test", "testCert", target) 527 Expect(err).To(HaveOccurred()) 528 }) 529 }) 530 }) 531 //RemoveALB 532 Describe("Delete", func() { 533 Context("When delete of alb is successful", func() { 534 BeforeEach(func() { 535 server = ghttp.NewServer() 536 server.AppendHandlers( 537 ghttp.CombineHandlers( 538 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/albs/test"), 539 ghttp.RespondWith(http.StatusOK, `{ 540 }`), 541 ), 542 ) 543 }) 544 545 It("should delete alb", func() { 546 target := ClusterTargetHeader{ 547 OrgID: "abc", 548 SpaceID: "def", 549 AccountID: "ghi", 550 Region: "eu-de", 551 } 552 553 err := newAlbs(server.URL()).RemoveALB("test", target) 554 Expect(err).NotTo(HaveOccurred()) 555 }) 556 }) 557 Context("When alb delete is failed", func() { 558 BeforeEach(func() { 559 server = ghttp.NewServer() 560 server.SetAllowUnhandledRequests(true) 561 server.AppendHandlers( 562 ghttp.CombineHandlers( 563 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/albs/test"), 564 ghttp.RespondWith(http.StatusInternalServerError, `Failed to delete alb`), 565 ), 566 ) 567 }) 568 569 It("should return error alb delete", func() { 570 target := ClusterTargetHeader{ 571 OrgID: "abc", 572 SpaceID: "def", 573 AccountID: "ghi", 574 Region: "eu-de", 575 } 576 err := newAlbs(server.URL()).RemoveALB("test", target) 577 Expect(err).To(HaveOccurred()) 578 }) 579 }) 580 }) 581 //RemoveALBCertBySecretName 582 Describe("Delete", func() { 583 Context("When delete of alb cert is successful", func() { 584 BeforeEach(func() { 585 server = ghttp.NewServer() 586 server.AppendHandlers( 587 ghttp.CombineHandlers( 588 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/clusters/mycluster/albsecrets"), 589 ghttp.RespondWith(http.StatusOK, `{ 590 }`), 591 ), 592 ) 593 }) 594 595 It("should delete alb cert", func() { 596 target := ClusterTargetHeader{ 597 OrgID: "abc", 598 SpaceID: "def", 599 AccountID: "ghi", 600 Region: "eu-de", 601 } 602 err := newAlbs(server.URL()).RemoveALBCertBySecretName("mycluster", "test", target) 603 Expect(err).NotTo(HaveOccurred()) 604 }) 605 }) 606 Context("When alb cert delete is failed", func() { 607 BeforeEach(func() { 608 server = ghttp.NewServer() 609 server.SetAllowUnhandledRequests(true) 610 server.AppendHandlers( 611 ghttp.CombineHandlers( 612 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/clusters/mycluster/albsecrets"), 613 ghttp.RespondWith(http.StatusInternalServerError, `Failed to delete alb`), 614 ), 615 ) 616 }) 617 618 It("should return error alb cert delete", func() { 619 target := ClusterTargetHeader{ 620 OrgID: "abc", 621 SpaceID: "def", 622 AccountID: "ghi", 623 Region: "eu-de", 624 } 625 err := newAlbs(server.URL()).RemoveALBCertBySecretName("mycluster", "test", target) 626 Expect(err).To(HaveOccurred()) 627 }) 628 }) 629 }) 630 //RemoveALBCertByCertCRN 631 Describe("Delete", func() { 632 Context("When delete of alb cert is successful", func() { 633 BeforeEach(func() { 634 server = ghttp.NewServer() 635 server.AppendHandlers( 636 ghttp.CombineHandlers( 637 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/clusters/mycluster/albsecrets"), 638 ghttp.RespondWith(http.StatusOK, `{ 639 }`), 640 ), 641 ) 642 }) 643 644 It("should delete alb cert", func() { 645 target := ClusterTargetHeader{ 646 OrgID: "abc", 647 SpaceID: "def", 648 AccountID: "ghi", 649 Region: "eu-de", 650 } 651 err := newAlbs(server.URL()).RemoveALBCertByCertCRN("mycluster", "test", target) 652 Expect(err).NotTo(HaveOccurred()) 653 }) 654 }) 655 Context("When alb cert delete is failed", func() { 656 BeforeEach(func() { 657 server = ghttp.NewServer() 658 server.SetAllowUnhandledRequests(true) 659 server.AppendHandlers( 660 ghttp.CombineHandlers( 661 ghttp.VerifyRequest(http.MethodDelete, "/v1/alb/clusters/mycluster/albsecrets"), 662 ghttp.RespondWith(http.StatusInternalServerError, `Failed to delete alb`), 663 ), 664 ) 665 }) 666 667 It("should return error alb cert delete", func() { 668 target := ClusterTargetHeader{ 669 OrgID: "abc", 670 SpaceID: "def", 671 AccountID: "ghi", 672 Region: "eu-de", 673 } 674 err := newAlbs(server.URL()).RemoveALBCertByCertCRN("mycluster", "test", target) 675 Expect(err).To(HaveOccurred()) 676 }) 677 }) 678 }) 679 //GetALBUpdatePolicy 680 Describe("Get alb update policy", func() { 681 Context("When read of alb update policy is successful", func() { 682 BeforeEach(func() { 683 server = ghttp.NewServer() 684 server.AppendHandlers( 685 ghttp.CombineHandlers( 686 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/testCluster/updatepolicy"), 687 ghttp.RespondWith(http.StatusOK, `{"autoUpdate": true,"latestVersion": true}`), 688 ), 689 ) 690 }) 691 692 It("should return enabled autoupdate", func() { 693 target := ClusterTargetHeader{ 694 OrgID: "abc", 695 SpaceID: "def", 696 AccountID: "ghi", 697 Region: "eu-de", 698 } 699 updatePolicyResp, err := newAlbs(server.URL()).GetALBUpdatePolicy("testCluster", target) 700 Expect(updatePolicyResp).ShouldNot(BeNil()) 701 Expect(updatePolicyResp).Should(Equal(updatePolicy)) 702 Expect(err).NotTo(HaveOccurred()) 703 }) 704 }) 705 Context("When read of alb update policy is failed", func() { 706 BeforeEach(func() { 707 server = ghttp.NewServer() 708 server.SetAllowUnhandledRequests(true) 709 server.AppendHandlers( 710 ghttp.CombineHandlers( 711 ghttp.VerifyRequest(http.MethodGet, "/v1/alb/clusters/testCluster/updatepolicy"), 712 ghttp.RespondWith(http.StatusInternalServerError, `Failed to get alb update policy`), 713 ), 714 ) 715 }) 716 717 It("should return error when alb update policy get", func() { 718 target := ClusterTargetHeader{ 719 OrgID: "abc", 720 SpaceID: "def", 721 AccountID: "ghi", 722 Region: "eu-de", 723 } 724 _, err := newAlbs(server.URL()).GetALBUpdatePolicy("testCluster", target) 725 Expect(err).To(HaveOccurred()) 726 }) 727 }) 728 }) 729 //ChangeALBUpdatePolicy 730 Describe("Change alb update policy", func() { 731 Context("When change alb update policy is successful", func() { 732 BeforeEach(func() { 733 server = ghttp.NewServer() 734 server.AppendHandlers( 735 ghttp.CombineHandlers( 736 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/clusters/testCluster/updatepolicy"), 737 ghttp.RespondWith(http.StatusOK, ``), 738 ), 739 ) 740 }) 741 742 It("should enable autoupdate", func() { 743 target := ClusterTargetHeader{ 744 OrgID: "abc", 745 SpaceID: "def", 746 AccountID: "ghi", 747 Region: "eu-de", 748 } 749 err := newAlbs(server.URL()).ChangeALBUpdatePolicy("testCluster", updatePolicy, target) 750 Expect(err).NotTo(HaveOccurred()) 751 }) 752 }) 753 Context("When change of alb update policy is failed", func() { 754 BeforeEach(func() { 755 server = ghttp.NewServer() 756 server.SetAllowUnhandledRequests(true) 757 server.AppendHandlers( 758 ghttp.CombineHandlers( 759 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/clusters/testCluster/updatepolicy"), 760 ghttp.RespondWith(http.StatusInternalServerError, `Failed to set alb update policy`), 761 ), 762 ) 763 }) 764 765 It("should return error when alb update policy set", func() { 766 target := ClusterTargetHeader{ 767 OrgID: "abc", 768 SpaceID: "def", 769 AccountID: "ghi", 770 Region: "eu-de", 771 } 772 err := newAlbs(server.URL()).ChangeALBUpdatePolicy("testCluster", updatePolicy, target) 773 Expect(err).To(HaveOccurred()) 774 }) 775 }) 776 }) 777 //UpdateALBs 778 Describe("Update ALBs", func() { 779 Context("When change force ALB update", func() { 780 BeforeEach(func() { 781 server = ghttp.NewServer() 782 server.AppendHandlers( 783 ghttp.CombineHandlers( 784 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/clusters/testCluster/update"), 785 ghttp.RespondWith(http.StatusOK, ``), 786 ), 787 ) 788 }) 789 790 It("should update ALBs", func() { 791 target := ClusterTargetHeader{ 792 OrgID: "abc", 793 SpaceID: "def", 794 AccountID: "ghi", 795 Region: "eu-de", 796 } 797 err := newAlbs(server.URL()).UpdateALBs("testCluster", target) 798 Expect(err).NotTo(HaveOccurred()) 799 }) 800 }) 801 Context("When update ALBs is failed", func() { 802 BeforeEach(func() { 803 server = ghttp.NewServer() 804 server.SetAllowUnhandledRequests(true) 805 server.AppendHandlers( 806 ghttp.CombineHandlers( 807 ghttp.VerifyRequest(http.MethodPut, "/v1/alb/clusters/testCluster/update"), 808 ghttp.RespondWith(http.StatusInternalServerError, `Failed to update ALBs`), 809 ), 810 ) 811 }) 812 813 It("should return error when update ALBs", func() { 814 target := ClusterTargetHeader{ 815 OrgID: "abc", 816 SpaceID: "def", 817 AccountID: "ghi", 818 Region: "eu-de", 819 } 820 err := newAlbs(server.URL()).UpdateALBs("testCluster", target) 821 Expect(err).To(HaveOccurred()) 822 }) 823 }) 824 }) 825 826 }) 827 828 func newAlbs(url string) Albs { 829 830 sess, err := session.New() 831 if err != nil { 832 log.Fatal(err) 833 } 834 conf := sess.Config.Copy() 835 conf.HTTPClient = bluemixHttp.NewHTTPClient(conf) 836 conf.Endpoint = &url 837 838 client := client.Client{ 839 Config: conf, 840 ServiceName: bluemix.MccpService, 841 } 842 return newAlbAPI(&client) 843 }