switching gcloud to use json mode. Not backward compatible. (#24)

This commit is contained in:
Craig Peterson 2017-01-11 12:09:14 -07:00 committed by GitHub
parent 20bf7ef43b
commit ba94dc9777

View file

@ -6,7 +6,6 @@ import (
"fmt" "fmt"
"strings" "strings"
"golang.org/x/oauth2"
gauth "golang.org/x/oauth2/google" gauth "golang.org/x/oauth2/google"
"google.golang.org/api/dns/v1" "google.golang.org/api/dns/v1"
@ -27,27 +26,23 @@ type gcloud struct {
// New creates a new gcloud provider // New creates a new gcloud provider
func New(cfg map[string]string, _ json.RawMessage) (providers.DNSServiceProvider, error) { func New(cfg map[string]string, _ json.RawMessage) (providers.DNSServiceProvider, error) {
for _, key := range []string{"clientId", "clientSecret", "refreshToken", "project"} { raw, err := json.Marshal(cfg)
if cfg[key] == "" { if err != nil {
return nil, fmt.Errorf("%s required for google cloud provider", key) return nil, err
}
} }
ocfg := &oauth2.Config{ config, err := gauth.JWTConfigFromJSON(raw, "https://www.googleapis.com/auth/ndev.clouddns.readwrite")
Endpoint: gauth.Endpoint, if err != nil {
ClientID: cfg["clientId"], return nil, err
ClientSecret: cfg["clientSecret"],
} }
tok := &oauth2.Token{ ctx := context.Background()
RefreshToken: cfg["refreshToken"], hc := config.Client(ctx)
} dcli, err := dns.New(hc)
client := ocfg.Client(context.Background(), tok)
dcli, err := dns.New(client)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return &gcloud{ return &gcloud{
client: dcli, client: dcli,
project: cfg["project"], project: cfg["project_id"],
}, nil }, nil
} }