Skip to content

Commit 7e6f851

Browse files
authored
Merge branch 'master' into tags_loose_contraints
2 parents 953ef8d + 8aa02d8 commit 7e6f851

6 files changed

+666
-421
lines changed

scaleway/helpers_function.go

+18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package scaleway
22

33
import (
4+
"context"
45
"time"
56

67
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -10,6 +11,7 @@ import (
1011

1112
const (
1213
defaultFunctionNamespaceTimeout = 5 * time.Minute
14+
defaultFunctionRetryInterval = 5 * time.Second
1315
)
1416

1517
// functionAPIWithRegion returns a new container registry API and the region.
@@ -35,3 +37,19 @@ func functionAPIWithRegionAndID(m interface{}, id string) (*function.API, scw.Re
3537
}
3638
return api, region, id, nil
3739
}
40+
41+
func waitForFunctionNamespace(ctx context.Context, functionAPI *function.API, region scw.Region, id string, timeout time.Duration) (*function.Namespace, error) {
42+
retryInterval := defaultFunctionRetryInterval
43+
if DefaultWaitRetryInterval != nil {
44+
retryInterval = *DefaultWaitRetryInterval
45+
}
46+
47+
ns, err := functionAPI.WaitForNamespace(&function.WaitForNamespaceRequest{
48+
Region: region,
49+
NamespaceID: id,
50+
RetryInterval: &retryInterval,
51+
Timeout: scw.TimeDurationPtr(timeout),
52+
}, scw.WithContext(ctx))
53+
54+
return ns, err
55+
}

scaleway/resource_function_namespace.go

+14-18
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ func resourceScalewayFunctionNamespaceCreate(ctx context.Context, d *schema.Reso
8282

8383
d.SetId(newRegionalIDString(region, ns.ID))
8484

85+
_, err = waitForFunctionNamespace(ctx, api, region, ns.ID, d.Timeout(schema.TimeoutCreate))
86+
if err != nil {
87+
return diag.FromErr(err)
88+
}
89+
8590
return resourceScalewayFunctionNamespaceRead(ctx, d, meta)
8691
}
8792

@@ -91,12 +96,7 @@ func resourceScalewayFunctionNamespaceRead(ctx context.Context, d *schema.Resour
9196
return diag.FromErr(err)
9297
}
9398

94-
ns, err := api.WaitForNamespace(&function.WaitForNamespaceRequest{
95-
Region: region,
96-
NamespaceID: id,
97-
RetryInterval: DefaultWaitRetryInterval,
98-
}, scw.WithContext(ctx))
99-
99+
ns, err := waitForFunctionNamespace(ctx, api, region, id, d.Timeout(schema.TimeoutRead))
100100
if err != nil {
101101
if is404Error(err) {
102102
d.SetId("")
@@ -123,11 +123,7 @@ func resourceScalewayFunctionNamespaceUpdate(ctx context.Context, d *schema.Reso
123123
return diag.FromErr(err)
124124
}
125125

126-
ns, err := api.WaitForNamespace(&function.WaitForNamespaceRequest{
127-
Region: region,
128-
NamespaceID: id,
129-
RetryInterval: DefaultWaitRetryInterval,
130-
}, scw.WithContext(ctx))
126+
ns, err := waitForFunctionNamespace(ctx, api, region, id, d.Timeout(schema.TimeoutUpdate))
131127
if err != nil {
132128
if is404Error(err) {
133129
d.SetId("")
@@ -137,7 +133,7 @@ func resourceScalewayFunctionNamespaceUpdate(ctx context.Context, d *schema.Reso
137133
}
138134

139135
req := &function.UpdateNamespaceRequest{
140-
Region: region,
136+
Region: ns.Region,
141137
NamespaceID: ns.ID,
142138
}
143139

@@ -162,20 +158,20 @@ func resourceScalewayFunctionNamespaceDelete(ctx context.Context, d *schema.Reso
162158
return diag.FromErr(err)
163159
}
164160

165-
_, err = api.WaitForNamespace(&function.WaitForNamespaceRequest{
166-
Region: region,
167-
NamespaceID: id,
168-
RetryInterval: DefaultWaitRetryInterval,
169-
}, scw.WithContext(ctx))
161+
_, err = waitForFunctionNamespace(ctx, api, region, id, d.Timeout(schema.TimeoutDelete))
170162
if err != nil {
171-
return nil
163+
return diag.FromErr(err)
172164
}
173165

174166
_, err = api.DeleteNamespace(&function.DeleteNamespaceRequest{
175167
Region: region,
176168
NamespaceID: id,
177169
}, scw.WithContext(ctx))
170+
if err != nil {
171+
return diag.FromErr(err)
172+
}
178173

174+
_, err = waitForFunctionNamespace(ctx, api, region, id, d.Timeout(schema.TimeoutDelete))
179175
if err != nil && !is404Error(err) {
180176
return diag.FromErr(err)
181177
}

0 commit comments

Comments
 (0)