helper/schema: provisioner allows for nil state
This commit is contained in:
parent
b2891bc9ef
commit
a1da59a73e
|
@ -130,8 +130,10 @@ func (p *Provisioner) Apply(
|
||||||
// easily build a ResourceData structure. We do this by simply treating
|
// easily build a ResourceData structure. We do this by simply treating
|
||||||
// the conn info as configuration input.
|
// the conn info as configuration input.
|
||||||
raw := make(map[string]interface{})
|
raw := make(map[string]interface{})
|
||||||
for k, v := range s.Ephemeral.ConnInfo {
|
if s != nil {
|
||||||
raw[k] = v
|
for k, v := range s.Ephemeral.ConnInfo {
|
||||||
|
raw[k] = v
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c, err := config.NewRawConfig(raw)
|
c, err := config.NewRawConfig(raw)
|
||||||
|
|
|
@ -137,6 +137,42 @@ func TestProvisionerApply(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestProvisionerApply_nilState(t *testing.T) {
|
||||||
|
p := &Provisioner{
|
||||||
|
ConnSchema: map[string]*Schema{
|
||||||
|
"foo": &Schema{
|
||||||
|
Type: TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
Schema: map[string]*Schema{
|
||||||
|
"foo": &Schema{
|
||||||
|
Type: TypeInt,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
ApplyFunc: func(ctx context.Context) error {
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
conf := map[string]interface{}{
|
||||||
|
"foo": 42,
|
||||||
|
}
|
||||||
|
|
||||||
|
c, err := config.NewRawConfig(conf)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = p.Apply(nil, nil, terraform.NewResourceConfig(c))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestProvisionerStop(t *testing.T) {
|
func TestProvisionerStop(t *testing.T) {
|
||||||
var p Provisioner
|
var p Provisioner
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue