1
1
package scaleway
2
2
3
3
import (
4
+ "context"
4
5
"strings"
5
6
7
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
6
8
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
7
9
account "github.com/scaleway/scaleway-sdk-go/api/account/v2alpha1"
10
+ "github.com/scaleway/scaleway-sdk-go/scw"
8
11
)
9
12
10
13
func resourceScalewayAccountSSKKey () * schema.Resource {
11
14
return & schema.Resource {
12
- Create : resourceScalewayAccountSSHKeyCreate ,
13
- Read : resourceScalewayAccountSSHKeyRead ,
14
- Update : resourceScalewayAccountSSHKeyUpdate ,
15
- Delete : resourceScalewayAccountSSHKeyDelete ,
15
+ CreateContext : resourceScalewayAccountSSHKeyCreate ,
16
+ ReadContext : resourceScalewayAccountSSHKeyRead ,
17
+ UpdateContext : resourceScalewayAccountSSHKeyUpdate ,
18
+ DeleteContext : resourceScalewayAccountSSHKeyDelete ,
16
19
Importer : & schema.ResourceImporter {
17
- State : schema .ImportStatePassthrough ,
20
+ StateContext : schema .ImportStatePassthroughContext ,
18
21
},
19
22
Schema : map [string ]* schema.Schema {
20
23
"name" : {
@@ -37,35 +40,35 @@ func resourceScalewayAccountSSKKey() *schema.Resource {
37
40
}
38
41
}
39
42
40
- func resourceScalewayAccountSSHKeyCreate (d * schema.ResourceData , m interface {}) error {
43
+ func resourceScalewayAccountSSHKeyCreate (ctx context. Context , d * schema.ResourceData , m interface {}) diag. Diagnostics {
41
44
accountAPI := accountAPI (m )
42
45
43
46
res , err := accountAPI .CreateSSHKey (& account.CreateSSHKeyRequest {
44
47
Name : d .Get ("name" ).(string ),
45
48
PublicKey : strings .Trim (d .Get ("public_key" ).(string ), "\n " ),
46
49
OrganizationID : expandStringPtr (d .Get ("organization_id" )),
47
- })
50
+ }, scw . WithContext ( ctx ) )
48
51
if err != nil {
49
- return err
52
+ return diag . FromErr ( err )
50
53
}
51
54
52
55
d .SetId (res .ID )
53
56
54
- return resourceScalewayAccountSSHKeyRead (d , m )
57
+ return resourceScalewayAccountSSHKeyRead (ctx , d , m )
55
58
}
56
59
57
- func resourceScalewayAccountSSHKeyRead (d * schema.ResourceData , m interface {}) error {
60
+ func resourceScalewayAccountSSHKeyRead (ctx context. Context , d * schema.ResourceData , m interface {}) diag. Diagnostics {
58
61
accountAPI := accountAPI (m )
59
62
60
63
res , err := accountAPI .GetSSHKey (& account.GetSSHKeyRequest {
61
64
SSHKeyID : d .Id (),
62
- })
65
+ }, scw . WithContext ( ctx ) )
63
66
if err != nil {
64
67
if is404Error (err ) {
65
68
d .SetId ("" )
66
69
return nil
67
70
}
68
- return err
71
+ return diag . FromErr ( err )
69
72
}
70
73
71
74
_ = d .Set ("name" , res .Name )
@@ -75,30 +78,30 @@ func resourceScalewayAccountSSHKeyRead(d *schema.ResourceData, m interface{}) er
75
78
return nil
76
79
}
77
80
78
- func resourceScalewayAccountSSHKeyUpdate (d * schema.ResourceData , m interface {}) error {
81
+ func resourceScalewayAccountSSHKeyUpdate (ctx context. Context , d * schema.ResourceData , m interface {}) diag. Diagnostics {
79
82
accountAPI := accountAPI (m )
80
83
81
84
if d .HasChange ("name" ) {
82
85
_ , err := accountAPI .UpdateSSHKey (& account.UpdateSSHKeyRequest {
83
86
SSHKeyID : d .Id (),
84
87
Name : expandStringPtr (d .Get ("name" )),
85
- })
88
+ }, scw . WithContext ( ctx ) )
86
89
if err != nil {
87
- return err
90
+ return diag . FromErr ( err )
88
91
}
89
92
}
90
93
91
- return resourceScalewayAccountSSHKeyRead (d , m )
94
+ return resourceScalewayAccountSSHKeyRead (ctx , d , m )
92
95
}
93
96
94
- func resourceScalewayAccountSSHKeyDelete (d * schema.ResourceData , m interface {}) error {
97
+ func resourceScalewayAccountSSHKeyDelete (ctx context. Context , d * schema.ResourceData , m interface {}) diag. Diagnostics {
95
98
accountAPI := accountAPI (m )
96
99
97
100
err := accountAPI .DeleteSSHKey (& account.DeleteSSHKeyRequest {
98
101
SSHKeyID : d .Id (),
99
- })
102
+ }, scw . WithContext ( ctx ) )
100
103
if err != nil && ! is404Error (err ) {
101
- return err
104
+ return diag . FromErr ( err )
102
105
}
103
106
104
107
return nil
0 commit comments