Skip to content

Commit 4279b4b

Browse files
committed
Use context-aware CRUD functions for User resource
1 parent 8f25bb4 commit 4279b4b

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

gitlab/resource_gitlab_user.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import (
1515

1616
func resourceGitlabUser() *schema.Resource {
1717
return &schema.Resource{
18-
Create: resourceGitlabUserCreate,
19-
Read: resourceGitlabUserRead,
20-
Update: resourceGitlabUserUpdate,
18+
CreateContext: resourceGitlabUserCreate,
19+
ReadContext: resourceGitlabUserRead,
20+
UpdateContext: resourceGitlabUserUpdate,
2121
DeleteContext: resourceGitlabUserDelete,
2222
Importer: &schema.ResourceImporter{
2323
StateContext: schema.ImportStatePassthroughContext,
@@ -90,7 +90,7 @@ func resourceGitlabUserSetToState(d *schema.ResourceData, user *gitlab.User) {
9090
d.Set("skip_confirmation", user.ConfirmedAt != nil && !user.ConfirmedAt.IsZero())
9191
}
9292

93-
func resourceGitlabUserCreate(d *schema.ResourceData, meta interface{}) error {
93+
func resourceGitlabUserCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
9494
client := meta.(*gitlab.Client)
9595
options := &gitlab.CreateUserOptions{
9696
Email: gitlab.String(d.Get("email").(string)),
@@ -107,42 +107,42 @@ func resourceGitlabUserCreate(d *schema.ResourceData, meta interface{}) error {
107107
}
108108

109109
if *options.Password == "" && !*options.ResetPassword {
110-
return fmt.Errorf("At least one of either password or reset_password must be defined")
110+
return diag.Errorf("At least one of either password or reset_password must be defined")
111111
}
112112

113113
log.Printf("[DEBUG] create gitlab user %q", *options.Username)
114114

115-
user, _, err := client.Users.CreateUser(options)
115+
user, _, err := client.Users.CreateUser(options, gitlab.WithContext(ctx))
116116
if err != nil {
117-
return err
117+
return diag.FromErr(err)
118118
}
119119

120120
d.SetId(fmt.Sprintf("%d", user.ID))
121121

122-
return resourceGitlabUserRead(d, meta)
122+
return resourceGitlabUserRead(ctx, d, meta)
123123
}
124124

125-
func resourceGitlabUserRead(d *schema.ResourceData, meta interface{}) error {
125+
func resourceGitlabUserRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
126126
client := meta.(*gitlab.Client)
127127
log.Printf("[DEBUG] import -- read gitlab user %s", d.Id())
128128

129129
id, _ := strconv.Atoi(d.Id())
130130

131-
user, _, err := client.Users.GetUser(id, gitlab.GetUsersOptions{})
131+
user, _, err := client.Users.GetUser(id, gitlab.GetUsersOptions{}, gitlab.WithContext(ctx))
132132
if err != nil {
133133
if is404(err) {
134134
log.Printf("[DEBUG] gitlab user not found %d", id)
135135
d.SetId("")
136136
return nil
137137
}
138-
return err
138+
return diag.FromErr(err)
139139
}
140140

141141
resourceGitlabUserSetToState(d, user)
142142
return nil
143143
}
144144

145-
func resourceGitlabUserUpdate(d *schema.ResourceData, meta interface{}) error {
145+
func resourceGitlabUserUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
146146
client := meta.(*gitlab.Client)
147147

148148
options := &gitlab.ModifyUserOptions{}
@@ -184,12 +184,12 @@ func resourceGitlabUserUpdate(d *schema.ResourceData, meta interface{}) error {
184184

185185
id, _ := strconv.Atoi(d.Id())
186186

187-
_, _, err := client.Users.ModifyUser(id, options)
187+
_, _, err := client.Users.ModifyUser(id, options, gitlab.WithContext(ctx))
188188
if err != nil {
189-
return err
189+
return diag.FromErr(err)
190190
}
191191

192-
return resourceGitlabUserRead(d, meta)
192+
return resourceGitlabUserRead(ctx, d, meta)
193193
}
194194

195195
func resourceGitlabUserDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
@@ -198,15 +198,15 @@ func resourceGitlabUserDelete(ctx context.Context, d *schema.ResourceData, meta
198198

199199
id, _ := strconv.Atoi(d.Id())
200200

201-
if _, err := client.Users.DeleteUser(id); err != nil {
201+
if _, err := client.Users.DeleteUser(id, gitlab.WithContext(ctx)); err != nil {
202202
return diag.FromErr(err)
203203
}
204204

205205
stateConf := &resource.StateChangeConf{
206206
Timeout: 5 * time.Minute,
207207
Target: []string{"Deleted"},
208208
Refresh: func() (interface{}, string, error) {
209-
user, resp, err := client.Users.GetUser(id, gitlab.GetUsersOptions{})
209+
user, resp, err := client.Users.GetUser(id, gitlab.GetUsersOptions{}, gitlab.WithContext(ctx))
210210
if resp != nil && resp.StatusCode == 404 {
211211
return user, "Deleted", nil
212212
}

0 commit comments

Comments
 (0)