Skip to content

Commit 52d145c

Browse files
author
Michael Kania
committed
clean up error handling and don't assume "aws" if we can't find a partition
1 parent 186547d commit 52d145c

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

cmd/main.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -453,11 +453,12 @@ func checkExistingAWSProfile(profileName string, config *vault.Config) error {
453453
return nil
454454
}
455455

456-
func getPartition(region string) string {
457-
if partition, ok := endpoints.PartitionForRegion(endpoints.DefaultPartitions(), region); ok {
458-
return partition.ID()
456+
func getPartition(region string) (string, error) {
457+
partition, ok := endpoints.PartitionForRegion(endpoints.DefaultPartitions(), region)
458+
if !ok {
459+
return "", fmt.Errorf("Error finding partition for region: %s", region)
459460
}
460-
return "aws"
461+
return partition.ID(), nil
461462
}
462463

463464
func main() {
@@ -473,10 +474,15 @@ func main() {
473474
validate = validator.New()
474475

475476
// initialize things
477+
partition, err := getPartition(options.AwsRegion)
478+
if err != nil {
479+
log.Fatal(err)
480+
}
481+
476482
profile := vault.Profile{
477483
Name: options.AwsProfile,
478484
RoleARN: fmt.Sprintf("arn:%s:iam::%d:role/%s",
479-
getPartition(options.AwsRegion),
485+
partition,
480486
options.AwsAccountID,
481487
options.Role),
482488
Region: options.AwsRegion,

cmd/main_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,14 @@ func TestGenerateQrCode(t *testing.T) {
6363
}
6464

6565
func TestGetPartition(t *testing.T) {
66-
commPartition := getPartition("us-west-2")
66+
commPartition, err := getPartition("us-west-2")
6767
assert.Equal(t, commPartition, "aws")
68-
govPartition := getPartition("us-gov-west-1")
68+
assert.NoError(t, err)
69+
70+
govPartition, err := getPartition("us-gov-west-1")
6971
assert.Equal(t, govPartition, "aws-us-gov")
70-
unknownPartition := getPartition("aws-under-the-sea")
71-
assert.Equal(t, unknownPartition, "aws")
72+
assert.NoError(t, err)
73+
74+
_, err = getPartition("aws-under-the-sea")
75+
assert.Error(t, err)
7276
}

0 commit comments

Comments
 (0)