|
9 | 9 | "time"
|
10 | 10 |
|
11 | 11 | cfold "github.com/cloudflare/cloudflare-go"
|
12 |
| - "github.com/cloudflare/cloudflare-go/v4" |
13 | 12 | "github.com/cloudflare/cloudflare-go/v4/load_balancers"
|
14 | 13 | "github.com/cloudflare/terraform-provider-cloudflare/internal/acctest"
|
15 | 14 | "github.com/cloudflare/terraform-provider-cloudflare/internal/consts"
|
@@ -487,6 +486,237 @@ func TestAccCloudflareLoadBalancer_LeastConnectionsBalanced(t *testing.T) {
|
487 | 486 | })
|
488 | 487 | }
|
489 | 488 |
|
| 489 | +func TestAccCloudflareLoadBalancer_Account(t *testing.T) { |
| 490 | + var loadBalancer cfold.LoadBalancer |
| 491 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 492 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 493 | + rnd := utils.GenerateRandomResourceName() |
| 494 | + name := "cloudflare_load_balancer." + rnd |
| 495 | + |
| 496 | + resource.Test(t, resource.TestCase{ |
| 497 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 498 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 499 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 500 | + Steps: []resource.TestStep{ { |
| 501 | + Config: testAccCheckCloudflareLoadBalancerConfigAccount(zoneID, zone, rnd), |
| 502 | + Check: resource.ComposeTestCheckFunc( |
| 503 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 504 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 505 | + ), |
| 506 | + } }, |
| 507 | + }) |
| 508 | +} |
| 509 | + |
| 510 | +func TestAccCloudflareLoadBalancer_AdaptiveRoutingFailoverFalse(t *testing.T) { |
| 511 | + var loadBalancer cfold.LoadBalancer |
| 512 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 513 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 514 | + rnd := utils.GenerateRandomResourceName() |
| 515 | + name := "cloudflare_load_balancer." + rnd |
| 516 | + |
| 517 | + resource.Test(t, resource.TestCase{ |
| 518 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 519 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 520 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 521 | + Steps: []resource.TestStep{ { |
| 522 | + Config: testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverFalse(zoneID, zone, rnd), |
| 523 | + Check: resource.ComposeTestCheckFunc( |
| 524 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 525 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 526 | + ), |
| 527 | + } }, |
| 528 | + }) |
| 529 | +} |
| 530 | + |
| 531 | +func TestAccCloudflareLoadBalancer_AdaptiveRoutingFailoverTrue(t *testing.T) { |
| 532 | + var loadBalancer cfold.LoadBalancer |
| 533 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 534 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 535 | + rnd := utils.GenerateRandomResourceName() |
| 536 | + name := "cloudflare_load_balancer." + rnd |
| 537 | + |
| 538 | + resource.Test(t, resource.TestCase{ |
| 539 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 540 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 541 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 542 | + Steps: []resource.TestStep{ { |
| 543 | + Config: testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverTrue(zoneID, zone, rnd), |
| 544 | + Check: resource.ComposeTestCheckFunc( |
| 545 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 546 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 547 | + ), |
| 548 | + } }, |
| 549 | + }) |
| 550 | +} |
| 551 | + |
| 552 | +func TestAccCloudflareLoadBalancer_CountryPools(t *testing.T) { |
| 553 | + var loadBalancer cfold.LoadBalancer |
| 554 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 555 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 556 | + rnd := utils.GenerateRandomResourceName() |
| 557 | + name := "cloudflare_load_balancer." + rnd |
| 558 | + |
| 559 | + resource.Test(t, resource.TestCase{ |
| 560 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 561 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 562 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 563 | + Steps: []resource.TestStep{ { |
| 564 | + Config: testAccCheckCloudflareLoadBalancerConfigCountryPools(zoneID, zone, rnd), |
| 565 | + Check: resource.ComposeTestCheckFunc( |
| 566 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 567 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 568 | + ), |
| 569 | + } }, |
| 570 | + }) |
| 571 | +} |
| 572 | + |
| 573 | +func TestAccCloudflareLoadBalancer_CustomLocationStrategy(t *testing.T) { |
| 574 | + var loadBalancer cfold.LoadBalancer |
| 575 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 576 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 577 | + rnd := utils.GenerateRandomResourceName() |
| 578 | + name := "cloudflare_load_balancer." + rnd |
| 579 | + |
| 580 | + resource.Test(t, resource.TestCase{ |
| 581 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 582 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 583 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 584 | + Steps: []resource.TestStep{ { |
| 585 | + Config: testAccCheckCloudflareLoadBalancerConfigCustomLocationStrategy(zoneID, zone, rnd), |
| 586 | + Check: resource.ComposeTestCheckFunc( |
| 587 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 588 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 589 | + ), |
| 590 | + } }, |
| 591 | + }) |
| 592 | +} |
| 593 | + |
| 594 | +func TestAccCloudflareLoadBalancer_CustomPort(t *testing.T) { |
| 595 | + var loadBalancer cfold.LoadBalancer |
| 596 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 597 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 598 | + rnd := utils.GenerateRandomResourceName() |
| 599 | + name := "cloudflare_load_balancer." + rnd |
| 600 | + |
| 601 | + resource.Test(t, resource.TestCase{ |
| 602 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 603 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 604 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 605 | + Steps: []resource.TestStep{ { |
| 606 | + Config: testAccCheckCloudflareLoadBalancerConfigCustomPort(zoneID, zone, rnd), |
| 607 | + Check: resource.ComposeTestCheckFunc( |
| 608 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 609 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 610 | + ), |
| 611 | + } }, |
| 612 | + }) |
| 613 | +} |
| 614 | + |
| 615 | +func TestAccCloudflareLoadBalancer_CustomSessionAffinityAttributes(t *testing.T) { |
| 616 | + var loadBalancer cfold.LoadBalancer |
| 617 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 618 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 619 | + rnd := utils.GenerateRandomResourceName() |
| 620 | + name := "cloudflare_load_balancer." + rnd |
| 621 | + |
| 622 | + resource.Test(t, resource.TestCase{ |
| 623 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 624 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 625 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 626 | + Steps: []resource.TestStep{ { |
| 627 | + Config: testAccCheckCloudflareLoadBalancerConfigCustomSessionAffinityAttributes(zoneID, zone, rnd), |
| 628 | + Check: resource.ComposeTestCheckFunc( |
| 629 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 630 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 631 | + ), |
| 632 | + } }, |
| 633 | + }) |
| 634 | +} |
| 635 | + |
| 636 | +func TestAccCloudflareLoadBalancer_CustomTTL(t *testing.T) { |
| 637 | + var loadBalancer cfold.LoadBalancer |
| 638 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 639 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 640 | + rnd := utils.GenerateRandomResourceName() |
| 641 | + name := "cloudflare_load_balancer." + rnd |
| 642 | + |
| 643 | + resource.Test(t, resource.TestCase{ |
| 644 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 645 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 646 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 647 | + Steps: []resource.TestStep{ { |
| 648 | + Config: testAccCheckCloudflareLoadBalancerConfigCustomTTL(zoneID, zone, rnd), |
| 649 | + Check: resource.ComposeTestCheckFunc( |
| 650 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 651 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 652 | + ), |
| 653 | + } }, |
| 654 | + }) |
| 655 | +} |
| 656 | + |
| 657 | +func TestAccCloudflareLoadBalancer_LocationStrategyAlwaysResolverIP(t *testing.T) { |
| 658 | + var loadBalancer cfold.LoadBalancer |
| 659 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 660 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 661 | + rnd := utils.GenerateRandomResourceName() |
| 662 | + name := "cloudflare_load_balancer." + rnd |
| 663 | + |
| 664 | + resource.Test(t, resource.TestCase{ |
| 665 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 666 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 667 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 668 | + Steps: []resource.TestStep{ { |
| 669 | + Config: testAccCheckCloudflareLoadBalancerConfigLocationStrategyAlwaysResolverIP(zoneID, zone, rnd), |
| 670 | + Check: resource.ComposeTestCheckFunc( |
| 671 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 672 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 673 | + ), |
| 674 | + } }, |
| 675 | + }) |
| 676 | +} |
| 677 | + |
| 678 | +func TestAccCloudflareLoadBalancer_LocationStrategyNeverPop(t *testing.T) { |
| 679 | + var loadBalancer cfold.LoadBalancer |
| 680 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 681 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 682 | + rnd := utils.GenerateRandomResourceName() |
| 683 | + name := "cloudflare_load_balancer." + rnd |
| 684 | + |
| 685 | + resource.Test(t, resource.TestCase{ |
| 686 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 687 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 688 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 689 | + Steps: []resource.TestStep{ { |
| 690 | + Config: testAccCheckCloudflareLoadBalancerConfigLocationStrategyNeverPop(zoneID, zone, rnd), |
| 691 | + Check: resource.ComposeTestCheckFunc( |
| 692 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 693 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 694 | + ), |
| 695 | + } }, |
| 696 | + }) |
| 697 | +} |
| 698 | + |
| 699 | +func TestAccCloudflareLoadBalancer_StandardZone(t *testing.T) { |
| 700 | + var loadBalancer cfold.LoadBalancer |
| 701 | + zone := os.Getenv("CLOUDFLARE_DOMAIN") |
| 702 | + zoneID := os.Getenv("CLOUDFLARE_ZONE_ID") |
| 703 | + rnd := utils.GenerateRandomResourceName() |
| 704 | + name := "cloudflare_load_balancer." + rnd |
| 705 | + |
| 706 | + resource.Test(t, resource.TestCase{ |
| 707 | + PreCheck: func() { acctest.TestAccPreCheck(t) }, |
| 708 | + ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories, |
| 709 | + CheckDestroy: testAccCheckCloudflareLoadBalancerDestroy, |
| 710 | + Steps: []resource.TestStep{ { |
| 711 | + Config: testAccCheckCloudflareLoadBalancerConfigStandardZone(zoneID, zone, rnd), |
| 712 | + Check: resource.ComposeTestCheckFunc( |
| 713 | + testAccCheckCloudflareLoadBalancerExists(name, &loadBalancer), |
| 714 | + testAccCheckCloudflareLoadBalancerIDIsValid(name, zoneID), |
| 715 | + ), |
| 716 | + } }, |
| 717 | + }) |
| 718 | +} |
| 719 | + |
490 | 720 | func TestAccCloudflareLoadBalancer_Rules(t *testing.T) {
|
491 | 721 | var loadBalancer cfold.LoadBalancer
|
492 | 722 | zone := os.Getenv("CLOUDFLARE_DOMAIN")
|
@@ -671,7 +901,7 @@ func testAccManuallyDeleteLoadBalancer(name string, loadBalancerID string, initi
|
671 | 901 | context.Background(),
|
672 | 902 | loadBalancerID,
|
673 | 903 | load_balancers.LoadBalancerDeleteParams{
|
674 |
| - ZoneID: cloudflare.F(rs.Primary.Attributes[consts.ZoneIDSchemaKey]), |
| 904 | + ZoneID: rs.Primary.Attributes[consts.ZoneIDSchemaKey], |
675 | 905 | },
|
676 | 906 | )
|
677 | 907 | if err != nil {
|
@@ -741,6 +971,50 @@ func testAccCheckCloudflareLoadBalancerConfigDuplicatePool(zoneID, zone, id stri
|
741 | 971 | return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigduplicatepool.tf", zoneID, zone, id)
|
742 | 972 | }
|
743 | 973 |
|
| 974 | +func testAccCheckCloudflareLoadBalancerConfigAccount(zoneID, zone, id string) string { |
| 975 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigaccount.tf", zoneID, zone, id) |
| 976 | +} |
| 977 | + |
| 978 | +func testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverFalse(zoneID, zone, id string) string { |
| 979 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigadaptiveroutingfailoverfalse.tf", zoneID, zone, id) |
| 980 | +} |
| 981 | + |
| 982 | +func testAccCheckCloudflareLoadBalancerConfigAdaptiveRoutingFailoverTrue(zoneID, zone, id string) string { |
| 983 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigadaptiveroutingfailovertrue.tf", zoneID, zone, id) |
| 984 | +} |
| 985 | + |
| 986 | +func testAccCheckCloudflareLoadBalancerConfigCountryPools(zoneID, zone, id string) string { |
| 987 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcountrypools.tf", zoneID, zone, id) |
| 988 | +} |
| 989 | + |
| 990 | +func testAccCheckCloudflareLoadBalancerConfigCustomLocationStrategy(zoneID, zone, id string) string { |
| 991 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomlocationstrategy.tf", zoneID, zone, id) |
| 992 | +} |
| 993 | + |
| 994 | +func testAccCheckCloudflareLoadBalancerConfigCustomPort(zoneID, zone, id string) string { |
| 995 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomport.tf", zoneID, zone, id) |
| 996 | +} |
| 997 | + |
| 998 | +func testAccCheckCloudflareLoadBalancerConfigCustomSessionAffinityAttributes(zoneID, zone, id string) string { |
| 999 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomsessionaffinityattributes.tf", zoneID, zone, id) |
| 1000 | +} |
| 1001 | + |
| 1002 | +func testAccCheckCloudflareLoadBalancerConfigCustomTTL(zoneID, zone, id string) string { |
| 1003 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigcustomttl.tf", zoneID, zone, id) |
| 1004 | +} |
| 1005 | + |
| 1006 | +func testAccCheckCloudflareLoadBalancerConfigLocationStrategyAlwaysResolverIP(zoneID, zone, id string) string { |
| 1007 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfiglocationstrategyalwaysresolverip.tf", zoneID, zone, id) |
| 1008 | +} |
| 1009 | + |
| 1010 | +func testAccCheckCloudflareLoadBalancerConfigLocationStrategyNeverPop(zoneID, zone, id string) string { |
| 1011 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfiglocationstrategyneverpop.tf", zoneID, zone, id) |
| 1012 | +} |
| 1013 | + |
| 1014 | +func testAccCheckCloudflareLoadBalancerConfigStandardZone(zoneID, zone, id string) string { |
| 1015 | + return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigstandardzone.tf", zoneID, zone, id) |
| 1016 | +} |
| 1017 | + |
744 | 1018 | func testAccCheckCloudflareLoadBalancerConfigRules(zoneID, zone, id string) string {
|
745 | 1019 | return testAccCheckCloudflareLoadBalancerPoolConfigBasic(id, accountID) + acctest.LoadTestCase("loadbalancerconfigrules.tf", zoneID, zone, id)
|
746 | 1020 | }
|
|
0 commit comments