diff --git a/GNUmakefile b/Makefile similarity index 89% rename from GNUmakefile rename to Makefile index 364ffde..05b56f5 100644 --- a/GNUmakefile +++ b/Makefile @@ -1,19 +1,23 @@ -.PHONY: all build deps generate help test openapi_generate -SWAGGER_SPEC=swagger.yml +SWAGGER_SPEC := swagger.yml help: ## Show this help. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) +.PHONY: help all: deps openapi_generate generate test testacc # build +.PHONY: all build: ## Build Terraform provider. go install . +.PHONY: build deps: ## Install dependencies. go mod download +.PHONY: deps generate: ## Generate Terraform docs. go generate +.PHONY: generate openapi_generate: ## Generate the go code from the OpenAPI spec. docker run --rm \ @@ -26,10 +30,13 @@ openapi_generate: ## Generate the go code from the OpenAPI spec. sed -i '' 's/int32/int64/g' internal/netlifyapi/model_*.go ; \ sed -i '' 's/int32/int64/g' internal/netlifyapi/api_*.go ; \ sed -i '' 's/return e.error/return fmt.Sprintf("%s: %s", e.error, e.body)/g' internal/netlifyapi/client.go +.PHONY: openapi_generate test: ## Test the go code. go test -v ./... +.PHONY: test testacc: ## Test the go code and run acceptance tests. TF_ACC=1 go test ./... -v $(TESTARGS) # -timeout 120m +.PHONY: testacc diff --git a/go.sum b/go.sum index 21faf1b..11ac3e0 100644 --- a/go.sum +++ b/go.sum @@ -144,8 +144,6 @@ github.com/hashicorp/terraform-json v0.24.0 h1:rUiyF+x1kYawXeRth6fKFm/MdfBS6+lW4 github.com/hashicorp/terraform-json v0.24.0/go.mod h1:Nfj5ubo9xbu9uiAoZVBsNOjvNKB66Oyrvtit74kC7ow= github.com/hashicorp/terraform-plugin-docs v0.21.0 h1:yoyA/Y719z9WdFJAhpUkI1jRbKP/nteVNBaI3hW7iQ8= github.com/hashicorp/terraform-plugin-docs v0.21.0/go.mod h1:J4Wott1J2XBKZPp/NkQv7LMShJYOcrqhQ2myXBcu64s= -github.com/hashicorp/terraform-plugin-framework v1.14.0 h1:lsmTJqBlZ4GUabnDxj8Lsa5bmbuUKiUO3Zm9iIKSDf0= -github.com/hashicorp/terraform-plugin-framework v1.14.0/go.mod h1:xNUKmvTs6ldbwTuId5euAtg37dTxuyj3LHS3uj7BHQ4= github.com/hashicorp/terraform-plugin-framework v1.14.1 h1:jaT1yvU/kEKEsxnbrn4ZHlgcxyIfjvZ41BLdlLk52fY= github.com/hashicorp/terraform-plugin-framework v1.14.1/go.mod h1:xNUKmvTs6ldbwTuId5euAtg37dTxuyj3LHS3uj7BHQ4= github.com/hashicorp/terraform-plugin-framework-validators v0.17.0 h1:0uYQcqqgW3BMyyve07WJgpKorXST3zkpzvrOnf3mpbg= @@ -325,10 +323,6 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= -golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= -golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= diff --git a/internal/provider/dns_record_resource_test.go b/internal/provider/dns_record_resource_test.go index 6ddca05..e953ace 100644 --- a/internal/provider/dns_record_resource_test.go +++ b/internal/provider/dns_record_resource_test.go @@ -11,19 +11,19 @@ import ( ) func TestAccDnsRecordA(t *testing.T) { - var zoneId = "66afdbce3cf2b4f0fab520d9" + var zoneId = "69052bba28ce689f129b1ac8" accTest(t, []resource.TestStep{ { Config: `resource "netlify_dns_record" "example" { type = "A" - zone_id = "66afdbce3cf2b4f0fab520d9" - hostname = "testacc.examplepetstore.com" + zone_id = "69052bba28ce689f129b1ac8" + hostname = "testacc.nf-terraform-test.com" value = "10.0.0.0" }`, Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("netlify_dns_record.example", "type", "A"), resource.TestCheckResourceAttr("netlify_dns_record.example", "zone_id", zoneId), - resource.TestCheckResourceAttr("netlify_dns_record.example", "hostname", "testacc.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_dns_record.example", "hostname", "testacc.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_dns_record.example", "value", "10.0.0.0"), ), }, @@ -44,8 +44,8 @@ func TestAccDnsRecordA(t *testing.T) { { Config: `resource "netlify_dns_record" "example" { type = "A" - zone_id = "66afdbce3cf2b4f0fab520d9" - hostname = "testacc.examplepetstore.com" + zone_id = "69052bba28ce689f129b1ac8" + hostname = "testacc.nf-terraform-test.com" value = "10.0.0.1" }`, ConfigPlanChecks: resource.ConfigPlanChecks{ @@ -56,7 +56,7 @@ func TestAccDnsRecordA(t *testing.T) { Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("netlify_dns_record.example", "type", "A"), resource.TestCheckResourceAttr("netlify_dns_record.example", "zone_id", zoneId), - resource.TestCheckResourceAttr("netlify_dns_record.example", "hostname", "testacc.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_dns_record.example", "hostname", "testacc.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_dns_record.example", "value", "10.0.0.1"), ), }, @@ -64,12 +64,12 @@ func TestAccDnsRecordA(t *testing.T) { } func testAccDnsRecordCheckDestroy(s *terraform.State) error { - records, _, err := testAccProvider.client.DNSZonesAPI.GetDnsRecords(context.Background(), "66afdbce3cf2b4f0fab520d9").Execute() + records, _, err := testAccProvider.client.DNSZonesAPI.GetDnsRecords(context.Background(), "69052bba28ce689f129b1ac8").Execute() if err != nil { return err } for _, record := range records { - if record.Hostname == "testacc.examplepetstore.com" { + if record.Hostname == "testacc.nf-terraform-test.com" { return fmt.Errorf("DNS record still exists") } } diff --git a/internal/provider/dns_zone_data_source_test.go b/internal/provider/dns_zone_data_source_test.go index cc37e16..10233b3 100644 --- a/internal/provider/dns_zone_data_source_test.go +++ b/internal/provider/dns_zone_data_source_test.go @@ -11,10 +11,10 @@ func TestAccDataDnsZone(t *testing.T) { accTest(t, []resource.TestStep{ { Config: `data "netlify_dns_zone" "example" { - name = "examplepetstore.com" + name = "nf-terraform-test.com" }`, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("data.netlify_dns_zone.example", "id", "66afdbce3cf2b4f0fab520d9"), + resource.TestCheckResourceAttr("data.netlify_dns_zone.example", "id", "69052bba28ce689f129b1ac8"), ), }, }, func(s *terraform.State) error { return nil }) diff --git a/internal/provider/dns_zone_resource_test.go b/internal/provider/dns_zone_resource_test.go index 9c6dd14..0f2d777 100644 --- a/internal/provider/dns_zone_resource_test.go +++ b/internal/provider/dns_zone_resource_test.go @@ -14,7 +14,7 @@ func TestAccDnsZone(t *testing.T) { accTest(t, []resource.TestStep{ { Config: `resource "netlify_dns_zone" "example" { - name = "tfsoftsecretnetlifytestingexamplestore.com" + name = "nf-terraform-test-2.com" team_slug = "netlify-terraform-test" }`, Check: resource.ComposeAggregateTestCheckFunc( @@ -31,7 +31,7 @@ func TestAccDnsZone(t *testing.T) { { Config: `resource "netlify_dns_zone" "example" { - name = "tfsoftsecretnetlifytestingexamplestore2.com" + name = "nf-terraform-test-2-updated.com" team_slug = "netlify-terraform-test" }`, ConfigPlanChecks: resource.ConfigPlanChecks{ diff --git a/internal/provider/log_drain_resource_test.go b/internal/provider/log_drain_resource_test.go index f03992b..53e901a 100644 --- a/internal/provider/log_drain_resource_test.go +++ b/internal/provider/log_drain_resource_test.go @@ -20,7 +20,7 @@ func TestAccLogDrain(t *testing.T) { format = "ndjson" exclude_pii = false service_config = { - url = "https://httpstat.us/200" + url = "https://tools-httpstatus.pickup-services.com/200" } }`, Check: resource.ComposeAggregateTestCheckFunc( @@ -52,7 +52,7 @@ func TestAccLogDrain(t *testing.T) { format = "ndjson" exclude_pii = true service_config = { - url = "https://httpstat.us/200" + url = "https://tools-httpstatus.pickup-services.com/200" } }`, ConfigPlanChecks: resource.ConfigPlanChecks{ diff --git a/internal/provider/site_domain_settings_resource_test.go b/internal/provider/site_domain_settings_resource_test.go index ddedbc1..e23170e 100644 --- a/internal/provider/site_domain_settings_resource_test.go +++ b/internal/provider/site_domain_settings_resource_test.go @@ -13,35 +13,35 @@ func TestAccSiteDomainSettings(t *testing.T) { { Config: `resource "netlify_site_domain_settings" "example" { site_id = "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26" - custom_domain = "tf-test-1.examplepetstore.com" - domain_aliases = ["tf-test-1-alias.examplepetstore.com"] - branch_deploy_custom_domain = "tf-test-12-branch.examplepetstore.com" - deploy_preview_custom_domain = "tf-test-12-dp.examplepetstore.com" + custom_domain = "tf-test-1.nf-terraform-test.com" + domain_aliases = ["tf-test-1-alias.nf-terraform-test.com"] + branch_deploy_custom_domain = "tf-test-12-branch.nf-terraform-test.com" + deploy_preview_custom_domain = "tf-test-12-dp.nf-terraform-test.com" }`, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "site_id", "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "custom_domain", "tf-test-1.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "custom_domain", "tf-test-1.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.#", "1"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.0", "tf-test-1-alias.examplepetstore.com"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "branch_deploy_custom_domain", "tf-test-12-branch.examplepetstore.com"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "deploy_preview_custom_domain", "tf-test-12-dp.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.0", "tf-test-1-alias.nf-terraform-test.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "branch_deploy_custom_domain", "tf-test-12-branch.nf-terraform-test.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "deploy_preview_custom_domain", "tf-test-12-dp.nf-terraform-test.com"), ), }, { Config: `resource "netlify_site_domain_settings" "example" { site_id = "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26" - custom_domain = "tf-test-1.examplepetstore.com" - domain_aliases = ["tf-test-1-alias.examplepetstore.com"] - branch_deploy_custom_domain = "tf-test-1-branch.examplepetstore.com" - deploy_preview_custom_domain = "tf-test-1-dp.examplepetstore.com" + custom_domain = "tf-test-1.nf-terraform-test.com" + domain_aliases = ["tf-test-1-alias.nf-terraform-test.com"] + branch_deploy_custom_domain = "tf-test-1-branch.nf-terraform-test.com" + deploy_preview_custom_domain = "tf-test-1-dp.nf-terraform-test.com" }`, Check: resource.ComposeAggregateTestCheckFunc( resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "site_id", "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "custom_domain", "tf-test-1.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "custom_domain", "tf-test-1.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.#", "1"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.0", "tf-test-1-alias.examplepetstore.com"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "branch_deploy_custom_domain", "tf-test-1-branch.examplepetstore.com"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "deploy_preview_custom_domain", "tf-test-1-dp.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "domain_aliases.0", "tf-test-1-alias.nf-terraform-test.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "branch_deploy_custom_domain", "tf-test-1-branch.nf-terraform-test.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.example", "deploy_preview_custom_domain", "tf-test-1-dp.nf-terraform-test.com"), ), }, { @@ -60,12 +60,12 @@ func TestAccSiteDomainSettingsNullFields(t *testing.T) { accTest(t, []resource.TestStep{ { Config: `resource "netlify_site_domain_settings" "null_fields" { - site_id = "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26" - custom_domain = "tf-test-null-fields.examplepetstore.com" + site_id = "605830b8-16e3-4c9e-9010-be3fef9e977b" + custom_domain = "tf-test-null-fields.nf-terraform-test.com" }`, Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "site_id", "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "custom_domain", "tf-test-null-fields.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "site_id", "605830b8-16e3-4c9e-9010-be3fef9e977b"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "custom_domain", "tf-test-null-fields.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "domain_aliases.#", "0"), // These should be null/empty when not set resource.TestCheckNoResourceAttr("netlify_site_domain_settings.null_fields", "branch_deploy_custom_domain"), @@ -75,20 +75,20 @@ func TestAccSiteDomainSettingsNullFields(t *testing.T) { { // Second step with same config should not detect changes (no drift) Config: `resource "netlify_site_domain_settings" "null_fields" { - site_id = "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26" - custom_domain = "tf-test-null-fields.examplepetstore.com" + site_id = "605830b8-16e3-4c9e-9010-be3fef9e977b" + custom_domain = "tf-test-null-fields.nf-terraform-test.com" }`, PlanOnly: true, Check: resource.ComposeAggregateTestCheckFunc( - resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "site_id", "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26"), - resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "custom_domain", "tf-test-null-fields.examplepetstore.com"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "site_id", "605830b8-16e3-4c9e-9010-be3fef9e977b"), + resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "custom_domain", "tf-test-null-fields.nf-terraform-test.com"), resource.TestCheckResourceAttr("netlify_site_domain_settings.null_fields", "domain_aliases.#", "0"), ), }, { ResourceName: "netlify_site_domain_settings.null_fields", ImportState: true, - ImportStateId: "5b407d6d-9385-4e7a-a4c4-8efc11ea3c26", + ImportStateId: "605830b8-16e3-4c9e-9010-be3fef9e977b", ImportStateVerifyIdentifierAttribute: "site_id", ImportStateVerify: true, ImportStateVerifyIgnore: []string{"last_updated"},