Skip to content

Commit 985b5b2

Browse files
committed
Add error instance for better checking
1 parent 92bd9c8 commit 985b5b2

File tree

4 files changed

+17
-26
lines changed

4 files changed

+17
-26
lines changed

awsauth.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ const (
2929
providing credentials for the AWS Provider`
3030
)
3131

32+
var (
33+
// ErrNoValidCredentialSources indicates that no credentials source could be found
34+
ErrNoValidCredentialSources = errNoValidCredentialSources()
35+
)
36+
37+
func errNoValidCredentialSources() error { return errors.New(errMsgNoValidCredentialSources) }
38+
3239
// GetAccountIDAndPartition gets the account ID and associated partition.
3340
func GetAccountIDAndPartition(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) (string, string, error) {
3441
var accountID, partition string
@@ -175,7 +182,7 @@ func GetCredentialsFromSession(c *Config) (*awsCredentials.Credentials, error) {
175182
if c.Profile == "" {
176183
sess, err = session.NewSession()
177184
if err != nil {
178-
return nil, errors.New(errMsgNoValidCredentialSources)
185+
return nil, ErrNoValidCredentialSources
179186
}
180187
} else {
181188
options := &session.Options{
@@ -191,7 +198,7 @@ func GetCredentialsFromSession(c *Config) (*awsCredentials.Credentials, error) {
191198
sess, err = session.NewSessionWithOptions(*options)
192199
if err != nil {
193200
if IsAWSErr(err, "NoCredentialProviders", "") {
194-
return nil, errors.New(errMsgNoValidCredentialSources)
201+
return nil, ErrNoValidCredentialSources
195202
}
196203
return nil, fmt.Errorf("Error creating AWS session: %s", err)
197204
}
@@ -200,7 +207,7 @@ func GetCredentialsFromSession(c *Config) (*awsCredentials.Credentials, error) {
200207
creds := sess.Config.Credentials
201208
cp, err := sess.Config.Credentials.Get()
202209
if err != nil {
203-
return nil, errors.New(errMsgNoValidCredentialSources)
210+
return nil, ErrNoValidCredentialSources
204211
}
205212

206213
log.Printf("[INFO] Successfully derived credentials from session")

awsauth_test.go

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"os"
88
"testing"
99

10-
"github.com/aws/aws-sdk-go/aws/awserr"
1110
"github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds"
1211
"github.com/aws/aws-sdk-go/service/iam"
1312
"github.com/aws/aws-sdk-go/service/sts"
@@ -423,20 +422,12 @@ func TestAWSGetCredentials_shouldErrorWhenBlank(t *testing.T) {
423422
defer resetEnv()
424423

425424
cfg := Config{}
426-
c, err := GetCredentials(&cfg)
425+
_, err := GetCredentials(&cfg)
427426

428-
if err != nil {
427+
if err != ErrNoValidCredentialSources {
429428
t.Fatalf("Unexpected error: %s", err)
430429
}
431430

432-
_, err = c.Get()
433-
if awsErr, ok := err.(awserr.Error); ok {
434-
if awsErr.Code() != "NoCredentialProviders" {
435-
t.Fatal("Expected NoCredentialProviders error")
436-
}
437-
} else {
438-
t.Fatal("Expected AWS error")
439-
}
440431
if err == nil {
441432
t.Fatal("Expected an error given empty env, keys, and IAM in AWS Config")
442433
}
@@ -586,22 +577,14 @@ func TestAWSGetCredentials_shouldErrorWithInvalidEndpoint(t *testing.T) {
586577
ts := invalidAwsEnv(t)
587578
defer ts()
588579

589-
creds, err := GetCredentials(&Config{})
590-
if err != nil {
580+
_, err := GetCredentials(&Config{})
581+
if err != ErrNoValidCredentialSources {
591582
t.Fatalf("Error gettings creds: %s", err)
592583
}
593-
if creds == nil {
594-
t.Fatal("Expected a static creds provider to be returned")
595-
}
596584

597-
v, err := creds.Get()
598585
if err == nil {
599586
t.Fatal("Expected error returned when getting creds w/ invalid EC2 endpoint")
600587
}
601-
602-
if v.ProviderName != "" {
603-
t.Fatalf("Expected provider name to be empty, %q given", v.ProviderName)
604-
}
605588
}
606589

607590
func TestAWSGetCredentials_shouldIgnoreInvalidEndpoint(t *testing.T) {

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ require (
88
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect
99
golang.org/x/text v0.3.0 // indirect
1010
)
11+
12+
go 1.13

session.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package awsbase
22

33
import (
44
"crypto/tls"
5-
"errors"
65
"fmt"
76
"log"
87
"net/http"
@@ -63,7 +62,7 @@ func GetSession(c *Config) (*session.Session, error) {
6362
sess, err := session.NewSessionWithOptions(*options)
6463
if err != nil {
6564
if IsAWSErr(err, "NoCredentialProviders", "") {
66-
return nil, errors.New(errMsgNoValidCredentialSources)
65+
return nil, ErrNoValidCredentialSources
6766
}
6867
return nil, fmt.Errorf("Error creating AWS session: %s", err)
6968
}

0 commit comments

Comments
 (0)