provisioners: Add Factory type and FactoryFixed helper
These are similar to the symbols of the same name in package "providers". terraform.ProvisionerFactory is now an alias for provisioners.Factory, so we can defer updating all of the existing users of it.
This commit is contained in:
parent
5ff35c1a9a
commit
a2a37ae40d
|
@ -0,0 +1,19 @@
|
||||||
|
package provisioners
|
||||||
|
|
||||||
|
// Factory is a function type that creates a new instance of a resource
|
||||||
|
// provisioner, or returns an error if that is impossible.
|
||||||
|
type Factory func() (Interface, error)
|
||||||
|
|
||||||
|
// FactoryFixed is a helper that creates a Factory that just returns some given
|
||||||
|
// single provisioner.
|
||||||
|
//
|
||||||
|
// Unlike usual factories, the exact same instance is returned for each call
|
||||||
|
// to the factory and so this must be used in only specialized situations where
|
||||||
|
// the caller can take care to either not mutate the given provider at all
|
||||||
|
// or to mutate it in ways that will not cause unexpected behavior for others
|
||||||
|
// holding the same reference.
|
||||||
|
func FactoryFixed(p Interface) Factory {
|
||||||
|
return func() (Interface, error) {
|
||||||
|
return p, nil
|
||||||
|
}
|
||||||
|
}
|
|
@ -67,4 +67,4 @@ type ResourceProvisionerFactory func() (ResourceProvisioner, error)
|
||||||
|
|
||||||
// ProvisionerFactory is a function type that creates a new instance
|
// ProvisionerFactory is a function type that creates a new instance
|
||||||
// of a provisioners.Interface.
|
// of a provisioners.Interface.
|
||||||
type ProvisionerFactory func() (provisioners.Interface, error)
|
type ProvisionerFactory = provisioners.Factory
|
||||||
|
|
Loading…
Reference in New Issue