func providerConfigure(d *schema.ResourceData) (interface{}, error) { var err error client := atlas.DefaultClient() if v := d.Get("address").(string); v != "" { client, err = atlas.NewClient(v) if err != nil { return nil, err } } client.DefaultHeader.Set(terraform.VersionHeader, terraform.VersionString()) client.Token = d.Get("token").(string) return client, nil }
for _, id := range c.AllowedAccountIds { if id == accountId { return nil } } return fmt.Errorf("Account ID not allowed (%s)", accountId) } return nil } // addTerraformVersionToUserAgent is a named handler that will add Terraform's // version information to requests made by the AWS SDK. var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( "terraform", terraform.VersionString()), } type awsLogger struct{} func (l awsLogger) Log(args ...interface{}) { tokens := make([]string, 0, len(args)) for _, arg := range args { if token, ok := arg.(string); ok { tokens = append(tokens, token) } } log.Printf("[DEBUG] [aws-sdk-go] %s", strings.Join(tokens, " ")) }
if id == accountId { return nil } } return fmt.Errorf("Account ID not allowed (%s)", accountId) } return nil } // addTerraformVersionToUserAgent is a named handler that will add Terraform's // version information to requests made by the AWS SDK. var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( "APN/1.0 HashiCorp/1.0 Terraform", terraform.VersionString()), } var debugAuthFailure = request.NamedHandler{ Name: "terraform.AuthFailureAdditionalDebugHandler", Fn: func(req *request.Request) { if isAWSErr(req.Error, "AuthFailure", "AWS was not able to validate the provided access credentials") { log.Printf("[INFO] Additional AuthFailure Debugging Context") log.Printf("[INFO] Current system UTC time: %s", time.Now().UTC()) log.Printf("[INFO] Request object: %s", spew.Sdump(req)) } }, } type awsLogger struct{}
func (c *Config) loadAndValidate() error { var account accountFile clientScopes := []string{ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/ndev.clouddns.readwrite", "https://www.googleapis.com/auth/devstorage.full_control", } var client *http.Client if c.Credentials != "" { contents, _, err := pathorcontents.Read(c.Credentials) if err != nil { return fmt.Errorf("Error loading credentials: %s", err) } // Assume account_file is a JSON string if err := parseJSON(&account, contents); err != nil { return fmt.Errorf("Error parsing credentials '%s': %s", contents, err) } // Get the token for use in our requests log.Printf("[INFO] Requesting Google token...") log.Printf("[INFO] -- Email: %s", account.ClientEmail) log.Printf("[INFO] -- Scopes: %s", clientScopes) log.Printf("[INFO] -- Private Key Length: %d", len(account.PrivateKey)) conf := jwt.Config{ Email: account.ClientEmail, PrivateKey: []byte(account.PrivateKey), Scopes: clientScopes, TokenURL: "https://accounts.google.com/o/oauth2/token", } // Initiate an http.Client. The following GET request will be // authorized and authenticated on the behalf of // your service account. client = conf.Client(oauth2.NoContext) } else { log.Printf("[INFO] Authenticating using DefaultClient") err := error(nil) client, err = google.DefaultClient(oauth2.NoContext, clientScopes...) if err != nil { return err } } versionString := terraform.VersionString() userAgent := fmt.Sprintf( "(%s %s) Terraform/%s", runtime.GOOS, runtime.GOARCH, versionString) var err error log.Printf("[INFO] Instantiating GCE client...") c.clientCompute, err = compute.New(client) if err != nil { return err } c.clientCompute.UserAgent = userAgent log.Printf("[INFO] Instantiating GKE client...") c.clientContainer, err = container.New(client) if err != nil { return err } c.clientContainer.UserAgent = userAgent log.Printf("[INFO] Instantiating Google Cloud DNS client...") c.clientDns, err = dns.New(client) if err != nil { return err } c.clientDns.UserAgent = userAgent log.Printf("[INFO] Instantiating Google Storage Client...") c.clientStorage, err = storage.New(client) if err != nil { return err } c.clientStorage.UserAgent = userAgent log.Printf("[INFO] Instantiating Google SqlAdmin Client...") c.clientSqlAdmin, err = sqladmin.New(client) if err != nil { return err } c.clientSqlAdmin.UserAgent = userAgent log.Printf("[INFO] Instatiating Google Pubsub Client...") c.clientPubsub, err = pubsub.New(client) if err != nil { return err } c.clientPubsub.UserAgent = userAgent log.Printf("[INFO] Instatiating Google CloudResourceManager Client...") c.clientResourceManager, err = cloudresourcemanager.New(client) if err != nil { return err } c.clientPubsub.UserAgent = userAgent return nil }
func setUserAgent(client *autorest.Client) { version := terraform.VersionString() client.UserAgent = fmt.Sprintf("HashiCorp-Terraform-v%s", version) }