summaryrefslogtreecommitdiff
path: root/aws
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2016-09-01 22:52:39 -0400
committerDave Henderson <dhenderson@gmail.com>2016-09-01 22:56:09 -0400
commite6a2cfbf18894d944f744f9b2efc3be389a19e67 (patch)
treeb379c2ecc331a7f06dcf53afe52689f394b57bd2 /aws
parent1fb1dbb55fa635fb09d91c92f44c22b3f6336c52 (diff)
Adding ability to provide default for ec2region function
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'aws')
-rw-r--r--aws/ec2meta.go11
-rw-r--r--aws/ec2meta_test.go7
2 files changed, 15 insertions, 3 deletions
diff --git a/aws/ec2meta.go b/aws/ec2meta.go
index 328fefbf..cf993479 100644
--- a/aws/ec2meta.go
+++ b/aws/ec2meta.go
@@ -71,10 +71,15 @@ func (e *Ec2Meta) Dynamic(key string, def ...string) string {
}
// Region -
-func (e *Ec2Meta) Region() string {
- doc := e.Dynamic("instance-identity/document", `{"region":"unknown"}`)
+func (e *Ec2Meta) Region(def ...string) string {
+ defaultRegion := returnDefault(def)
+ if defaultRegion == "" {
+ defaultRegion = "unknown"
+ }
+
+ doc := e.Dynamic("instance-identity/document", `{"region":"`+defaultRegion+`"}`)
obj := &InstanceDocument{
- Region: "unknown",
+ Region: defaultRegion,
}
err := json.Unmarshal([]byte(doc), &obj)
if err != nil {
diff --git a/aws/ec2meta_test.go b/aws/ec2meta_test.go
index 04a431f7..0f1f04c8 100644
--- a/aws/ec2meta_test.go
+++ b/aws/ec2meta_test.go
@@ -45,6 +45,13 @@ func TestRegion_NoRegion(t *testing.T) {
assert.Equal(t, "unknown", ec2meta.Region())
}
+func TestRegion_NoRegionWithDefault(t *testing.T) {
+ server, ec2meta := MockServer(200, "{}")
+ defer server.Close()
+
+ assert.Equal(t, "foo", ec2meta.Region("foo"))
+}
+
func TestRegion_KnownRegion(t *testing.T) {
server, ec2meta := MockServer(200, `{"region":"us-east-1"}`)
defer server.Close()