From 968a5674994ff74f51712fbfc2005fa721846cf7 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 19 Aug 2014 15:26:31 -0700 Subject: [PATCH] helper/schema: ability to force set Meta --- helper/schema/provider.go | 7 +++++++ helper/schema/provider_test.go | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/helper/schema/provider.go b/helper/schema/provider.go index a55ea1f350..6a9a0876b4 100644 --- a/helper/schema/provider.go +++ b/helper/schema/provider.go @@ -58,6 +58,13 @@ func (p *Provider) Meta() interface{} { return p.meta } +// SetMeta can be used to forcefully set the Meta object of the provider. +// Note that if Configure is called the return value will override anything +// set here. +func (p *Provider) SetMeta(v interface{}) { + p.meta = v +} + // Validate validates the provider configuration against the schema. func (p *Provider) Validate(c *terraform.ResourceConfig) ([]string, []error) { return schemaMap(p.Schema).Validate(c) diff --git a/helper/schema/provider_test.go b/helper/schema/provider_test.go index efdcb86193..1a27b855f7 100644 --- a/helper/schema/provider_test.go +++ b/helper/schema/provider_test.go @@ -155,3 +155,16 @@ func TestProviderValidateResource(t *testing.T) { } } } + +func TestProviderMeta(t *testing.T) { + p := new(Provider) + if v := p.Meta(); v != nil { + t.Fatalf("bad: %#v", v) + } + + expected := 42 + p.SetMeta(42) + if v := p.Meta(); !reflect.DeepEqual(v, expected) { + t.Fatalf("bad: %#v") + } +}