mirror of https://github.com/kubernetes/kops.git
validate region
This commit is contained in:
parent
e09037dff0
commit
b1702d749e
|
@ -18,14 +18,16 @@ package vfs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
|
"github.com/aws/aws-sdk-go/aws/endpoints"
|
||||||
"github.com/aws/aws-sdk-go/aws/session"
|
"github.com/aws/aws-sdk-go/aws/session"
|
||||||
"github.com/aws/aws-sdk-go/service/ec2"
|
"github.com/aws/aws-sdk-go/service/ec2"
|
||||||
"github.com/aws/aws-sdk-go/service/s3"
|
"github.com/aws/aws-sdk-go/service/s3"
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"os"
|
|
||||||
"sync"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type S3Context struct {
|
type S3Context struct {
|
||||||
|
@ -76,6 +78,10 @@ func (s *S3Context) getRegionForBucket(bucket string) (string, error) {
|
||||||
awsRegion = "us-east-1"
|
awsRegion = "us-east-1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := validateRegion(awsRegion); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
request := &s3.GetBucketLocationInput{
|
request := &s3.GetBucketLocationInput{
|
||||||
Bucket: &bucket,
|
Bucket: &bucket,
|
||||||
}
|
}
|
||||||
|
@ -155,3 +161,16 @@ func bruteforceBucketLocation(region *string, request *s3.GetBucketLocationInput
|
||||||
return nil, fmt.Errorf("Could not retrieve location for AWS bucket %s", *request.Bucket)
|
return nil, fmt.Errorf("Could not retrieve location for AWS bucket %s", *request.Bucket)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func validateRegion(region string) error {
|
||||||
|
resolver := endpoints.DefaultResolver()
|
||||||
|
partitions := resolver.(endpoints.EnumPartitions).Partitions()
|
||||||
|
for _, p := range partitions {
|
||||||
|
for _, r := range p.Regions() {
|
||||||
|
if r.ID() == region {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Errorf("%s is not a valid region\nPlease check that your region is formatted correctly (i.e. us-east-1)", region)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue