Skip to content

Commit ccceca5

Browse files
committed
chore: Expanding lll coverage to retry
1 parent b5e109b commit ccceca5

2 files changed

Lines changed: 33 additions & 21 deletions

File tree

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ linters:
121121
# trying to get this merged in.
122122
- linters:
123123
- lll
124-
path-except: '^(internal/awshelper/|internal/cas/|internal/cli/commands/(backend/(delete|migrate)|catalog/tui/command|dag/graph|exec|find|help|list|scaffold|stack)/|internal/cloner/|internal/configbridge/|internal/engine/|internal/errorconfig/|internal/errors/|internal/experiment/|internal/gcphelper/|internal/git/|internal/os/exec/|internal/prepare/|internal/queue/|internal/runner/(common|graph|run/creds|runall|runcfg)/|internal/stacks/(generate|output)/|internal/telemetry/|internal/tf/cache/(controllers|middleware)/|internal/tflint/|internal/tips/|internal/vfs/|internal/worktrees/|pkg/log/(format/(options|placeholders)|writer)/|pkg/options/)'
124+
path-except: '^(internal/awshelper/|internal/cas/|internal/cli/commands/(backend/(delete|migrate)|catalog/tui/command|dag/graph|exec|find|help|list|scaffold|stack)/|internal/cloner/|internal/configbridge/|internal/engine/|internal/errorconfig/|internal/errors/|internal/experiment/|internal/gcphelper/|internal/git/|internal/os/exec/|internal/prepare/|internal/queue/|internal/retry/|internal/runner/(common|graph|run/creds|runall|runcfg)/|internal/stacks/(generate|output)/|internal/telemetry/|internal/tf/cache/(controllers|middleware)/|internal/tflint/|internal/tips/|internal/vfs/|internal/worktrees/|pkg/log/(format/(options|placeholders)|writer)/|pkg/options/)'
125125
paths:
126126
- docs
127127
- _ci

internal/retry/defaults_test.go

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,40 +17,49 @@ func TestDefaultRetryableErrorsMatch(t *testing.T) {
1717
}{
1818
// OpenTofu provider resolution errors (the CI failures that prompted this change)
1919
{
20-
name: "opentofu context deadline on provider resolve",
21-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null: could not connect to registry.opentofu.org: failed to request discovery document: Get \"https://registry.opentofu.org/.well-known/terraform.json\": context deadline exceeded",
20+
name: "opentofu context deadline on provider resolve",
21+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null:" +
22+
" could not connect to registry.opentofu.org: failed to request discovery document:" +
23+
` Get "https://registry.opentofu.org/.well-known/terraform.json": context deadline exceeded`,
2224
wantMatch: true,
2325
},
2426
{
25-
name: "opentofu TLS handshake timeout on provider resolve",
26-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/aws: could not connect to registry.opentofu.org: TLS handshake timeout",
27+
name: "opentofu TLS handshake timeout on provider resolve",
28+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/aws:" +
29+
" could not connect to registry.opentofu.org: TLS handshake timeout",
2730
wantMatch: true,
2831
},
2932
{
30-
name: "opentofu tcp timeout on provider resolve",
31-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null: could not connect to registry.opentofu.org: tcp connection timeout",
33+
name: "opentofu tcp timeout on provider resolve",
34+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null:" +
35+
" could not connect to registry.opentofu.org: tcp connection timeout",
3236
wantMatch: true,
3337
},
3438
{
35-
name: "opentofu tcp connection reset on provider resolve",
36-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null: could not connect to registry.opentofu.org: tcp: connection reset by peer",
39+
name: "opentofu tcp connection reset on provider resolve",
40+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/null:" +
41+
" could not connect to registry.opentofu.org: tcp: connection reset by peer",
3742
wantMatch: true,
3843
},
3944
{
40-
name: "opentofu failed to query available provider packages",
41-
errMsg: "Error: Failed to query available provider packages\nCould not retrieve the list of available versions for provider hashicorp/null: could not connect to registry.opentofu.org: context deadline exceeded",
45+
name: "opentofu failed to query available provider packages",
46+
errMsg: "Error: Failed to query available provider packages\n" +
47+
"Could not retrieve the list of available versions for provider hashicorp/null:" +
48+
" could not connect to registry.opentofu.org: context deadline exceeded",
4249
wantMatch: true,
4350
},
4451
{
45-
name: "opentofu discovery document deadline",
46-
errMsg: "failed to request discovery document: Get \"https://registry.opentofu.org/.well-known/terraform.json\": context deadline exceeded",
52+
name: "opentofu discovery document deadline",
53+
errMsg: `failed to request discovery document: Get "https://registry.opentofu.org/.well-known/terraform.json":` +
54+
" context deadline exceeded",
4755
wantMatch: true,
4856
},
4957

5058
// Terraform provider installation errors (existing behavior preserved)
5159
{
52-
name: "terraform context deadline on provider query",
53-
errMsg: "Error: Failed to install provider\ncould not query provider registry for registry.terraform.io/hashicorp/null: context deadline exceeded",
60+
name: "terraform context deadline on provider query",
61+
errMsg: "Error: Failed to install provider\ncould not query provider registry for" +
62+
" registry.terraform.io/hashicorp/null: context deadline exceeded",
5463
wantMatch: true,
5564
},
5665
{
@@ -76,8 +85,9 @@ func TestDefaultRetryableErrorsMatch(t *testing.T) {
7685
wantMatch: true,
7786
},
7887
{
79-
name: "terraform registry context deadline",
80-
errMsg: "could not query provider registry for registry.terraform.io/hashicorp/template: context deadline exceeded",
88+
name: "terraform registry context deadline",
89+
errMsg: "could not query provider registry for" +
90+
" registry.terraform.io/hashicorp/template: context deadline exceeded",
8191
wantMatch: true,
8292
},
8393

@@ -115,13 +125,15 @@ func TestDefaultRetryableErrorsMatch(t *testing.T) {
115125

116126
// Permanent errors that must NOT match
117127
{
118-
name: "provider not found is permanent",
119-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/nonexistent: provider registry registry.opentofu.org does not have a provider named hashicorp/nonexistent",
128+
name: "provider not found is permanent",
129+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/nonexistent:" +
130+
" provider registry registry.opentofu.org does not have a provider named hashicorp/nonexistent",
120131
wantMatch: false,
121132
},
122133
{
123-
name: "version constraint mismatch is permanent",
124-
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/aws: no available releases match the given constraints >= 99.0.0",
134+
name: "version constraint mismatch is permanent",
135+
errMsg: "Error: Failed to resolve provider packages\nCould not resolve provider hashicorp/aws:" +
136+
" no available releases match the given constraints >= 99.0.0",
125137
wantMatch: false,
126138
},
127139
{

0 commit comments

Comments
 (0)