From 8f6cd731a77b015bee4c98e631363db02cc7063a Mon Sep 17 00:00:00 2001 From: Suresh Kumar Date: Tue, 31 May 2022 01:36:12 +0530 Subject: Add support for aws imdsv2 (#1402) * Use ec2metadata package from aws-sdk This will handle IMDSv2 etc tranparently (and as well any future changes) * Fix linter errors * Fix dynamic data retrieval * Fix vault ec2 auth test failures --- gomplate_test.go | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'gomplate_test.go') diff --git a/gomplate_test.go b/gomplate_test.go index 0d621ab7..28adbf8d 100644 --- a/gomplate_test.go +++ b/gomplate_test.go @@ -3,7 +3,6 @@ package gomplate import ( "bytes" "context" - "net/http/httptest" "os" "path/filepath" "testing" @@ -53,26 +52,23 @@ func TestBoolTemplates(t *testing.T) { } func TestEc2MetaTemplates(t *testing.T) { - createGomplate := func(status int, body string) (*gomplate, *httptest.Server) { - server, ec2meta := aws.MockServer(status, body) - return &gomplate{funcMap: template.FuncMap{"ec2meta": ec2meta.Meta}}, server + createGomplate := func(data map[string]string, region string) *gomplate { + ec2meta := aws.MockEC2Meta(data, nil, region) + return &gomplate{funcMap: template.FuncMap{"ec2meta": ec2meta.Meta}} } - g, s := createGomplate(404, "") - defer s.Close() + g := createGomplate(nil, "") assert.Equal(t, "", testTemplate(t, g, `{{ec2meta "foo"}}`)) assert.Equal(t, "default", testTemplate(t, g, `{{ec2meta "foo" "default"}}`)) - s.Close() - g, s = createGomplate(200, "i-1234") - defer s.Close() + g = createGomplate(map[string]string{"instance-id": "i-1234"}, "") assert.Equal(t, "i-1234", testTemplate(t, g, `{{ec2meta "instance-id"}}`)) assert.Equal(t, "i-1234", testTemplate(t, g, `{{ec2meta "instance-id" "default"}}`)) } func TestEc2MetaTemplates_WithJSON(t *testing.T) { - server, ec2meta := aws.MockServer(200, `{"foo":"bar"}`) - defer server.Close() + ec2meta := aws.MockEC2Meta(map[string]string{"obj": `"foo": "bar"`}, map[string]string{"obj": `"foo": "baz"`}, "") + g := &gomplate{ funcMap: template.FuncMap{ "ec2meta": ec2meta.Meta, @@ -82,7 +78,7 @@ func TestEc2MetaTemplates_WithJSON(t *testing.T) { } assert.Equal(t, "bar", testTemplate(t, g, `{{ (ec2meta "obj" | json).foo }}`)) - assert.Equal(t, "bar", testTemplate(t, g, `{{ (ec2dynamic "obj" | json).foo }}`)) + assert.Equal(t, "baz", testTemplate(t, g, `{{ (ec2dynamic "obj" | json).foo }}`)) } func TestJSONArrayTemplates(t *testing.T) { -- cgit v1.2.3