Add AWS region validation

This commit is contained in:
Jorge Núñez 2014-07-30 00:22:37 +02:00
parent 3535ae36a3
commit 5900b3f1c0
1 changed files with 20 additions and 1 deletions

View File

@ -1,6 +1,7 @@
package aws package aws
import ( import (
"fmt"
"os" "os"
"strings" "strings"
"unicode" "unicode"
@ -29,12 +30,30 @@ func (c *Config) AWSAuth() (aws.Auth, error) {
return auth, err return auth, err
} }
// IsValidRegion returns true if the configured region is a valid AWS
// region and false if it's not
func (c *Config) IsValidRegion() bool {
var regions = [8]string{"us-east-1", "us-west-2", "us-west-1", "eu-west-1",
"ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "sa-east-1"}
for _, valid := range regions {
if c.Region == valid {
return true
}
}
return false
}
// AWSRegion returns the configured region. // AWSRegion returns the configured region.
// //
// TODO(mitchellh): Test in some way. // TODO(mitchellh): Test in some way.
func (c *Config) AWSRegion() (aws.Region, error) { func (c *Config) AWSRegion() (aws.Region, error) {
if c.Region != "" { if c.Region != "" {
if c.IsValidRegion() {
return aws.Regions[c.Region], nil return aws.Regions[c.Region], nil
} else {
return aws.Region{}, fmt.Errorf("Not a valid region: %s", c.Region)
}
} }
if v := os.Getenv("AWS_REGION"); v != "" { if v := os.Getenv("AWS_REGION"); v != "" {