Skip to content

Commit e4531e2

Browse files
authored
Handle 402 Payment error (#1313)
* Handle 402 Payment Required error and add tests for skipping resources * Add support for auth0_branding_theme resource * revert support for auth0_branding_theme resource
1 parent acfa15d commit e4531e2

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

internal/cli/terraform.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,11 @@ func fetchImportData(ctx context.Context, cli *cli, fetchers ...resourceDataFetc
254254
continue
255255
}
256256

257+
if strings.Contains(err.Error(), "402 Payment Required") {
258+
cli.renderer.Warnf("Skipping resource due to payment required: %s", err.Error())
259+
continue
260+
}
261+
257262
return nil, err
258263
}
259264

internal/cli/terraform_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,38 @@ func TestFetchImportData(t *testing.T) {
7575
_, err := fetchImportData(context.Background(), &cli{}, mockFetchers...)
7676
assert.EqualError(t, err, "failed to list clients")
7777
})
78+
79+
t.Run("it skips resources with 403 Forbidden error", func(t *testing.T) {
80+
mockFetchers := []resourceDataFetcher{
81+
&mockFetcher{mockErr: errors.New("403 Forbidden: access denied")},
82+
&mockFetcher{mockData: importDataList{{ResourceName: "auth0_client.allowed", ImportID: "client-allowed"}}},
83+
}
84+
85+
_, err := fetchImportData(context.Background(), &cli{
86+
renderer: &display.Renderer{
87+
MessageWriter: &bytes.Buffer{},
88+
ResultWriter: &bytes.Buffer{},
89+
},
90+
}, mockFetchers...)
91+
92+
assert.NoError(t, err)
93+
})
94+
95+
t.Run("it skips resources with 402 Payment Required error", func(t *testing.T) {
96+
mockFetchers := []resourceDataFetcher{
97+
&mockFetcher{mockErr: errors.New("402 Payment Required: upgrade needed")},
98+
&mockFetcher{mockData: importDataList{{ResourceName: "auth0_client.allowed", ImportID: "client-allowed"}}},
99+
}
100+
101+
_, err := fetchImportData(context.Background(), &cli{
102+
renderer: &display.Renderer{
103+
MessageWriter: &bytes.Buffer{},
104+
ResultWriter: &bytes.Buffer{},
105+
},
106+
}, mockFetchers...)
107+
108+
assert.NoError(t, err)
109+
})
78110
}
79111

80112
func TestGenerateTerraformImportConfig(t *testing.T) {

0 commit comments

Comments
 (0)