From 6b288895618df4aace726d0d23f14e162d1395ea Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Thu, 3 May 2018 22:34:48 -0400 Subject: [PATCH] Relaxing restriction on empty datasources Signed-off-by: Dave Henderson --- data/datasource.go | 6 +++--- data/datasource_test.go | 5 +++-- test/integration/datasources_vault_test.go | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/data/datasource.go b/data/datasource.go index d83279b5c..e4336fb5c 100644 --- a/data/datasource.go +++ b/data/datasource.go @@ -238,9 +238,6 @@ func (d *Data) Datasource(alias string, args ...string) (interface{}, error) { if err != nil { return nil, errors.Wrapf(err, "Couldn't read datasource '%s'", alias) } - if len(b) == 0 { - return nil, errors.Errorf("No value found for %s from datasource '%s'", args, alias) - } s := string(b) if source.Type == jsonMimetype { return JSON(s), nil @@ -411,6 +408,9 @@ func readVault(source *Source, args ...string) ([]byte, error) { if err != nil { return nil, err } + if len(data) == 0 { + return nil, errors.Errorf("no value found for path %s", p) + } source.Type = "application/json" return data, nil diff --git a/data/datasource_test.go b/data/datasource_test.go index 3a416130e..dbf1f0af6 100644 --- a/data/datasource_test.go +++ b/data/datasource_test.go @@ -165,8 +165,9 @@ func TestDatasource(t *testing.T) { test("yml", "application/yaml", []byte("hello:\n cruel: world\n")) d := setup("", "text/plain", nil) - _, err := d.Datasource("foo") - assert.Errorf(t, err, "No value found for") + actual, err := d.Datasource("foo") + assert.NoError(t, err) + assert.Equal(t, "", actual) } func TestDatasourceExists(t *testing.T) { diff --git a/test/integration/datasources_vault_test.go b/test/integration/datasources_vault_test.go index 3973b7e2c..b0797e04b 100644 --- a/test/integration/datasources_vault_test.go +++ b/test/integration/datasources_vault_test.go @@ -141,7 +141,7 @@ func (s *VaultDatasourcesSuite) TestTokenAuth(c *C) { "VAULT_TOKEN=" + tok, } }) - result.Assert(c, icmd.Expected{ExitCode: 1, Err: "No value found for [bar] from datasource 'vault'"}) + result.Assert(c, icmd.Expected{ExitCode: 1, Err: "error calling ds: Couldn't read datasource 'vault': no value found for path /secret/bar"}) tokFile := fs.NewFile(c, "test-vault-token", fs.WithContent(tok)) defer tokFile.Remove()