1
1
package gitlab
2
2
3
3
import (
4
- "fmt "
4
+ "context "
5
5
"log"
6
6
"net/http"
7
7
8
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
8
9
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9
10
gitlab "github.com/xanzy/go-gitlab"
10
11
)
11
12
12
13
func resourceGitlabServiceMicrosoftTeams () * schema.Resource {
13
14
return & schema.Resource {
14
- Create : resourceGitlabServiceMicrosoftTeamsCreate ,
15
- Read : resourceGitlabServiceMicrosoftTeamsRead ,
16
- Update : resourceGitlabServiceMicrosoftTeamsUpdate ,
17
- Delete : resourceGitlabServiceMicrosoftTeamsDelete ,
15
+ CreateContext : resourceGitlabServiceMicrosoftTeamsCreate ,
16
+ ReadContext : resourceGitlabServiceMicrosoftTeamsRead ,
17
+ UpdateContext : resourceGitlabServiceMicrosoftTeamsUpdate ,
18
+ DeleteContext : resourceGitlabServiceMicrosoftTeamsDelete ,
18
19
Importer : & schema.ResourceImporter {
19
20
StateContext : schema .ImportStatePassthroughContext ,
20
21
},
@@ -90,7 +91,7 @@ func resourceGitlabServiceMicrosoftTeams() *schema.Resource {
90
91
}
91
92
}
92
93
93
- func resourceGitlabServiceMicrosoftTeamsCreate (d * schema.ResourceData , meta interface {}) error {
94
+ func resourceGitlabServiceMicrosoftTeamsCreate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
94
95
client := meta .(* gitlab.Client )
95
96
project := d .Get ("project" ).(string )
96
97
d .SetId (project )
@@ -112,32 +113,32 @@ func resourceGitlabServiceMicrosoftTeamsCreate(d *schema.ResourceData, meta inte
112
113
113
114
log .Printf ("[DEBUG] Create Gitlab Microsoft Teams service" )
114
115
115
- if _ , err := client .Services .SetMicrosoftTeamsService (project , options ); err != nil {
116
- return fmt .Errorf ("couldn't create Gitlab Microsoft Teams service: %w " , err )
116
+ if _ , err := client .Services .SetMicrosoftTeamsService (project , options , gitlab . WithContext ( ctx ) ); err != nil {
117
+ return diag .Errorf ("couldn't create Gitlab Microsoft Teams service: %v " , err )
117
118
}
118
119
119
- return resourceGitlabServiceMicrosoftTeamsRead (d , meta )
120
+ return resourceGitlabServiceMicrosoftTeamsRead (ctx , d , meta )
120
121
}
121
122
122
- func resourceGitlabServiceMicrosoftTeamsRead (d * schema.ResourceData , meta interface {}) error {
123
+ func resourceGitlabServiceMicrosoftTeamsRead (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
123
124
client := meta .(* gitlab.Client )
124
125
project := d .Id ()
125
126
126
- p , resp , err := client .Projects .GetProject (project , nil )
127
+ p , resp , err := client .Projects .GetProject (project , nil , gitlab . WithContext ( ctx ) )
127
128
if err != nil {
128
129
if resp != nil && resp .StatusCode == http .StatusNotFound {
129
130
log .Printf ("[DEBUG] Removing Gitlab Microsoft Teams service %s because project %s not found" , d .Id (), p .Name )
130
131
d .SetId ("" )
131
132
return nil
132
133
}
133
- return err
134
+ return diag . FromErr ( err )
134
135
}
135
136
136
137
log .Printf ("[DEBUG] Read Gitlab Microsoft Teams service for project %s" , d .Id ())
137
138
138
- teamsService , _ , err := client .Services .GetMicrosoftTeamsService (project )
139
+ teamsService , _ , err := client .Services .GetMicrosoftTeamsService (project , gitlab . WithContext ( ctx ) )
139
140
if err != nil {
140
- return err
141
+ return diag . FromErr ( err )
141
142
}
142
143
143
144
d .Set ("project" , project )
@@ -160,16 +161,20 @@ func resourceGitlabServiceMicrosoftTeamsRead(d *schema.ResourceData, meta interf
160
161
return nil
161
162
}
162
163
163
- func resourceGitlabServiceMicrosoftTeamsUpdate (d * schema.ResourceData , meta interface {}) error {
164
- return resourceGitlabServiceMicrosoftTeamsCreate (d , meta )
164
+ func resourceGitlabServiceMicrosoftTeamsUpdate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
165
+ return resourceGitlabServiceMicrosoftTeamsCreate (ctx , d , meta )
165
166
}
166
167
167
- func resourceGitlabServiceMicrosoftTeamsDelete (d * schema.ResourceData , meta interface {}) error {
168
+ func resourceGitlabServiceMicrosoftTeamsDelete (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
168
169
client := meta .(* gitlab.Client )
169
170
project := d .Id ()
170
171
171
172
log .Printf ("[DEBUG] Delete Gitlab Microsoft Teams service for project %s" , d .Id ())
172
173
173
- _ , err := client .Services .DeleteMicrosoftTeamsService (project )
174
- return err
174
+ _ , err := client .Services .DeleteMicrosoftTeamsService (project , gitlab .WithContext (ctx ))
175
+ if err != nil {
176
+ return diag .FromErr (err )
177
+ }
178
+
179
+ return diag .FromErr (err )
175
180
}
0 commit comments