Skip to content

Commit c9632cb

Browse files
committed
Use context-aware CRUD functions for Project Mirror resource
1 parent c656347 commit c9632cb

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

gitlab/resource_gitlab_project_mirror.go

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

33
import (
4+
"context"
45
"log"
56
"net/url"
67
"strconv"
78
"strings"
89

10+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
911
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1012
"github.com/xanzy/go-gitlab"
1113
)
1214

1315
func resourceGitlabProjectMirror() *schema.Resource {
1416
return &schema.Resource{
15-
Create: resourceGitlabProjectMirrorCreate,
16-
Read: resourceGitlabProjectMirrorRead,
17-
Update: resourceGitlabProjectMirrorUpdate,
18-
Delete: resourceGitlabProjectMirrorDelete,
17+
CreateContext: resourceGitlabProjectMirrorCreate,
18+
ReadContext: resourceGitlabProjectMirrorRead,
19+
UpdateContext: resourceGitlabProjectMirrorUpdate,
20+
DeleteContext: resourceGitlabProjectMirrorDelete,
1921
Importer: &schema.ResourceImporter{
2022
StateContext: schema.ImportStatePassthroughContext,
2123
},
@@ -72,7 +74,7 @@ func resourceGitlabProjectMirror() *schema.Resource {
7274
}
7375
}
7476

75-
func resourceGitlabProjectMirrorCreate(d *schema.ResourceData, meta interface{}) error {
77+
func resourceGitlabProjectMirrorCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
7678
client := meta.(*gitlab.Client)
7779

7880
projectID := d.Get("project").(string)
@@ -90,18 +92,18 @@ func resourceGitlabProjectMirrorCreate(d *schema.ResourceData, meta interface{})
9092

9193
log.Printf("[DEBUG] create gitlab project mirror for project %v", projectID)
9294

93-
mirror, _, err := client.ProjectMirrors.AddProjectMirror(projectID, options)
95+
mirror, _, err := client.ProjectMirrors.AddProjectMirror(projectID, options, gitlab.WithContext(ctx))
9496
if err != nil {
95-
return err
97+
return diag.FromErr(err)
9698
}
9799
d.Set("mirror_id", mirror.ID)
98100

99101
mirrorID := strconv.Itoa(mirror.ID)
100102
d.SetId(buildTwoPartID(&projectID, &mirrorID))
101-
return resourceGitlabProjectMirrorRead(d, meta)
103+
return resourceGitlabProjectMirrorRead(ctx, d, meta)
102104
}
103105

104-
func resourceGitlabProjectMirrorUpdate(d *schema.ResourceData, meta interface{}) error {
106+
func resourceGitlabProjectMirrorUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
105107
client := meta.(*gitlab.Client)
106108

107109
mirrorID := d.Get("mirror_id").(int)
@@ -117,15 +119,15 @@ func resourceGitlabProjectMirrorUpdate(d *schema.ResourceData, meta interface{})
117119
}
118120
log.Printf("[DEBUG] update gitlab project mirror %v for %s", mirrorID, projectID)
119121

120-
_, _, err := client.ProjectMirrors.EditProjectMirror(projectID, mirrorID, &options)
122+
_, _, err := client.ProjectMirrors.EditProjectMirror(projectID, mirrorID, &options, gitlab.WithContext(ctx))
121123
if err != nil {
122-
return err
124+
return diag.FromErr(err)
123125
}
124-
return resourceGitlabProjectMirrorRead(d, meta)
126+
return resourceGitlabProjectMirrorRead(ctx, d, meta)
125127
}
126128

127129
// Documented remote mirrors API does not support a delete method, instead mirror is disabled.
128-
func resourceGitlabProjectMirrorDelete(d *schema.ResourceData, meta interface{}) error {
130+
func resourceGitlabProjectMirrorDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
129131
client := meta.(*gitlab.Client)
130132

131133
enabled := false
@@ -142,20 +144,23 @@ func resourceGitlabProjectMirrorDelete(d *schema.ResourceData, meta interface{})
142144
}
143145
log.Printf("[DEBUG] Disable gitlab project mirror %v for %s", mirrorID, projectID)
144146

145-
_, _, err := client.ProjectMirrors.EditProjectMirror(projectID, mirrorID, &options)
147+
_, _, err := client.ProjectMirrors.EditProjectMirror(projectID, mirrorID, &options, gitlab.WithContext(ctx))
148+
if err != nil {
149+
return diag.FromErr(err)
150+
}
146151

147-
return err
152+
return nil
148153
}
149154

150-
func resourceGitlabProjectMirrorRead(d *schema.ResourceData, meta interface{}) error {
155+
func resourceGitlabProjectMirrorRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
151156
client := meta.(*gitlab.Client)
152157

153158
ids := strings.Split(d.Id(), ":")
154159
projectID := ids[0]
155160
mirrorID := ids[1]
156161
integerMirrorID, err := strconv.Atoi(mirrorID)
157162
if err != nil {
158-
return err
163+
return diag.FromErr(err)
159164
}
160165
log.Printf("[DEBUG] read gitlab project mirror %s id %v", projectID, mirrorID)
161166

@@ -168,9 +173,9 @@ func resourceGitlabProjectMirrorRead(d *schema.ResourceData, meta interface{}) e
168173
}
169174

170175
for {
171-
mirrors, response, err := client.ProjectMirrors.ListProjectMirror(projectID, opts)
176+
mirrors, response, err := client.ProjectMirrors.ListProjectMirror(projectID, opts, gitlab.WithContext(ctx))
172177
if err != nil {
173-
return err
178+
return diag.FromErr(err)
174179
}
175180

176181
for _, m := range mirrors {

0 commit comments

Comments
 (0)