From e6a2cfbf18894d944f744f9b2efc3be389a19e67 Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Thu, 1 Sep 2016 22:52:39 -0400 Subject: Adding ability to provide default for ec2region function Signed-off-by: Dave Henderson --- aws/ec2meta.go | 11 ++++++++--- aws/ec2meta_test.go | 7 +++++++ 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'aws') 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() -- cgit v1.2.3