7 // EvalInitProvisioner is an EvalNode implementation that initializes a provisioner
8 // and returns nothing. The provisioner can be retrieved again with the
9 // EvalGetProvisioner node.
10 type EvalInitProvisioner struct {
14 func (n *EvalInitProvisioner) Eval(ctx EvalContext) (interface{}, error) {
15 return ctx.InitProvisioner(n.Name)
18 // EvalCloseProvisioner is an EvalNode implementation that closes provisioner
19 // connections that aren't needed anymore.
20 type EvalCloseProvisioner struct {
24 func (n *EvalCloseProvisioner) Eval(ctx EvalContext) (interface{}, error) {
25 ctx.CloseProvisioner(n.Name)
29 // EvalGetProvisioner is an EvalNode implementation that retrieves an already
30 // initialized provisioner instance for the given name.
31 type EvalGetProvisioner struct {
33 Output *ResourceProvisioner
36 func (n *EvalGetProvisioner) Eval(ctx EvalContext) (interface{}, error) {
37 result := ctx.Provisioner(n.Name)
39 return nil, fmt.Errorf("provisioner %s not initialized", n.Name)