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 "state-server" property with a boolean value. If this is true, a state server 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
- Variables
- func AdminUserTag() names.UserTag
- func IsSameStorage(s1, s2 storage.Storage) bool
- func Listen(c chan<- Operation)
- func PatchTransientErrorInjectionChannel(c chan error) func()
- func Poison(ss storage.Storage, path string, poisonErr error)
- func Reset()
- func SampleConfig() testing.Attrs
- func SetInstanceAddresses(inst instance.Instance, addrs []network.Address)
- func SetInstanceStatus(inst instance.Instance, status string)
- func SetStatePolicy(policy state.Policy)
- func SetStorageDelay(d time.Duration)
- type OpAllocateAddress
- type OpBootstrap
- type OpClosePorts
- type OpDestroy
- type OpFinalizeBootstrap
- type OpListNetworks
- type OpNetworkInterfaces
- type OpOpenPorts
- type OpPutFile
- type OpReleaseAddress
- type OpStartInstance
- type OpStopInstances
- type Operation
Constants ¶
const (
BootstrapInstanceId = instance.Id("localhost")
)
Variables ¶
var ( ErrNotPrepared = errors.New("environment is not prepared") ErrDestroyed = errors.New("environment has been destroyed") )
var DataDir = ""
Override for testing - the data directory with which the state api server is initialised.
var LogDir = ""
Functions ¶
func AdminUserTag ¶
AdminUserTag returns the user tag used to bootstrap the dummy environment. The dummy bootstrapping is handled slightly differently, and the user is created as part of the bootstrap process. This method is used to provide tests a way to get to the user name that was used to initialise the database, and as such, is the owner of the initial environment.
func IsSameStorage ¶
IsSameStorage returns whether the storage instances are the same. Both storages must have been created through the dummy provider.
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()
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 ¶
SampleConfig() returns an environment configuration with all required attributes set.
func SetInstanceAddresses ¶
SetInstanceAddresses sets the addresses associated with the given dummy instance.
func SetInstanceStatus ¶
SetInstanceStatus sets the status associated with the given dummy instance.
func SetStatePolicy ¶
SetStatePolicy sets the state.Policy to use when a state server is initialised by dummy.
func SetStorageDelay ¶
SetStorageDelay causes any storage download operation in any current environment to be delayed for the given duration.
Types ¶
type OpAllocateAddress ¶
type OpBootstrap ¶
type OpBootstrap struct { Context environs.BootstrapContext Env string Args environs.BootstrapParams }
type OpClosePorts ¶
type OpFinalizeBootstrap ¶
type OpFinalizeBootstrap struct { Context environs.BootstrapContext Env string MachineConfig *cloudinit.MachineConfig }
type OpListNetworks ¶
type OpListNetworks struct { Env string Info []network.SubnetInfo }
TODO(dimitern) Rename this to OpSubnets and add InstanceId field.
type OpNetworkInterfaces ¶
type OpNetworkInterfaces struct { Env string InstanceId instance.Id Info []network.InterfaceInfo }
type OpOpenPorts ¶
type OpReleaseAddress ¶
type OpStartInstance ¶
type OpStartInstance struct { Env string MachineId string MachineNonce string PossibleTools coretools.List Instance instance.Instance Constraints constraints.Value Networks []string NetworkInfo []network.InterfaceInfo Info *mongo.MongoInfo Jobs []multiwatcher.MachineJob APIInfo *api.Info Secret string AgentEnvironment map[string]string }