Skip to content

Commit 5090358

Browse files
committed
Review changes
1 parent 99cdcf4 commit 5090358

File tree

2 files changed

+29
-27
lines changed

2 files changed

+29
-27
lines changed

gitlab/resource_gitlab_project_access_token.go

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

33
import (
4+
"context"
45
"fmt"
56
"log"
67
"strconv"
78
"time"
89

9-
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
10-
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1113
gitlab "github.com/xanzy/go-gitlab"
1214
)
1315

1416
func resourceGitlabProjectAccessToken() *schema.Resource {
1517
// lintignore: XR002 // TODO: Resolve this tfproviderlint issue
1618
return &schema.Resource{
17-
Create: resourceGitlabProjectAccessTokenCreate,
18-
Read: resourceGitlabProjectAccessTokenRead,
19-
Delete: resourceGitlabProjectAccessTokenDelete,
19+
CreateContext: resourceGitlabProjectAccessTokenCreate,
20+
ReadContext: resourceGitlabProjectAccessTokenRead,
21+
DeleteContext: resourceGitlabProjectAccessTokenDelete,
2022

2123
Schema: map[string]*schema.Schema{
2224
"project": {
23-
Type: schema.TypeInt,
25+
Type: schema.TypeString,
2426
Required: true,
2527
ForceNew: true,
2628
},
@@ -77,8 +79,9 @@ func resourceGitlabProjectAccessToken() *schema.Resource {
7779
}
7880
}
7981

80-
func resourceGitlabProjectAccessTokenCreate(d *schema.ResourceData, meta interface{}) error {
82+
func resourceGitlabProjectAccessTokenCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
8183
client := meta.(*gitlab.Client)
84+
8285
project := d.Get("project").(int)
8386
options := &gitlab.CreateProjectAccessTokenOptions{
8487
Name: gitlab.String(d.Get("name").(string)),
@@ -90,16 +93,16 @@ func resourceGitlabProjectAccessTokenCreate(d *schema.ResourceData, meta interfa
9093
if v, ok := d.GetOk("expires_at"); ok {
9194
parsedExpiresAt, err := time.Parse("2006-01-02", v.(string))
9295
if err != nil {
93-
return fmt.Errorf("Invalid expires_at date: %v", err)
96+
return diag.Errorf("Invalid expires_at date: %v", err)
9497
}
9598
parsedExpiresAtISOTime := gitlab.ISOTime(parsedExpiresAt)
9699
options.ExpiresAt = &parsedExpiresAtISOTime
97100
log.Printf("[DEBUG] create gitlab ProjectAccessToken %s with expires_at %s for project ID %d", *options.Name, *options.ExpiresAt, project)
98101
}
99102

100-
projectAccessToken, _, err := client.ProjectAccessTokens.CreateProjectAccessToken(project, options)
103+
projectAccessToken, _, err := client.ProjectAccessTokens.CreateProjectAccessToken(project, options, gitlab.WithContext(ctx))
101104
if err != nil {
102-
return err
105+
return diag.FromErr(err)
103106
}
104107

105108
log.Printf("[DEBUG] created gitlab ProjectAccessToken %d - %s for project ID %d", projectAccessToken.ID, *options.Name, project)
@@ -109,26 +112,26 @@ func resourceGitlabProjectAccessTokenCreate(d *schema.ResourceData, meta interfa
109112
d.SetId(buildTwoPartID(&projectString, &PATstring))
110113
d.Set("token", projectAccessToken.Token)
111114

112-
return resourceGitlabProjectAccessTokenRead(d, meta)
115+
return resourceGitlabProjectAccessTokenRead(ctx, d, meta)
113116
}
114117

115-
func resourceGitlabProjectAccessTokenRead(d *schema.ResourceData, meta interface{}) error {
118+
func resourceGitlabProjectAccessTokenRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
116119

117120
projectString, PATstring, err := parseTwoPartID(d.Id())
118121
if err != nil {
119-
return fmt.Errorf("Error parsing ID: %s", d.Id())
122+
return diag.Errorf("Error parsing ID: %s", d.Id())
120123
}
121124

122125
client := meta.(*gitlab.Client)
123126

124127
project, err := strconv.Atoi(projectString)
125128
if err != nil {
126-
return fmt.Errorf("%s cannot be converted to int", projectString)
129+
return diag.Errorf("%s cannot be converted to int", projectString)
127130
}
128131

129132
projectAccessTokenID, err := strconv.Atoi(PATstring)
130133
if err != nil {
131-
return fmt.Errorf("%s cannot be converted to int", PATstring)
134+
return diag.Errorf("%s cannot be converted to int", PATstring)
132135
}
133136

134137
log.Printf("[DEBUG] read gitlab ProjectAccessToken %d, project ID %d", projectAccessTokenID, project)
@@ -143,9 +146,9 @@ func resourceGitlabProjectAccessTokenRead(d *schema.ResourceData, meta interface
143146

144147
page := 1
145148
for page != 0 {
146-
projectAccessTokens, response, err := client.ProjectAccessTokens.ListProjectAccessTokens(project, &gitlab.ListProjectAccessTokensOptions{Page: page, PerPage: 100})
149+
projectAccessTokens, response, err := client.ProjectAccessTokens.ListProjectAccessTokens(project, &gitlab.ListProjectAccessTokensOptions{Page: page, PerPage: 100}, gitlab.WithContext(ctx))
147150
if err != nil {
148-
return err
151+
return diag.FromErr(err)
149152
}
150153

151154
for _, projectAccessToken := range projectAccessTokens {
@@ -174,26 +177,26 @@ func resourceGitlabProjectAccessTokenRead(d *schema.ResourceData, meta interface
174177
return nil
175178
}
176179

177-
func resourceGitlabProjectAccessTokenDelete(d *schema.ResourceData, meta interface{}) error {
180+
func resourceGitlabProjectAccessTokenDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
178181

179182
projectString, PATstring, err := parseTwoPartID(d.Id())
180183
if err != nil {
181-
return fmt.Errorf("Error parsing ID: %s", d.Id())
184+
return diag.Errorf("Error parsing ID: %s", d.Id())
182185
}
183186

184187
client := meta.(*gitlab.Client)
185188

186189
project, err := strconv.Atoi(projectString)
187190
if err != nil {
188-
return fmt.Errorf("%s cannot be converted to int", projectString)
191+
return diag.Errorf("%s cannot be converted to int", projectString)
189192
}
190193

191194
projectAccessTokenID, err := strconv.Atoi(PATstring)
192195
if err != nil {
193-
return fmt.Errorf("%s cannot be converted to int", PATstring)
196+
return diag.Errorf("%s cannot be converted to int", PATstring)
194197
}
195198

196199
log.Printf("[DEBUG] Delete gitlab ProjectAccessToken %s", d.Id())
197-
_, err = client.ProjectAccessTokens.DeleteProjectAccessToken(project, projectAccessTokenID)
198-
return err
200+
_, err = client.ProjectAccessTokens.DeleteProjectAccessToken(project, projectAccessTokenID, gitlab.WithContext(ctx))
201+
return diag.FromErr(err)
199202
}

gitlab/resource_gitlab_project_access_token_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"testing"
77
"time"
88

9-
"github.com/hashicorp/terraform-plugin-sdk/helper/acctest"
10-
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
11-
"github.com/hashicorp/terraform-plugin-sdk/terraform"
9+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1212
gitlab "github.com/xanzy/go-gitlab"
1313
)
1414

@@ -17,7 +17,6 @@ func TestAccGitlabProjectAccessToken_basic(t *testing.T) {
1717
rInt := acctest.RandInt()
1818

1919
ctx := testAccGitlabProjectStart(t)
20-
ctx.finish()
2120

2221
resource.Test(t, resource.TestCase{
2322
PreCheck: func() { testAccPreCheck(t) },

0 commit comments

Comments
 (0)