Skip to content
This repository was archived by the owner on Mar 1, 2023. It is now read-only.

Commit a346ad7

Browse files
committed
permanent token auth added for cloud
1 parent 5c8f75d commit a346ad7

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,5 +252,5 @@ resource "gcore_lbmember" "lbm2" {
252252
- **gcore_storage_api** (String) Storage API
253253
- **ignore_creds_auth_error** (Boolean) Should be set to true when you are gonna to use storage resource with permanent API-token only.
254254
- **password** (String)
255-
- **permanent_api_token** (String, Sensitive) A permanent API-token. Implemented for Storage Terraform Resource only. https://support.gcorelabs.com/hc/en-us/articles/360018625617-API-tokens
255+
- **permanent_api_token** (String, Sensitive) A permanent API-token. Implemented for Storage and Cloud Terraform Resources only. https://support.gcorelabs.com/hc/en-us/articles/360018625617-API-tokens
256256
- **user_name** (String)

gcore/provider.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func Provider() *schema.Provider {
4141
Type: schema.TypeString,
4242
Optional: true,
4343
Sensitive: true,
44-
Description: "A permanent API-token. Implemented for Storage Terraform Resource only. https://support.gcorelabs.com/hc/en-us/articles/360018625617-API-tokens",
44+
Description: "A permanent API-token. Implemented for Storage and Cloud Terraform Resources only. https://support.gcorelabs.com/hc/en-us/articles/360018625617-API-tokens",
4545
DefaultFunc: schema.EnvDefaultFunc("GCORE_PERMANENT_TOKEN", ""),
4646
},
4747
ProviderOptSkipCredsAuthErr: {
@@ -156,14 +156,23 @@ func providerConfigure(_ context.Context, d *schema.ResourceData) (interface{},
156156

157157
var diags diag.Diagnostics
158158

159-
provider, err := gc.AuthenticatedClient(gcorecloud.AuthOptions{
160-
APIURL: api,
161-
AuthURL: platform,
162-
Username: username,
163-
Password: password,
164-
AllowReauth: true,
165-
ClientID: clientID,
166-
})
159+
var err error
160+
var provider *gcorecloud.ProviderClient
161+
if permanentToken != "" {
162+
provider, err = gc.APITokenClient(gcorecloud.APITokenOptions{
163+
APIURL: api,
164+
APIToken: permanentToken,
165+
})
166+
} else {
167+
provider, err = gc.AuthenticatedClient(gcorecloud.AuthOptions{
168+
APIURL: api,
169+
AuthURL: platform,
170+
Username: username,
171+
Password: password,
172+
AllowReauth: true,
173+
ClientID: clientID,
174+
})
175+
}
167176

168177
skipAuthErr, ok := d.GetOk(ProviderOptSkipCredsAuthErr)
169178
if err != nil && !(ok == true || skipAuthErr.(bool) == true) {

go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ module github.com/terraform-providers/terraform-provider-gcorelabs
22

33
go 1.16
44

5+
//replace github.com/G-Core/gcorelabscloud-go => /home/ondi/go/src/github.com/G-Core/gcorelabscloud-go
6+
57
require (
68
github.com/G-Core/g-dns-sdk-go v0.1.2
79
github.com/G-Core/gcorelabs-storage-sdk-go v0.0.9
810
github.com/G-Core/gcorelabscdn-go v0.1.2
9-
github.com/G-Core/gcorelabscloud-go v0.4.31
11+
github.com/G-Core/gcorelabscloud-go v0.4.32
1012
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320
1113
github.com/hashicorp/terraform-plugin-docs v0.5.0 // indirect
1214
github.com/hashicorp/terraform-plugin-sdk/v2 v2.7.0

go.sum

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,10 @@ github.com/G-Core/g-dns-sdk-go v0.1.2 h1:XYgsdOtflZH106UUcArhmrfgNpwfqT1PSCAuTf+
4545
github.com/G-Core/g-dns-sdk-go v0.1.2/go.mod h1:uArGxDKZjXzfIYGoBd9kuXkrd3RbMzv63TzGbyAci/c=
4646
github.com/G-Core/gcorelabs-storage-sdk-go v0.0.9 h1:6uyKbknI8Q2pIJApPBf6JA0CN5O8bSDU5hBAyoqre8w=
4747
github.com/G-Core/gcorelabs-storage-sdk-go v0.0.9/go.mod h1:BZef79y4G28n8ic3x6iQWbW+mtpHPSUyJRfIRSkeAJw=
48-
github.com/G-Core/gcorelabscdn-go v0.0.0-20210503173228-b4ac8b2402ff h1:kIH66Shwb0Y9kvBgykpzmQn2soiHDTCJ/Rr5cQQ1cOk=
49-
github.com/G-Core/gcorelabscdn-go v0.0.0-20210503173228-b4ac8b2402ff/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE=
50-
github.com/G-Core/gcorelabscdn-go v0.1.1 h1:+1tRabILsbhiwQcfvH9TJOkHOwrZUUu8B82kBIgViNM=
51-
github.com/G-Core/gcorelabscdn-go v0.1.1/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE=
48+
github.com/G-Core/gcorelabscdn-go v0.1.2 h1:AiwZY3oIHL4wMJNmIlLgxw4eQmSqtQmkTzrkGpa7ckc=
5249
github.com/G-Core/gcorelabscdn-go v0.1.2/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE=
53-
github.com/G-Core/gcorelabscloud-go v0.4.31 h1:tFpVsaP1LdgIm/Nrwy11Mb62PTLdBWi+Oaqy70JbJqM=
54-
github.com/G-Core/gcorelabscloud-go v0.4.31/go.mod h1:Z1MF80mWagEUrxygtYkvW/MJEYNmIUPsIEYBB3cKjOM=
50+
github.com/G-Core/gcorelabscloud-go v0.4.32 h1:HdnTl95rfzpFIJw1lcKuPizPF2kqMe7n41W7NeElGcA=
51+
github.com/G-Core/gcorelabscloud-go v0.4.32/go.mod h1:Z1MF80mWagEUrxygtYkvW/MJEYNmIUPsIEYBB3cKjOM=
5552
github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=
5653
github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
5754
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=

0 commit comments

Comments
 (0)