Documentation
¶
Overview ¶
Package common provides functions and types used by several other packages of the CML2 Terraform provider.
Package common provides shared helpers for provider implementation.
Index ¶
- Constants
- func Converge(ctx context.Context, client *client.Client, diags *diag.Diagnostics, ...)
- func ErrorString(err error) string
- func IsBuiltInNodeDefinition(nodeDef NodeDefinition) bool
- func NodeDefIsLibvirtBacked(nd models.NodeDefinition) bool
- func NodeDefLibvirtDomainDriver(nd models.NodeDefinition) string
- func NodeDefLinuxDriver(nd models.NodeDefinition) string
- func Split2(s, sep string) []string
- type NodeDefinition
- type ProviderConfig
- func (r *ProviderConfig) Client() *cmlclient.Client
- func (r *ProviderConfig) Initialize(ctx context.Context, diags *diag.Diagnostics) *ProviderConfig
- func (r *ProviderConfig) Lock()
- func (r *ProviderConfig) NodeDefinitions(ctx context.Context) (models.NodeDefinitionMap, error)
- func (r *ProviderConfig) Unlock()
- func (r *ProviderConfig) UseNamedConfigs() bool
Constants ¶
const (
// ErrorLabel is the standard diagnostics title used for provider errors.
ErrorLabel = "CML2 Provider Error"
)
Variables ¶
This section is empty.
Functions ¶
func Converge ¶
func Converge(ctx context.Context, client *client.Client, diags *diag.Diagnostics, id, timeout string)
Converge waits until a lab reports convergence or the timeout is reached.
func ErrorString ¶ added in v0.9.0
ErrorString returns err.Error() or an empty string for nil.
func IsBuiltInNodeDefinition ¶ added in v0.9.0
func IsBuiltInNodeDefinition(nodeDef NodeDefinition) bool
IsBuiltInNodeDefinition reports whether nodeDef is a built-in definition ID.
func NodeDefIsLibvirtBacked ¶ added in v0.9.0
func NodeDefIsLibvirtBacked(nd models.NodeDefinition) bool
NodeDefIsLibvirtBacked reports whether the node definition is VM-backed (libvirt/qemu) based on the libvirt_domain_driver field.
func NodeDefLibvirtDomainDriver ¶ added in v0.9.0
func NodeDefLibvirtDomainDriver(nd models.NodeDefinition) string
NodeDefLibvirtDomainDriver returns the libvirt domain driver for a node definition. Empty means "not a libvirt/qemu VM" (e.g. docker-style nodes).
func NodeDefLinuxDriver ¶ added in v0.9.0
func NodeDefLinuxDriver(nd models.NodeDefinition) string
NodeDefLinuxDriver returns the simulator driver value (often matches the backend implementation, e.g. qemu for VM-backed nodes).
Types ¶
type NodeDefinition ¶ added in v0.9.0
type NodeDefinition = string
NodeDefinition is the internal string identifier used for node types. Examples: "alpine", "iosv", "ioll2-xe", "external_connector".
type ProviderConfig ¶
type ProviderConfig struct {
// contains filtered or unexported fields
}
ProviderConfig stores initialized API client and provider-level settings.
func DatasourceConfigure ¶
func DatasourceConfigure(ctx context.Context, req datasource.ConfigureRequest, resp *datasource.ConfigureResponse) *ProviderConfig
DatasourceConfigure returns provider config for a datasource.
func NewProviderConfig ¶
func NewProviderConfig(data *cmlschema.ProviderModel) *ProviderConfig
NewProviderConfig creates a ProviderConfig from provider schema data.
func ResourceConfigure ¶
func ResourceConfigure(ctx context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse) *ProviderConfig
ResourceConfigure returns provider config for a resource.
func (*ProviderConfig) Client ¶
func (r *ProviderConfig) Client() *cmlclient.Client
Client returns the configured CML client.
func (*ProviderConfig) Initialize ¶
func (r *ProviderConfig) Initialize(ctx context.Context, diags *diag.Diagnostics) *ProviderConfig
Initialize lazily creates the API client.
func (*ProviderConfig) Lock ¶
func (r *ProviderConfig) Lock()
Lock serializes operations that must not run concurrently.
func (*ProviderConfig) NodeDefinitions ¶ added in v0.9.0
func (r *ProviderConfig) NodeDefinitions(ctx context.Context) (models.NodeDefinitionMap, error)
NodeDefinitions returns the controller's node definition map. The result is cached for the lifetime of the provider instance.
func (*ProviderConfig) Unlock ¶
func (r *ProviderConfig) Unlock()
Unlock releases the provider-level lock.
func (*ProviderConfig) UseNamedConfigs ¶
func (r *ProviderConfig) UseNamedConfigs() bool
UseNamedConfigs reports whether named configs are enabled.