Documentation

Overview

    The dummy provider implements an environment provider for testing purposes, registered with environs under the name "dummy".

    The configuration YAML for the testing environment must specify a "controller" property with a boolean value. If this is true, a controller will be started when the environment is bootstrapped.

    The configuration data also accepts a "broken" property of type boolean. If this is non-empty, any operation after the environment has been opened will return the error "broken environment", and will also log that.

    The DNS name of instances is the same as the Id, with ".dns" appended.

    To avoid enumerating all possible series and architectures, any series or architecture with the prefix "unknown" is treated as bad when starting a new instance.

    Index

    Constants

    View Source
    const BootstrapInstanceId = "localhost"

    Variables

    View Source
    var DataDir = ""

      Override for testing - the data directory with which the state api server is initialised.

      View Source
      var LogDir = ""

      Functions

      func Listen

      func Listen(c chan<- Operation)

        Listen closes the previously registered listener (if any). Subsequent operations on any dummy environment can be received on c (if not nil).

        func PatchTransientErrorInjectionChannel

        func PatchTransientErrorInjectionChannel(c chan error) func()

          PatchTransientErrorInjectionChannel sets the transientInjectionError channel which can be used to inject errors into StartInstance for testing purposes The injected errors will use the string received on the channel and the instance's state will eventually go to error, while the received string will appear in the info field of the machine's status

          func Reset

          func Reset(c *gc.C)

            Reset resets the entire dummy environment and forgets any registered operation listener. All opened environments after Reset will share the same underlying state.

            func SampleConfig

            func SampleConfig() testing.Attrs

              SampleConfig() returns an environment configuration with all required attributes set.

              func SetInstanceAddresses

              func SetInstanceAddresses(inst instance.Instance, addrs []network.Address)

                SetInstanceAddresses sets the addresses associated with the given dummy instance.

                func SetInstanceBroken

                func SetInstanceBroken(inst instance.Instance, methods ...string)

                  SetInstanceBroken marks the named methods of the instance as broken. Any previously broken methods not in the set will no longer be broken.

                  func SetInstanceStatus

                  func SetInstanceStatus(inst instance.Instance, status string)

                    SetInstanceStatus sets the status associated with the given dummy instance.

                    func SetStatePolicy

                    func SetStatePolicy(policy state.Policy)

                      SetStatePolicy sets the state.Policy to use when a controller is initialised by dummy.

                      func SetSupportsSpaceDiscovery

                      func SetSupportsSpaceDiscovery(supports bool) bool

                        SetSupportsSpaceDiscovery allows to enable and disable SupportsSpaceDiscovery for tests.

                        func SetSupportsSpaces

                        func SetSupportsSpaces(supports bool) bool

                          SetSupportsSpaces allows to enable and disable SupportsSpaces for tests.

                          Types

                          type OpAllocateAddress

                          type OpAllocateAddress struct {
                          	Env        string
                          	InstanceId instance.Id
                          	SubnetId   network.Id
                          	Address    network.Address
                          	MACAddress string
                          	HostName   string
                          }

                          type OpBootstrap

                          type OpBootstrap struct {
                          	Context environs.BootstrapContext
                          	Env     string
                          	Args    environs.BootstrapParams
                          }

                          type OpClosePorts

                          type OpClosePorts struct {
                          	Env        string
                          	MachineId  string
                          	InstanceId instance.Id
                          	Ports      []network.PortRange
                          }

                          type OpDestroy

                          type OpDestroy struct {
                          	Env   string
                          	Error error
                          }

                          type OpFinalizeBootstrap

                          type OpFinalizeBootstrap struct {
                          	Context        environs.BootstrapContext
                          	Env            string
                          	InstanceConfig *instancecfg.InstanceConfig
                          }

                          type OpNetworkInterfaces

                          type OpNetworkInterfaces struct {
                          	Env        string
                          	InstanceId instance.Id
                          	Info       []network.InterfaceInfo
                          }

                          type OpOpenPorts

                          type OpOpenPorts struct {
                          	Env        string
                          	MachineId  string
                          	InstanceId instance.Id
                          	Ports      []network.PortRange
                          }

                          type OpPutFile

                          type OpPutFile struct {
                          	Env      string
                          	FileName string
                          }

                          type OpReleaseAddress

                          type OpReleaseAddress struct {
                          	Env        string
                          	InstanceId instance.Id
                          	SubnetId   network.Id
                          	Address    network.Address
                          	MACAddress string
                          	HostName   string
                          }

                          type OpStartInstance

                          type OpStartInstance struct {
                          	Env              string
                          	MachineId        string
                          	MachineNonce     string
                          	PossibleTools    coretools.List
                          	Instance         instance.Instance
                          	Constraints      constraints.Value
                          	SubnetsToZones   map[network.Id][]string
                          	NetworkInfo      []network.InterfaceInfo
                          	Volumes          []storage.Volume
                          	Info             *mongo.MongoInfo
                          	Jobs             []multiwatcher.MachineJob
                          	APIInfo          *api.Info
                          	Secret           string
                          	AgentEnvironment map[string]string
                          }

                          type OpStopInstances

                          type OpStopInstances struct {
                          	Env string
                          	Ids []instance.Id
                          }

                          type OpSubnets

                          type OpSubnets struct {
                          	Env        string
                          	InstanceId instance.Id
                          	SubnetIds  []network.Id
                          	Info       []network.SubnetInfo
                          }

                          type Operation

                          type Operation interface{}

                            Operation represents an action on the dummy provider.