Skip to content

Commit b2713c1

Browse files
authored
chore(registry): add support for context workflow (#622)
1 parent 316c164 commit b2713c1

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

scaleway/data_source_registry_namespace_beta.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package scaleway
22

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

7+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
68
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
79
"github.com/scaleway/scaleway-sdk-go/api/registry/v1"
10+
"github.com/scaleway/scaleway-sdk-go/scw"
811
)
912

1013
func dataSourceScalewayRegistryNamespaceBeta() *schema.Resource {
@@ -23,32 +26,32 @@ func dataSourceScalewayRegistryNamespaceBeta() *schema.Resource {
2326
}
2427

2528
return &schema.Resource{
26-
Read: dataSourceScalewayRegistryNamespaceReadBeta,
29+
ReadContext: dataSourceScalewayRegistryNamespaceReadBeta,
2730

2831
Schema: dsSchema,
2932
}
3033
}
3134

32-
func dataSourceScalewayRegistryNamespaceReadBeta(d *schema.ResourceData, m interface{}) error {
35+
func dataSourceScalewayRegistryNamespaceReadBeta(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
3336
api, region, err := registryAPIWithRegion(d, m)
3437
if err != nil {
35-
return err
38+
return diag.FromErr(err)
3639
}
3740

3841
namespaceID, ok := d.GetOk("namespace_id")
3942
if !ok {
4043
res, err := api.ListNamespaces(&registry.ListNamespacesRequest{
4144
Region: region,
4245
Name: expandStringPtr(d.Get("name")),
43-
})
46+
}, scw.WithContext(ctx))
4447
if err != nil {
45-
return err
48+
return diag.FromErr(err)
4649
}
4750
if len(res.Namespaces) == 0 {
48-
return fmt.Errorf("no namespaces found with the name %s", d.Get("name"))
51+
return diag.FromErr(fmt.Errorf("no namespaces found with the name %s", d.Get("name")))
4952
}
5053
if len(res.Namespaces) > 1 {
51-
return fmt.Errorf("%d namespaces found with the same name %s", len(res.Namespaces), d.Get("name"))
54+
return diag.FromErr(fmt.Errorf("%d namespaces found with the same name %s", len(res.Namespaces), d.Get("name")))
5255
}
5356
namespaceID = res.Namespaces[0].ID
5457
}
@@ -57,5 +60,5 @@ func dataSourceScalewayRegistryNamespaceReadBeta(d *schema.ResourceData, m inter
5760
d.SetId(regionalID)
5861
_ = d.Set("namespace_id", regionalID)
5962

60-
return resourceScalewayRegistryNamespaceBetaRead(d, m)
63+
return resourceScalewayRegistryNamespaceBetaRead(ctx, d, m)
6164
}

scaleway/resource_registry_namespace_beta.go

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
package scaleway
22

33
import (
4+
"context"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
47
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
58
"github.com/scaleway/scaleway-sdk-go/api/registry/v1"
69
"github.com/scaleway/scaleway-sdk-go/scw"
710
)
811

912
func resourceScalewayRegistryNamespaceBeta() *schema.Resource {
1013
return &schema.Resource{
11-
Create: resourceScalewayRegistryNamespaceBetaCreate,
12-
Read: resourceScalewayRegistryNamespaceBetaRead,
13-
Update: resourceScalewayRegistryNamespaceBetaUpdate,
14-
Delete: resourceScalewayRegistryNamespaceBetaDelete,
14+
CreateContext: resourceScalewayRegistryNamespaceBetaCreate,
15+
ReadContext: resourceScalewayRegistryNamespaceBetaRead,
16+
UpdateContext: resourceScalewayRegistryNamespaceBetaUpdate,
17+
DeleteContext: resourceScalewayRegistryNamespaceBetaDelete,
1518
Importer: &schema.ResourceImporter{
16-
State: schema.ImportStatePassthrough,
19+
StateContext: schema.ImportStatePassthroughContext,
1720
},
1821
SchemaVersion: 0,
1922
Schema: map[string]*schema.Schema{
@@ -44,10 +47,10 @@ func resourceScalewayRegistryNamespaceBeta() *schema.Resource {
4447
}
4548
}
4649

47-
func resourceScalewayRegistryNamespaceBetaCreate(d *schema.ResourceData, m interface{}) error {
50+
func resourceScalewayRegistryNamespaceBetaCreate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
4851
api, region, err := registryAPIWithRegion(d, m)
4952
if err != nil {
50-
return err
53+
return diag.FromErr(err)
5154
}
5255

5356
ns, err := api.CreateNamespace(&registry.CreateNamespaceRequest{
@@ -56,33 +59,33 @@ func resourceScalewayRegistryNamespaceBetaCreate(d *schema.ResourceData, m inter
5659
Name: d.Get("name").(string),
5760
Description: d.Get("description").(string),
5861
IsPublic: d.Get("is_public").(bool),
59-
})
62+
}, scw.WithContext(ctx))
6063
if err != nil {
61-
return err
64+
return diag.FromErr(err)
6265
}
6366

6467
d.SetId(newRegionalIDString(region, ns.ID))
6568

66-
return resourceScalewayRegistryNamespaceBetaRead(d, m)
69+
return resourceScalewayRegistryNamespaceBetaRead(ctx, d, m)
6770
}
6871

69-
func resourceScalewayRegistryNamespaceBetaRead(d *schema.ResourceData, m interface{}) error {
72+
func resourceScalewayRegistryNamespaceBetaRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
7073
api, region, id, err := registryAPIWithRegionAndID(m, d.Id())
7174
if err != nil {
72-
return err
75+
return diag.FromErr(err)
7376
}
7477

7578
ns, err := api.GetNamespace(&registry.GetNamespaceRequest{
7679
Region: region,
7780
NamespaceID: id,
78-
})
81+
}, scw.WithContext(ctx))
7982

8083
if err != nil {
8184
if is404Error(err) {
8285
d.SetId("")
8386
return nil
8487
}
85-
return err
88+
return diag.FromErr(err)
8689
}
8790

8891
_ = d.Set("name", ns.Name)
@@ -95,10 +98,10 @@ func resourceScalewayRegistryNamespaceBetaRead(d *schema.ResourceData, m interfa
9598
return nil
9699
}
97100

98-
func resourceScalewayRegistryNamespaceBetaUpdate(d *schema.ResourceData, m interface{}) error {
101+
func resourceScalewayRegistryNamespaceBetaUpdate(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
99102
api, region, id, err := registryAPIWithRegionAndID(m, d.Id())
100103
if err != nil {
101-
return err
104+
return diag.FromErr(err)
102105
}
103106

104107
if d.HasChange("description") || d.HasChange("is_public") {
@@ -107,27 +110,27 @@ func resourceScalewayRegistryNamespaceBetaUpdate(d *schema.ResourceData, m inter
107110
NamespaceID: id,
108111
Description: expandStringPtr(d.Get("description")),
109112
IsPublic: scw.BoolPtr(d.Get("is_public").(bool)),
110-
}); err != nil {
111-
return err
113+
}, scw.WithContext(ctx)); err != nil {
114+
return diag.FromErr(err)
112115
}
113116
}
114117

115-
return resourceScalewayRegistryNamespaceBetaRead(d, m)
118+
return resourceScalewayRegistryNamespaceBetaRead(ctx, d, m)
116119
}
117120

118-
func resourceScalewayRegistryNamespaceBetaDelete(d *schema.ResourceData, m interface{}) error {
121+
func resourceScalewayRegistryNamespaceBetaDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
119122
api, region, id, err := registryAPIWithRegionAndID(m, d.Id())
120123
if err != nil {
121-
return err
124+
return diag.FromErr(err)
122125
}
123126

124127
_, err = api.DeleteNamespace(&registry.DeleteNamespaceRequest{
125128
Region: region,
126129
NamespaceID: id,
127-
})
130+
}, scw.WithContext(ctx))
128131

129132
if err != nil && !is404Error(err) {
130-
return err
133+
return diag.FromErr(err)
131134
}
132135

133136
return nil

0 commit comments

Comments
 (0)