Skip to content

Commit ee2600f

Browse files
committed
Use context-aware CRUD functions for Service JIRA resource
1 parent c5d4837 commit ee2600f

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

gitlab/resource_gitlab_service_jira.go

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

33
import (
4-
"fmt"
4+
"context"
55
"log"
66
"net/http"
77

8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
89
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
910
gitlab "github.com/xanzy/go-gitlab"
1011
)
1112

1213
func resourceGitlabServiceJira() *schema.Resource {
1314
return &schema.Resource{
14-
Create: resourceGitlabServiceJiraCreate,
15-
Read: resourceGitlabServiceJiraRead,
16-
Update: resourceGitlabServiceJiraUpdate,
17-
Delete: resourceGitlabServiceJiraDelete,
15+
CreateContext: resourceGitlabServiceJiraCreate,
16+
ReadContext: resourceGitlabServiceJiraRead,
17+
UpdateContext: resourceGitlabServiceJiraUpdate,
18+
DeleteContext: resourceGitlabServiceJiraDelete,
1819
Importer: &schema.ResourceImporter{
19-
State: resourceGitlabServiceJiraImportState,
20+
StateContext: resourceGitlabServiceJiraImportState,
2021
},
2122

2223
Schema: map[string]*schema.Schema{
@@ -113,52 +114,51 @@ func resourceGitlabServiceJira() *schema.Resource {
113114
}
114115
}
115116

116-
func resourceGitlabServiceJiraCreate(d *schema.ResourceData, meta interface{}) error {
117+
func resourceGitlabServiceJiraCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
117118
client := meta.(*gitlab.Client)
118119

119120
project := d.Get("project").(string)
120121

121122
jiraOptions, err := expandJiraOptions(d)
122123
if err != nil {
123-
return err
124+
return diag.FromErr(err)
124125
}
125126

126127
log.Printf("[DEBUG] Create Gitlab Jira service")
127128

128-
_, err = client.Services.SetJiraService(project, jiraOptions)
129-
if err != nil {
130-
return fmt.Errorf("[ERROR] Couldn't create Gitlab Jira service: %s", err)
129+
if _, err := client.Services.SetJiraService(project, jiraOptions, gitlab.WithContext(ctx)); err != nil {
130+
return diag.Errorf("couldn't create Gitlab Jira service: %v", err)
131131
}
132132

133133
d.SetId(project)
134134

135-
return resourceGitlabServiceJiraRead(d, meta)
135+
return resourceGitlabServiceJiraRead(ctx, d, meta)
136136
}
137137

138-
func resourceGitlabServiceJiraRead(d *schema.ResourceData, meta interface{}) error {
138+
func resourceGitlabServiceJiraRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
139139
client := meta.(*gitlab.Client)
140140
project := d.Get("project").(string)
141141

142-
p, resp, err := client.Projects.GetProject(project, nil)
142+
p, resp, err := client.Projects.GetProject(project, nil, gitlab.WithContext(ctx))
143143
if err != nil {
144144
if resp != nil && resp.StatusCode == http.StatusNotFound {
145145
log.Printf("[DEBUG] Removing Gitlab Jira service %s because project %s not found", d.Id(), p.Name)
146146
d.SetId("")
147147
return nil
148148
}
149-
return err
149+
return diag.FromErr(err)
150150
}
151151

152152
log.Printf("[DEBUG] Read Gitlab Jira service %s", d.Id())
153153

154-
jiraService, _, err := client.Services.GetJiraService(project)
154+
jiraService, _, err := client.Services.GetJiraService(project, gitlab.WithContext(ctx))
155155
if err != nil {
156156
if is404(err) {
157157
log.Printf("[DEBUG] gitlab jira service not found %s", project)
158158
d.SetId("")
159159
return nil
160160
}
161-
return err
161+
return diag.FromErr(err)
162162
}
163163

164164
if v := jiraService.Properties.URL; v != "" {
@@ -191,20 +191,23 @@ func resourceGitlabServiceJiraRead(d *schema.ResourceData, meta interface{}) err
191191
return nil
192192
}
193193

194-
func resourceGitlabServiceJiraUpdate(d *schema.ResourceData, meta interface{}) error {
195-
return resourceGitlabServiceJiraCreate(d, meta)
194+
func resourceGitlabServiceJiraUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
195+
return resourceGitlabServiceJiraCreate(ctx, d, meta)
196196
}
197197

198-
func resourceGitlabServiceJiraDelete(d *schema.ResourceData, meta interface{}) error {
198+
func resourceGitlabServiceJiraDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
199199
client := meta.(*gitlab.Client)
200200

201201
project := d.Get("project").(string)
202202

203203
log.Printf("[DEBUG] Delete Gitlab Jira service %s", d.Id())
204204

205-
_, err := client.Services.DeleteJiraService(project)
205+
_, err := client.Services.DeleteJiraService(project, gitlab.WithContext(ctx))
206+
if err != nil {
207+
return diag.FromErr(err)
208+
}
206209

207-
return err
210+
return nil
208211
}
209212

210213
func expandJiraOptions(d *schema.ResourceData) (*gitlab.SetJiraServiceOptions, error) {
@@ -227,7 +230,7 @@ func expandJiraOptions(d *schema.ResourceData) (*gitlab.SetJiraServiceOptions, e
227230
return &setJiraServiceOptions, nil
228231
}
229232

230-
func resourceGitlabServiceJiraImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
233+
func resourceGitlabServiceJiraImportState(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
231234
d.Set("project", d.Id())
232235

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

0 commit comments

Comments
 (0)