Skip to content

Commit 969eaa5

Browse files
committed
Use context-aware CRUD functions for Service Slack resource
1 parent f6802ab commit 969eaa5

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

gitlab/resource_gitlab_service_slack.go

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

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

8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
79
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
810
gitlab "github.com/xanzy/go-gitlab"
911
)
1012

1113
func resourceGitlabServiceSlack() *schema.Resource {
1214
return &schema.Resource{
13-
Create: resourceGitlabServiceSlackCreate,
14-
Read: resourceGitlabServiceSlackRead,
15-
Update: resourceGitlabServiceSlackUpdate,
16-
Delete: resourceGitlabServiceSlackDelete,
15+
CreateContext: resourceGitlabServiceSlackCreate,
16+
ReadContext: resourceGitlabServiceSlackRead,
17+
UpdateContext: resourceGitlabServiceSlackUpdate,
18+
DeleteContext: resourceGitlabServiceSlackDelete,
1719
Importer: &schema.ResourceImporter{
18-
State: resourceGitlabServiceSlackImportState,
20+
StateContext: resourceGitlabServiceSlackImportState,
1921
},
2022

2123
Schema: map[string]*schema.Schema{
@@ -172,7 +174,7 @@ func resourceGitlabServiceSlackSetToState(d *schema.ResourceData, service *gitla
172174
return nil
173175
}
174176

175-
func resourceGitlabServiceSlackCreate(d *schema.ResourceData, meta interface{}) error {
177+
func resourceGitlabServiceSlackCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
176178
client := meta.(*gitlab.Client)
177179
project := d.Get("project").(string)
178180

@@ -204,52 +206,56 @@ func resourceGitlabServiceSlackCreate(d *schema.ResourceData, meta interface{})
204206
opts.WikiPageEvents = gitlab.Bool(d.Get("wiki_page_events").(bool))
205207
opts.WikiPageChannel = gitlab.String(d.Get("wiki_page_channel").(string))
206208

207-
_, err := client.Services.SetSlackService(project, opts)
209+
_, err := client.Services.SetSlackService(project, opts, gitlab.WithContext(ctx))
208210
if err != nil {
209-
return err
211+
return diag.FromErr(err)
210212
}
211213

212-
return resourceGitlabServiceSlackRead(d, meta)
214+
return resourceGitlabServiceSlackRead(ctx, d, meta)
213215
}
214216

215-
func resourceGitlabServiceSlackRead(d *schema.ResourceData, meta interface{}) error {
217+
func resourceGitlabServiceSlackRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
216218
client := meta.(*gitlab.Client)
217219
project := d.Get("project").(string)
218220

219221
log.Printf("[DEBUG] read gitlab slack service for project %s", project)
220222

221-
service, _, err := client.Services.GetSlackService(project)
223+
service, _, err := client.Services.GetSlackService(project, gitlab.WithContext(ctx))
222224
if err != nil {
223225
if is404(err) {
224226
log.Printf("[DEBUG] gitlab slack service not found %s", project)
225227
d.SetId("")
226228
return nil
227229
}
228-
return err
230+
return diag.FromErr(err)
229231
}
230232

231233
if err = resourceGitlabServiceSlackSetToState(d, service); err != nil {
232-
return err
234+
return diag.FromErr(err)
233235
}
234236

235237
return nil
236238
}
237239

238-
func resourceGitlabServiceSlackUpdate(d *schema.ResourceData, meta interface{}) error {
239-
return resourceGitlabServiceSlackCreate(d, meta)
240+
func resourceGitlabServiceSlackUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
241+
return resourceGitlabServiceSlackCreate(ctx, d, meta)
240242
}
241243

242-
func resourceGitlabServiceSlackDelete(d *schema.ResourceData, meta interface{}) error {
244+
func resourceGitlabServiceSlackDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
243245
client := meta.(*gitlab.Client)
244246
project := d.Get("project").(string)
245247

246248
log.Printf("[DEBUG] delete gitlab slack service for project %s", project)
247249

248-
_, err := client.Services.DeleteSlackService(project)
249-
return err
250+
_, err := client.Services.DeleteSlackService(project, gitlab.WithContext(ctx))
251+
if err != nil {
252+
return diag.FromErr(err)
253+
}
254+
255+
return nil
250256
}
251257

252-
func resourceGitlabServiceSlackImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
258+
func resourceGitlabServiceSlackImportState(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
253259
d.Set("project", d.Id())
254260

255261
return []*schema.ResourceData{d}, nil

0 commit comments

Comments
 (0)