Skip to content

Commit f6802ab

Browse files
committed
Use context-aware CRUD functions for Service Pipelines Email resource
1 parent f9aa323 commit f6802ab

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

gitlab/resource_gitlab_service_pipelines_email.go

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

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

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

1214
func resourceGitlabServicePipelinesEmail() *schema.Resource {
1315
return &schema.Resource{
14-
Create: resourceGitlabServicePipelinesEmailCreate,
15-
Read: resourceGitlabServicePipelinesEmailRead,
16-
Update: resourceGitlabServicePipelinesEmailCreate,
17-
Delete: resourceGitlabServicePipelinesEmailDelete,
16+
CreateContext: resourceGitlabServicePipelinesEmailCreate,
17+
ReadContext: resourceGitlabServicePipelinesEmailRead,
18+
UpdateContext: resourceGitlabServicePipelinesEmailCreate,
19+
DeleteContext: resourceGitlabServicePipelinesEmailDelete,
1820
Importer: &schema.ResourceImporter{
1921
StateContext: schema.ImportStatePassthroughContext,
2022
},
@@ -51,7 +53,7 @@ func resourceGitlabServicePipelinesEmailSetToState(d *schema.ResourceData, servi
5153
d.Set("branches_to_be_notified", service.Properties.BranchesToBeNotified)
5254
}
5355

54-
func resourceGitlabServicePipelinesEmailCreate(d *schema.ResourceData, meta interface{}) error {
56+
func resourceGitlabServicePipelinesEmailCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
5557
client := meta.(*gitlab.Client)
5658
project := d.Get("project").(string)
5759
d.SetId(project)
@@ -63,41 +65,45 @@ func resourceGitlabServicePipelinesEmailCreate(d *schema.ResourceData, meta inte
6365

6466
log.Printf("[DEBUG] create gitlab pipelines emails service for project %s", project)
6567

66-
_, err := client.Services.SetPipelinesEmailService(project, options)
68+
_, err := client.Services.SetPipelinesEmailService(project, options, gitlab.WithContext(ctx))
6769
if err != nil {
68-
return err
70+
return diag.FromErr(err)
6971
}
7072

71-
return resourceGitlabServicePipelinesEmailRead(d, meta)
73+
return resourceGitlabServicePipelinesEmailRead(ctx, d, meta)
7274
}
7375

74-
func resourceGitlabServicePipelinesEmailRead(d *schema.ResourceData, meta interface{}) error {
76+
func resourceGitlabServicePipelinesEmailRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
7577
client := meta.(*gitlab.Client)
7678
project := d.Id()
7779

7880
log.Printf("[DEBUG] read gitlab pipelines emails service for project %s", project)
7981

80-
service, _, err := client.Services.GetPipelinesEmailService(project)
82+
service, _, err := client.Services.GetPipelinesEmailService(project, gitlab.WithContext(ctx))
8183
if err != nil {
8284
if is404(err) {
8385
log.Printf("[DEBUG] gitlab pipelines emails service not found for project %s", project)
8486
d.SetId("")
8587
return nil
8688
}
87-
return err
89+
return diag.FromErr(err)
8890
}
8991

9092
d.Set("project", project)
9193
resourceGitlabServicePipelinesEmailSetToState(d, service)
9294
return nil
9395
}
9496

95-
func resourceGitlabServicePipelinesEmailDelete(d *schema.ResourceData, meta interface{}) error {
97+
func resourceGitlabServicePipelinesEmailDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
9698
client := meta.(*gitlab.Client)
9799
project := d.Id()
98100

99101
log.Printf("[DEBUG] delete gitlab pipelines email service for project %s", project)
100102

101-
_, err := client.Services.DeletePipelinesEmailService(project)
102-
return err
103+
_, err := client.Services.DeletePipelinesEmailService(project, gitlab.WithContext(ctx))
104+
if err != nil {
105+
return diag.FromErr(err)
106+
}
107+
108+
return nil
103109
}

0 commit comments

Comments
 (0)