Skip to content

Commit 451c634

Browse files
authored
[CDTOOL-1225] Correct keepalive_time Drift (#1156)
* drift fix * drift fix * changelog update
1 parent a323e67 commit 451c634

File tree

3 files changed

+74
-0
lines changed

3 files changed

+74
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
### ENHANCEMENTS:
66

77
### BUG FIXES:
8+
- fix(service/backend): corrected a drift issue caused by the `keepalive_time` attribute ([#1156](https://github.com/fastly/terraform-provider-fastly/pull/1156))
89

910
### DEPENDENCIES:
1011

fastly/block_fastly_service_backend.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ func (h *BackendServiceAttributeHandler) GetSchema() *schema.Schema {
7171
"keepalive_time": {
7272
Type: schema.TypeInt,
7373
Optional: true,
74+
Computed: true,
7475
Description: "How long in seconds to keep a persistent connection to the backend between requests.",
7576
},
7677
"max_conn": {

fastly/block_fastly_service_backend_test.go

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,78 @@ func TestAccFastlyServiceVCLBackend_PreserveBooleansDuringNameChange(t *testing.
464464
})
465465
}
466466

467+
func TestAccFastlyServiceVCLBackend_Minimal(t *testing.T) {
468+
var service gofastly.ServiceDetail
469+
serviceName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
470+
domainName := fmt.Sprintf("fastly-test.tf-%s.com", acctest.RandString(10))
471+
backendName := fmt.Sprintf("backend-tf-%s", acctest.RandString(10))
472+
backendAddress := "httpbin.org"
473+
474+
// Expected backend with minimal configuration and API defaults
475+
backend := gofastly.Backend{
476+
Address: gofastly.ToPointer(backendAddress),
477+
Name: gofastly.ToPointer(backendName),
478+
Port: gofastly.ToPointer(443),
479+
480+
// NOTE: The following are defaults applied by the API
481+
AutoLoadbalance: gofastly.ToPointer(false),
482+
BetweenBytesTimeout: gofastly.ToPointer(10000),
483+
Comment: gofastly.ToPointer(""),
484+
ConnectTimeout: gofastly.ToPointer(1000),
485+
ErrorThreshold: gofastly.ToPointer(0),
486+
FirstByteTimeout: gofastly.ToPointer(15000),
487+
HealthCheck: gofastly.ToPointer(""),
488+
Hostname: gofastly.ToPointer(backendAddress),
489+
KeepAliveTime: nil, // API returns null when not configured
490+
MaxConn: gofastly.ToPointer(200),
491+
PreferIPv6: gofastly.ToPointer(false),
492+
RequestCondition: gofastly.ToPointer(""),
493+
Shield: gofastly.ToPointer(""),
494+
SSLCheckCert: gofastly.ToPointer(true),
495+
Weight: gofastly.ToPointer(100),
496+
UseSSL: gofastly.ToPointer(false),
497+
}
498+
499+
resource.ParallelTest(t, resource.TestCase{
500+
PreCheck: func() {
501+
testAccPreCheck(t)
502+
},
503+
ProviderFactories: testAccProviders,
504+
CheckDestroy: testAccCheckServiceVCLDestroy,
505+
Steps: []resource.TestStep{
506+
{
507+
Config: testAccServiceVCLBackendMinimal(serviceName, domainName, backendAddress, backendName),
508+
Check: resource.ComposeTestCheckFunc(
509+
testAccCheckServiceExists("fastly_service_vcl.foo", &service),
510+
resource.TestCheckResourceAttr("fastly_service_vcl.foo", "name", serviceName),
511+
resource.TestCheckResourceAttr("fastly_service_vcl.foo", "backend.#", "1"),
512+
testAccCheckFastlyServiceVCLBackendAttributes(&service, []*gofastly.Backend{&backend}),
513+
),
514+
},
515+
},
516+
})
517+
}
518+
519+
func testAccServiceVCLBackendMinimal(serviceName, domainName, backendAddress, backendName string) string {
520+
return fmt.Sprintf(`
521+
resource "fastly_service_vcl" "foo" {
522+
name = "%s"
523+
524+
domain {
525+
name = "%s"
526+
comment = "demo"
527+
}
528+
529+
backend {
530+
address = "%s"
531+
name = "%s"
532+
port = 443
533+
}
534+
535+
force_destroy = true
536+
}`, serviceName, domainName, backendAddress, backendName)
537+
}
538+
467539
func testAccCheckFastlyServiceVCLBackendAttributes(service *gofastly.ServiceDetail, want []*gofastly.Backend) resource.TestCheckFunc {
468540
return func(_ *terraform.State) error {
469541
conn := testAccProvider.Meta().(*APIClient).conn

0 commit comments

Comments
 (0)