terraform: copy the provider input configs for the shadow context
This commit is contained in:
parent
fdeb4656c9
commit
a014b098b0
|
@ -31,6 +31,12 @@ func newShadowContext(c *Context) (*Context, *Context, Shadow) {
|
|||
panic(err)
|
||||
}
|
||||
|
||||
// Copy the provider inputs
|
||||
providerInputRaw, err := copystructure.Copy(c.providerInputConfig)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// The factories
|
||||
componentsReal, componentsShadow := newShadowComponentFactory(c.components)
|
||||
|
||||
|
@ -50,7 +56,7 @@ func newShadowContext(c *Context) (*Context, *Context, Shadow) {
|
|||
// a ton since we're doing far less compared to the real side
|
||||
// and our operations are MUCH faster.
|
||||
parallelSem: NewSemaphore(4),
|
||||
providerInputConfig: make(map[string]map[string]interface{}),
|
||||
providerInputConfig: providerInputRaw.(map[string]map[string]interface{}),
|
||||
}
|
||||
|
||||
// Create the real context. This is effectively just a copy of
|
||||
|
|
|
@ -72,9 +72,11 @@ func (p *shadowResourceProviderReal) Close() error {
|
|||
|
||||
func (p *shadowResourceProviderReal) Input(
|
||||
input UIInput, c *ResourceConfig) (*ResourceConfig, error) {
|
||||
cCopy := c.DeepCopy()
|
||||
|
||||
result, err := p.ResourceProvider.Input(input, c)
|
||||
p.Shared.Input.SetValue(&shadowResourceProviderInput{
|
||||
Config: c.DeepCopy(),
|
||||
Config: cCopy,
|
||||
Result: result.DeepCopy(),
|
||||
ResultErr: err,
|
||||
})
|
||||
|
@ -94,9 +96,11 @@ func (p *shadowResourceProviderReal) Validate(c *ResourceConfig) ([]string, []er
|
|||
}
|
||||
|
||||
func (p *shadowResourceProviderReal) Configure(c *ResourceConfig) error {
|
||||
cCopy := c.DeepCopy()
|
||||
|
||||
err := p.ResourceProvider.Configure(c)
|
||||
p.Shared.Configure.SetValue(&shadowResourceProviderConfigure{
|
||||
Config: c.DeepCopy(),
|
||||
Config: cCopy,
|
||||
Result: err,
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue