diff --git a/civo/resource_dns_domain_name_test.go b/civo/resource_dns_domain_name_test.go index a46874e4..9dd7795b 100644 --- a/civo/resource_dns_domain_name_test.go +++ b/civo/resource_dns_domain_name_test.go @@ -45,7 +45,8 @@ func TestAccCivoDNSDomainName_update(t *testing.T) { // generate a random name for each test run resName := "civo_dns_domain_name.foobar" - var domainName = acctest.RandomWithPrefix("renamed-tf-test") + ".example" + var domainName = acctest.RandomWithPrefix("tf-test") + ".example" + var domainNameUpdate = acctest.RandomWithPrefix("renamed-tf-test") + ".example" resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -53,7 +54,7 @@ func TestAccCivoDNSDomainName_update(t *testing.T) { CheckDestroy: testAccCheckCivoDNSDomainNameDestroy, Steps: []resource.TestStep{ { - Config: testAccCheckCivoDNSDomainNameConfigUpdates(domainName), + Config: testAccCheckCivoDNSDomainNameConfigBasic(domainName), Check: resource.ComposeTestCheckFunc( testAccCheckCivoDNSDomainNameResourceExists(resName, &domain), testAccCheckCivoDNSDomainNameValues(&domain, domainName), @@ -62,11 +63,11 @@ func TestAccCivoDNSDomainName_update(t *testing.T) { }, { // use a dynamic configuration with the random name from above - Config: testAccCheckCivoDNSDomainNameConfigUpdates(domainName), + Config: testAccCheckCivoDNSDomainNameConfigUpdates(domainNameUpdate), Check: resource.ComposeTestCheckFunc( testAccCheckCivoDNSDomainNameResourceExists(resName, &domain), - testAccCheckCivoDNSDomainNameUpdated(&domain, domainName), - resource.TestCheckResourceAttr(resName, "name", domainName), + testAccCheckCivoDNSDomainNameUpdated(&domain, domainNameUpdate), + resource.TestCheckResourceAttr(resName, "name", domainNameUpdate), ), }, }, diff --git a/civo/resource_dns_domain_record_test.go b/civo/resource_dns_domain_record_test.go index e4d48170..6ad61121 100644 --- a/civo/resource_dns_domain_record_test.go +++ b/civo/resource_dns_domain_record_test.go @@ -47,7 +47,8 @@ func TestAccCivoDNSDomainNameRecord_update(t *testing.T) { // generate a random name for each test run resName := "civo_dns_domain_record.www" var domainName = acctest.RandomWithPrefix("renamed-tf-test-record") + ".example" - var recordName = acctest.RandomWithPrefix("renamed-record") + var recordName = acctest.RandomWithPrefix("record") + var recordNameUpdate = acctest.RandomWithPrefix("renamed-record") resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -55,7 +56,7 @@ func TestAccCivoDNSDomainNameRecord_update(t *testing.T) { CheckDestroy: testAccCheckCivoDNSDomainNameRecordDestroy, Steps: []resource.TestStep{ { - Config: testAccCheckCivoDNSDomainNameRecordConfigUpdates(domainName, recordName), + Config: testAccCheckCivoDNSDomainNameRecordConfigBasic(domainName, recordName), Check: resource.ComposeTestCheckFunc( testAccCheckCivoDNSDomainNameRecordResourceExists(resName, &domainRecord), testAccCheckCivoDNSDomainNameRecordValues(&domainRecord, recordName), @@ -64,11 +65,11 @@ func TestAccCivoDNSDomainNameRecord_update(t *testing.T) { }, { // use a dynamic configuration with the random name from above - Config: testAccCheckCivoDNSDomainNameRecordConfigUpdates(domainName, recordName), + Config: testAccCheckCivoDNSDomainNameRecordConfigUpdates(domainName, recordNameUpdate), Check: resource.ComposeTestCheckFunc( testAccCheckCivoDNSDomainNameRecordResourceExists(resName, &domainRecord), - testAccCheckCivoDNSDomainNameRecordUpdated(&domainRecord, recordName), - resource.TestCheckResourceAttr(resName, "name", recordName), + testAccCheckCivoDNSDomainNameRecordUpdated(&domainRecord, recordNameUpdate), + resource.TestCheckResourceAttr(resName, "name", recordNameUpdate), ), }, }, diff --git a/civo/resource_firewall_rule_test.go b/civo/resource_firewall_rule_test.go index c7cd2cdc..f0ea342f 100644 --- a/civo/resource_firewall_rule_test.go +++ b/civo/resource_firewall_rule_test.go @@ -46,7 +46,7 @@ func TestAccCivoFirewallRule_update(t *testing.T) { // generate a random name for each test run resName := "civo_firewall_rule.testrule" - var firewallRuleName = acctest.RandomWithPrefix("rename-fw-rule") + var firewalName = acctest.RandomWithPrefix("tf-fw-rule") resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -54,21 +54,23 @@ func TestAccCivoFirewallRule_update(t *testing.T) { CheckDestroy: testAccCheckCivoFirewallRuleDestroy, Steps: []resource.TestStep{ { - Config: testAccCheckCivoFirewallRuleConfigUpdates(firewallRuleName), + Config: testAccCheckCivoFirewallRuleConfigBasic(firewalName), Check: resource.ComposeTestCheckFunc( testAccCheckCivoFirewallRuleResourceExists(resName, &firewallRule), resource.TestCheckResourceAttr(resName, "protocol", "tcp"), - resource.TestCheckResourceAttr(resName, "start_port", "443"), + resource.TestCheckResourceAttr(resName, "start_port", "80"), + resource.TestCheckResourceAttr(resName, "label", "web"), ), }, { // use a dynamic configuration with the random name from above - Config: testAccCheckCivoFirewallRuleConfigUpdates(firewallRuleName), + Config: testAccCheckCivoFirewallRuleConfigUpdates(firewalName), Check: resource.ComposeTestCheckFunc( testAccCheckCivoFirewallRuleResourceExists(resName, &firewallRule), testAccCheckCivoFirewallRuleUpdated(&firewallRule), resource.TestCheckResourceAttr(resName, "protocol", "tcp"), resource.TestCheckResourceAttr(resName, "start_port", "443"), + resource.TestCheckResourceAttr(resName, "label", "web_server"), ), }, }, @@ -172,7 +174,7 @@ resource "civo_firewall_rule" "testrule" { end_port = "443" cidr = ["192.168.1.2/32"] direction = "inbound" - label = "web" + label = "web_server" } `, name) } diff --git a/civo/resource_firewall_test.go b/civo/resource_firewall_test.go index e5771e69..eeca7df3 100644 --- a/civo/resource_firewall_test.go +++ b/civo/resource_firewall_test.go @@ -45,7 +45,8 @@ func TestAccCivoFirewall_update(t *testing.T) { // generate a random name for each test run resName := "civo_firewall.foobar" - var firewallName = acctest.RandomWithPrefix("rename-fw") + var firewallName = acctest.RandomWithPrefix("tf-fw") + var firewallNameUpdate = acctest.RandomWithPrefix("rename-fw") resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -53,7 +54,7 @@ func TestAccCivoFirewall_update(t *testing.T) { CheckDestroy: testAccCheckCivoFirewallDestroy, Steps: []resource.TestStep{ { - Config: testAccCheckCivoFirewallConfigUpdates(firewallName), + Config: testAccCheckCivoFirewallConfigBasic(firewallName), Check: resource.ComposeTestCheckFunc( testAccCheckCivoFirewallResourceExists(resName, &firewall), testAccCheckCivoFirewallValues(&firewall, firewallName), @@ -62,11 +63,11 @@ func TestAccCivoFirewall_update(t *testing.T) { }, { // use a dynamic configuration with the random name from above - Config: testAccCheckCivoFirewallConfigUpdates(firewallName), + Config: testAccCheckCivoFirewallConfigUpdates(firewallNameUpdate), Check: resource.ComposeTestCheckFunc( testAccCheckCivoFirewallResourceExists(resName, &firewall), - testAccCheckCivoFirewallUpdated(&firewall, firewallName), - resource.TestCheckResourceAttr(resName, "name", firewallName), + testAccCheckCivoFirewallUpdated(&firewall, firewallNameUpdate), + resource.TestCheckResourceAttr(resName, "name", firewallNameUpdate), ), }, }, diff --git a/civo/resource_loadbalancer_test.go b/civo/resource_loadbalancer_test.go index f0d08091..40dbedc0 100644 --- a/civo/resource_loadbalancer_test.go +++ b/civo/resource_loadbalancer_test.go @@ -10,13 +10,14 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/terraform" ) +var domainName = acctest.RandString(10) + // example.Widget represents a concrete Go type that represents an API resource func TestAccCivoLoadBalancer_basic(t *testing.T) { var loadBalancer civogo.LoadBalancer // generate a random name for each test run resName := "civo_loadbalancer.foobar" - var domainName = acctest.RandString(10) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -35,45 +36,56 @@ func TestAccCivoLoadBalancer_basic(t *testing.T) { // verify local values resource.TestCheckResourceAttr(resName, "protocol", "http"), resource.TestCheckResourceAttr(resName, "port", "80"), + resource.TestCheckResourceAttr(resName, "max_request_size", "30"), + resource.TestCheckResourceAttr(resName, "policy", "round_robin"), + resource.TestCheckResourceAttr(resName, "health_check_path", "/"), + resource.TestCheckResourceAttr(resName, "max_conns", "10"), ), }, }, }) } -// func TestAccCivoLoadBalancer_update(t *testing.T) { -// var firewallRule civogo.FirewallRule - -// // generate a random name for each test run -// resName := "civo_firewall_rule.testrule" -// var firewallRuleName = acctest.RandomWithPrefix("rename-fw-rule") - -// resource.Test(t, resource.TestCase{ -// PreCheck: func() { testAccPreCheck(t) }, -// Providers: testAccProviders, -// CheckDestroy: testAccCheckCivoFirewallRuleDestroy, -// Steps: []resource.TestStep{ -// { -// Config: testAccCheckCivoFirewallRuleConfigUpdates(firewallRuleName), -// Check: resource.ComposeTestCheckFunc( -// testAccCheckCivoFirewallRuleResourceExists(resName, &firewallRule), -// resource.TestCheckResourceAttr(resName, "protocol", "tcp"), -// resource.TestCheckResourceAttr(resName, "start_port", "443"), -// ), -// }, -// { -// // use a dynamic configuration with the random name from above -// Config: testAccCheckCivoFirewallRuleConfigUpdates(firewallRuleName), -// Check: resource.ComposeTestCheckFunc( -// testAccCheckCivoFirewallRuleResourceExists(resName, &firewallRule), -// testAccCheckCivoFirewallRuleUpdated(&firewallRule), -// resource.TestCheckResourceAttr(resName, "protocol", "tcp"), -// resource.TestCheckResourceAttr(resName, "start_port", "443"), -// ), -// }, -// }, -// }) -// } +func TestAccCivoLoadBalancer_update(t *testing.T) { + var loadBalancer civogo.LoadBalancer + + // generate a random name for each test run + resName := "civo_loadbalancer.foobar" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckCivoFirewallRuleDestroy, + Steps: []resource.TestStep{ + { + Config: testAccCheckCivoLoadBalancerConfigBasic(domainName), + Check: resource.ComposeTestCheckFunc( + testAccCheckCivoLoadBalancerResourceExists(resName, &loadBalancer), + resource.TestCheckResourceAttr(resName, "protocol", "http"), + resource.TestCheckResourceAttr(resName, "port", "80"), + resource.TestCheckResourceAttr(resName, "max_request_size", "30"), + resource.TestCheckResourceAttr(resName, "policy", "round_robin"), + resource.TestCheckResourceAttr(resName, "health_check_path", "/"), + resource.TestCheckResourceAttr(resName, "max_conns", "10"), + ), + }, + { + // use a dynamic configuration with the random name from above + Config: testAccCheckCivoLoadBalancerConfigUpdates(domainName), + Check: resource.ComposeTestCheckFunc( + testAccCheckCivoLoadBalancerResourceExists(resName, &loadBalancer), + testAccCheckCivoLoadBalancerUpdated(&loadBalancer, domainName), + resource.TestCheckResourceAttr(resName, "protocol", "http"), + resource.TestCheckResourceAttr(resName, "port", "80"), + resource.TestCheckResourceAttr(resName, "max_request_size", "50"), + resource.TestCheckResourceAttr(resName, "policy", "round_robin"), + resource.TestCheckResourceAttr(resName, "health_check_path", "/"), + resource.TestCheckResourceAttr(resName, "max_conns", "100"), + ), + }, + }, + }) +} func testAccCheckCivoLoadBalancerValues(loadBalancer *civogo.LoadBalancer, name string) resource.TestCheckFunc { return func(s *terraform.State) error { @@ -108,17 +120,14 @@ func testAccCheckCivoLoadBalancerResourceExists(n string, loadBalancer *civogo.L } } -// func testAccCheckCivoLoadBalancerUpdated(firewall *civogo.FirewallRule) resource.TestCheckFunc { -// return func(s *terraform.State) error { -// if firewall.Protocol != "tcp" { -// return fmt.Errorf("bad protocol, expected \"%s\", got: %#v", "tcp", firewall.Protocol) -// } -// if firewall.StartPort != "443" { -// return fmt.Errorf("bad port, expected \"%s\", got: %#v", "443", firewall.StartPort) -// } -// return nil -// } -// } +func testAccCheckCivoLoadBalancerUpdated(loadBalancer *civogo.LoadBalancer, name string) resource.TestCheckFunc { + return func(s *terraform.State) error { + if loadBalancer.Hostname != fmt.Sprintf("rename-%s", name) { + return fmt.Errorf("bad protocol, expected \"%s\", got: %#v", fmt.Sprintf("rename-%s", name), loadBalancer.Hostname) + } + return nil + } +} func testAccCheckCivoLoadBalancerDestroy(s *terraform.State) error { client := testAccProvider.Meta().(*civogo.Client) @@ -163,20 +172,28 @@ resource "civo_loadbalancer" "foobar" { `, name, name) } -// func testAccCheckCivoLoadBalancerConfigUpdates(name string) string { -// return fmt.Sprintf(` -// resource "civo_firewall" "foobar" { -// name = "%s" -// } - -// resource "civo_firewall_rule" "testrule" { -// firewall_id = civo_firewall.foobar.id -// protocol = "tcp" -// start_port = "443" -// end_port = "443" -// cidr = ["192.168.1.2/32"] -// direction = "inbound" -// label = "web" -// } -// `, name) -// } +func testAccCheckCivoLoadBalancerConfigUpdates(name string) string { + return fmt.Sprintf(` +resource "civo_instance" "vm" { + hostname = "instance-%s" +} + +resource "civo_loadbalancer" "foobar" { + hostname = "rename-%s" + protocol = "http" + port = 80 + max_request_size = 50 + policy = "round_robin" + health_check_path = "/" + max_conns = 100 + fail_timeout = 40 + depends_on = [civo_instance.vm] + + backend { + instance_id = civo_instance.vm.id + protocol = "http" + port = 80 + } +} +`, name, name) +} diff --git a/go.mod b/go.mod index 13d5d2a4..b2747908 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/zclconf/go-cty v1.3.1 // indirect golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4 // indirect - golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d // indirect + golang.org/x/tools v0.0.0-20200623045635-ff88973b1e4e // indirect google.golang.org/genproto v0.0.0-20200311144346-b662892dd51b // indirect google.golang.org/grpc v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index e5c80094..a503bc45 100644 --- a/go.sum +++ b/go.sum @@ -281,6 +281,7 @@ github.com/vmihailenco/msgpack v4.0.1+incompatible h1:RMF1enSPeKTlXrXdOcqjFUElyw github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.1.0 h1:uJwc9HiBOCpoKIObTQaLR+tsEXx1HBHnOsOOpcdhZgw= github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= @@ -442,6 +443,8 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb h1:iKlO7ROJc6SttHKlxzwGytR golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d h1:3K34ovZAOnVaUPxanr0j4ghTZTPTA0CnXvjCl+5lZqk= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200623045635-ff88973b1e4e h1:Q4Er81Vpuia8wadHb49X4zp/VOBg53Sc93ArPkf5PJ4= +golang.org/x/tools v0.0.0-20200623045635-ff88973b1e4e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=