@@ -3,6 +3,7 @@ package scaleway
3
3
import (
4
4
"context"
5
5
"flag"
6
+ "fmt"
6
7
"net/http"
7
8
"os"
8
9
"path/filepath"
@@ -13,7 +14,9 @@ import (
13
14
14
15
"github.com/dnaeon/go-vcr/cassette"
15
16
"github.com/dnaeon/go-vcr/recorder"
17
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
16
18
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
19
+ "github.com/scaleway/scaleway-sdk-go/scw"
17
20
"github.com/scaleway/scaleway-sdk-go/strcase"
18
21
"github.com/stretchr/testify/assert"
19
22
"github.com/stretchr/testify/require"
@@ -114,3 +117,116 @@ func NewTestTools(t *testing.T) *TestTools {
114
117
Cleanup : cleanup ,
115
118
}
116
119
}
120
+
121
+ func TestAccScalewayProvider_SSHKeys (t * testing.T ) {
122
+ tt := NewTestTools (t )
123
+ defer tt .Cleanup ()
124
+
125
+ SSHKeyName := "TestAccScalewayProvider_SSHKeys"
126
+ SSHKey := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEEYrzDOZmhItdKaDAEqJQ4ORS2GyBMtBozYsK5kiXXX [email protected] "
127
+
128
+ ctx := context .Background ()
129
+
130
+ resource .ParallelTest (t , resource.TestCase {
131
+ PreCheck : func () { testAccPreCheck (t ) },
132
+ ProviderFactories : func () map [string ]func () (* schema.Provider , error ) {
133
+ metaProd , err := buildMeta (ctx , & metaConfig {
134
+ terraformVersion : "terraform-tests" ,
135
+ httpClient : tt .Meta .httpClient ,
136
+ })
137
+ require .NoError (t , err )
138
+
139
+ metaDev , err := buildMeta (ctx , & metaConfig {
140
+ terraformVersion : "terraform-tests" ,
141
+ httpClient : tt .Meta .httpClient ,
142
+ })
143
+ require .NoError (t , err )
144
+
145
+ return map [string ]func () (* schema.Provider , error ){
146
+ "prod" : func () (* schema.Provider , error ) {
147
+ return Provider (& ProviderConfig {Meta : metaProd })(), nil
148
+ },
149
+ "dev" : func () (* schema.Provider , error ) {
150
+ return Provider (& ProviderConfig {Meta : metaDev })(), nil
151
+ },
152
+ }
153
+ }(),
154
+ CheckDestroy : testAccCheckScalewayAccountSSHKeyDestroy (tt ),
155
+ Steps : []resource.TestStep {
156
+ {
157
+ Config : fmt .Sprintf (`
158
+ resource "scaleway_account_ssh_key" "prod" {
159
+ provider = "prod"
160
+ name = "%[1]s"
161
+ public_key = "%[2]s"
162
+ }
163
+
164
+ resource "scaleway_account_ssh_key" "dev" {
165
+ provider = "dev"
166
+ name = "%[1]s"
167
+ public_key = "%[2]s"
168
+ }
169
+ ` , SSHKeyName , SSHKey ),
170
+ Check : resource .ComposeTestCheckFunc (
171
+ testAccCheckScalewayAccountSSHKeyExists (tt , "scaleway_account_ssh_key.prod" ),
172
+ testAccCheckScalewayAccountSSHKeyExists (tt , "scaleway_account_ssh_key.dev" ),
173
+ ),
174
+ },
175
+ },
176
+ })
177
+ }
178
+
179
+ func TestAccScalewayProvider_InstanceIPZones (t * testing.T ) {
180
+ tt := NewTestTools (t )
181
+ defer tt .Cleanup ()
182
+
183
+ ctx := context .Background ()
184
+
185
+ resource .ParallelTest (t , resource.TestCase {
186
+ PreCheck : func () { testAccPreCheck (t ) },
187
+ ProviderFactories : func () map [string ]func () (* schema.Provider , error ) {
188
+ metaProd , err := buildMeta (ctx , & metaConfig {
189
+ terraformVersion : "terraform-tests" ,
190
+ forceZone : scw .ZoneFrPar2 ,
191
+ httpClient : tt .Meta .httpClient ,
192
+ })
193
+ require .NoError (t , err )
194
+
195
+ metaDev , err := buildMeta (ctx , & metaConfig {
196
+ terraformVersion : "terraform-tests" ,
197
+ forceZone : scw .ZoneFrPar1 ,
198
+ httpClient : tt .Meta .httpClient ,
199
+ })
200
+ require .NoError (t , err )
201
+
202
+ return map [string ]func () (* schema.Provider , error ){
203
+ "prod" : func () (* schema.Provider , error ) {
204
+ return Provider (& ProviderConfig {Meta : metaProd })(), nil
205
+ },
206
+ "dev" : func () (* schema.Provider , error ) {
207
+ return Provider (& ProviderConfig {Meta : metaDev })(), nil
208
+ },
209
+ }
210
+ }(),
211
+ CheckDestroy : testAccCheckScalewayAccountSSHKeyDestroy (tt ),
212
+ Steps : []resource.TestStep {
213
+ {
214
+ Config : `
215
+ resource scaleway_instance_ip dev {
216
+ provider = "dev"
217
+ }
218
+
219
+ resource scaleway_instance_ip prod {
220
+ provider = "prod"
221
+ }
222
+ ` ,
223
+ Check : resource .ComposeTestCheckFunc (
224
+ testAccCheckScalewayInstanceIPExists (tt , "scaleway_instance_ip.prod" ),
225
+ testAccCheckScalewayInstanceIPExists (tt , "scaleway_instance_ip.dev" ),
226
+ resource .TestCheckResourceAttr ("scaleway_instance_ip.prod" , "zone" , "fr-par-2" ),
227
+ resource .TestCheckResourceAttr ("scaleway_instance_ip.dev" , "zone" , "fr-par-1" ),
228
+ ),
229
+ },
230
+ },
231
+ })
232
+ }
0 commit comments