providers

package
v0.15.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2018 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

UnknownID is a distinguished token used to indicate that a provider's ID is not known (e.g. because we are performing a preview).

Variables

This section is empty.

Functions

func IsProviderType

func IsProviderType(typ tokens.Type) bool

IsProviderType returns true if the supplied type token refers to a Pulumi provider.

func MakeProviderType

func MakeProviderType(pkg tokens.Package) tokens.Type

MakeProviderType returns the provider type token for the given package.

Types

type Reference

type Reference struct {
	// contains filtered or unexported fields
}

Reference represents a reference to a particular provider.

func NewReference

func NewReference(urn resource.URN, id resource.ID) (Reference, error)

NewReference creates a new reference for the given URN and ID.

func ParseReference

func ParseReference(s string) (Reference, error)

ParseReference parses the URN and ID from the string representation of a provider reference. If parsing was not possible, this function returns false.

func (Reference) ID

func (r Reference) ID() resource.ID

ID returns the provider reference's ID.

func (Reference) String

func (r Reference) String() string

String returns the string representation of this provider reference.

func (Reference) URN

func (r Reference) URN() resource.URN

URN returns the provider reference's URN.

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry manages the lifecylce of provider resources and their plugins and handles the resolution of provider references to loaded plugins.

When a registry is created, it is handed the set of old provider resources that it will manage. Each provider resource in this set is loaded and configured as per its recorded inputs and registered under the provider reference that corresponds to its URN and ID, both of which must be known. At this point, the created registry is prepared to be used to manage the lifecycle of these providers as well as any new provider resources requested by invoking the registry's CRUD operations.

In order to fit neatly in to the existing infrastructure for managing resources using Pulumi, a provider regidstry itself implements the plugin.Provider interface.

func NewRegistry

func NewRegistry(host plugin.Host, prev []*resource.State, isPreview bool) (*Registry, error)

NewRegistry creates a new provider registry using the given host and old resources. Each provider present in the old resources will be loaded, configured, and added to the returned registry under its reference. If any provider is not loadable/configurable or has an invalid ID, this function returns an error.

func (*Registry) Check

func (r *Registry) Check(urn resource.URN, olds, news resource.PropertyMap,
	allowUnknowns bool) (resource.PropertyMap, []plugin.CheckFailure, error)

Check validates the configuration for a particular provider resource.

The particulars of Check are a bit subtle for a few reasons:

  • we need to load the provider for the package indicated by the type name portion provider resource's URN in order to check its config
  • we need to keep the newly-loaded provider around in case we need to diff its config
  • if we are running a preview, we need to configure the provider, as its corresponding CRUD operations will not run (we would normally configure the provider in Create or Update).

func (*Registry) CheckConfig

func (r *Registry) CheckConfig(olds, news resource.PropertyMap) (resource.PropertyMap, []plugin.CheckFailure, error)

CheckConfig validates the configuration for this resource provider.

func (*Registry) Close

func (r *Registry) Close() error

func (*Registry) Configure

func (r *Registry) Configure(props resource.PropertyMap) error

func (*Registry) Create

Create coonfigures the provider with the given URN using the indicated configuration, assigns it an ID, and registers it under the assigned (URN, ID).

The provider must have been loaded by a prior call to Check.

func (*Registry) Delete

func (r *Registry) Delete(urn resource.URN, id resource.ID, props resource.PropertyMap) (resource.Status, error)

Delete unregisters and unloads the provider with the given URN and ID. The provider must have been loaded when the registry was created (i.e. it must have been present in the state handed to NewRegistry).

func (*Registry) Diff

func (r *Registry) Diff(urn resource.URN, id resource.ID, olds, news resource.PropertyMap,
	allowUnknowns bool) (plugin.DiffResult, error)

Diff diffs the configuration of the indicated provider. The provider corresponding to the given URN must have previously been loaded by a call to Check.

func (*Registry) DiffConfig

func (r *Registry) DiffConfig(olds, news resource.PropertyMap) (plugin.DiffResult, error)

DiffConfig checks what impacts a hypothetical change to this provider's configuration will have on the provider.

func (*Registry) GetPluginInfo

func (r *Registry) GetPluginInfo() (workspace.PluginInfo, error)

func (*Registry) GetProvider

func (r *Registry) GetProvider(ref Reference) (plugin.Provider, bool)

GetProvider returns the provider plugin that is currently registered under the given reference, if any.

func (*Registry) Invoke

func (*Registry) Pkg

func (r *Registry) Pkg() tokens.Package

func (*Registry) Read

func (*Registry) SignalCancellation

func (r *Registry) SignalCancellation() error

func (*Registry) Update

Update configures the provider with the given URN and ID using the indicated configuration and registers it at the reference indicated by the (URN, ID) pair.

THe provider must have been loaded by a prior call to Check.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL