diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2016-09-01 22:52:39 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2016-09-01 22:56:09 -0400 |
| commit | e6a2cfbf18894d944f744f9b2efc3be389a19e67 (patch) | |
| tree | b379c2ecc331a7f06dcf53afe52689f394b57bd2 /aws | |
| parent | 1fb1dbb55fa635fb09d91c92f44c22b3f6336c52 (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.go | 11 | ||||
| -rw-r--r-- | aws/ec2meta_test.go | 7 |
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() |
