* Populates ComponentOptions into plugin structs * Maps options for legacy Provider Plugins into PluginOptions * Demos use of PluginOptions in a stub provider * Honors plugin priority and defaultable settings
97 lines
2.0 KiB
Go
97 lines
2.0 KiB
Go
package provider
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/hashicorp/vagrant-plugin-sdk/component"
|
|
"github.com/hashicorp/vagrant-plugin-sdk/core"
|
|
)
|
|
|
|
// Happy is a provider that is just happy to be backing your vagrant VMs.
|
|
type Happy struct{}
|
|
|
|
func (p *Happy) Action(name string, args ...interface{}) error {
|
|
return nil
|
|
}
|
|
|
|
// ActionFunc implements component.Provider
|
|
func (h *Happy) ActionFunc(actionName string) interface{} {
|
|
return h.Action
|
|
}
|
|
|
|
func (h *Happy) Capability(name string, args ...interface{}) (interface{}, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// CapabilityFunc implements component.Provider
|
|
func (h *Happy) CapabilityFunc(name string) interface{} {
|
|
return h.Capability
|
|
}
|
|
|
|
func (h *Happy) HasCapability(n *component.NamedCapability) bool {
|
|
return false
|
|
}
|
|
|
|
// HasCapabilityFunc implements component.Provicer
|
|
func (h *Happy) HasCapabilityFunc() interface{} {
|
|
return h.HasCapability
|
|
}
|
|
|
|
func (h *Happy) MachineIdChanged() error {
|
|
return nil
|
|
}
|
|
|
|
// MachineIdChangedFunc implements component.Provicer
|
|
func (h *Happy) MachineIdChangedFunc() interface{} {
|
|
return h.MachineIdChanged
|
|
}
|
|
|
|
func (h *Happy) Installed(context.Context) (bool, error) {
|
|
return true, nil
|
|
}
|
|
|
|
// InstalledFunc implements component.Provider
|
|
func (h *Happy) InstalledFunc() interface{} {
|
|
return h.Installed
|
|
}
|
|
|
|
func (h *Happy) Init() (bool, error) {
|
|
return true, nil
|
|
}
|
|
|
|
// InitFunc implements component.Provider
|
|
func (h *Happy) InitFunc() interface{} {
|
|
return h.Init
|
|
}
|
|
|
|
func (h *Happy) SshInfo() (*core.SshInfo, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// SshInfoFunc implements component.Provider
|
|
func (h *Happy) SshInfoFunc() interface{} {
|
|
return h.SshInfo
|
|
}
|
|
|
|
func (h *Happy) State() (*core.MachineState, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// StateFunc implements component.Provider
|
|
func (h *Happy) StateFunc() interface{} {
|
|
return h.State
|
|
}
|
|
|
|
func (h *Happy) Usable() (bool, error) {
|
|
return false, nil
|
|
}
|
|
|
|
// UsableFunc implements component.Provider
|
|
func (h *Happy) UsableFunc() interface{} {
|
|
return h.Usable
|
|
}
|
|
|
|
var (
|
|
_ component.Provider = (*Happy)(nil)
|
|
)
|