Documentation

Index

Constants

View Source
const AdminSecret = "dummy-secret"
View Source
const ControllerName = "kontroll"

Variables

This section is empty.

Functions

func AddControllerMachine

func AddControllerMachine(c *gc.C, st *state.State) *state.Machine

    AddControllerMachine adds a "controller" machine to the state so that State.Addresses and State.APIAddresses will work. It returns the added machine. The addresses that those methods will return bear no relation to the addresses actually used by the state and API servers. It returns the addresses that will be returned by the State.Addresses and State.APIAddresses methods, which will not bear any relation to the be the addresses used by the controllers.

    func AddSubnetsWithTemplate

    func AddSubnetsWithTemplate(c *gc.C, st *state.State, numSubnets uint, infoTemplate state.SubnetInfo)

      AddSubnetsWithTemplate adds numSubnets subnets, using the given infoTemplate. Any string field in the infoTemplate can be specified as a text/template string containing {{.}}, which is the current index of the subnet-to-add (between 0 and numSubnets-1).

      Example:

      AddSubnetsWithTemplate(c, st, 2, state.SubnetInfo{

      CIDR: "10.10.{{.}}.0/24",
      ProviderId: "subnet-{{.}}",
      SpaceName: "space1",
      AvailabilityZone: "zone-{{.}}",
      AllocatableIPLow: "{{if (gt . 0)}}10.10.{{.}}.5{{end}}",
      AllocatableIPHigh: "{{if (gt . 0)}}10.10.{{.}}.254{{end}}",
      VLANTag: 42,
      

      })

      This is equivalent to the following calls:

      _, err := st.AddSubnet(state.SubnetInfo{

      CIDR: "10.10.0.0/24",
      ProviderId: "subnet-0",
      SpaceName: "space1",
      AvailabilityZone: "zone-0",
      VLANTag: 42,
      

      }) c.Assert(err, jc.ErrorIsNil) _, err = st.AddSubnet(state.SubnetInfo{

      CIDR: "10.10.1.0/24",
      ProviderId: "subnet-1",
      SpaceName: "space1",
      AvailabilityZone: "zone-1",
      AllocatableIPLow: "10.10.1.5",
      AllocatableIPHigh: "10.10.1.254",
      VLANTag: 42,
      

      })

      func AssertStartInstance

      func AssertStartInstance(
      	c *gc.C, env environs.Environ, machineId string,
      ) (
      	instance.Instance, *instance.HardwareCharacteristics,
      )

        AssertStartInstance is a test helper function that starts an instance with a plausible but invalid configuration, and checks that it succeeds.

        func AssertStartInstanceWithConstraints

        func AssertStartInstanceWithConstraints(
        	c *gc.C, env environs.Environ, machineId string, cons constraints.Value,
        ) (
        	instance.Instance, *instance.HardwareCharacteristics,
        )

          AssertStartInstanceWithConstraints is a test helper function that starts an instance with the given constraints, and a plausible but invalid configuration, and returns the result of Environ.StartInstance.

          func FakeAPIInfo

          func FakeAPIInfo(machineId string) *api.Info

            FakeAPIInfo holds information about no state - it will always give an error when connected to. The machine id gives the machine id of the machine to be started.

            func FakeStateInfo

            func FakeStateInfo(machineId string) *mongo.MongoInfo

              FakeStateInfo holds information about no state - it will always give an error when connected to. The machine id gives the machine id of the machine to be started.

              func PreferredDefaultVersions

              func PreferredDefaultVersions(conf *config.Config, template version.Binary) []version.Binary

              func PutCharm

              func PutCharm(st *state.State, curl *charm.URL, repo charmrepo.Interface, bumpRevision bool) (*state.Charm, error)

                PutCharm uploads the given charm to provider storage, and adds a state.Charm to the state. The charm is not uploaded if a charm with the same URL already exists in the state. If bumpRevision is true, the charm must be a local directory, and the revision number will be incremented before pushing.

                func SetImageMetadata

                func SetImageMetadata(env environs.Environ, series, arches []string, out *[]*imagemetadata.ImageMetadata) error

                func StartInstance

                  StartInstance is a test helper function that starts an instance with a plausible but invalid configuration, and returns the result of Environ.StartInstance.

                  func StartInstanceWithConstraints

                  func StartInstanceWithConstraints(
                  	env environs.Environ, machineId string, cons constraints.Value,
                  ) (
                  	instance.Instance, *instance.HardwareCharacteristics, []network.InterfaceInfo, error,
                  )

                    StartInstanceWithConstraints is a test helper function that starts an instance with the given constraints, and a plausible but invalid configuration, and returns the result of Environ.StartInstance.

                    func StartInstanceWithParams

                    func StartInstanceWithParams(
                    	env environs.Environ, machineId string,
                    	params environs.StartInstanceParams,
                    ) (
                    	*environs.StartInstanceResult, error,
                    )

                      StartInstanceWithParams is a test helper function that starts an instance with the given parameters, and a plausible but invalid configuration, and returns the result of Environ.StartInstance. The provided params's InstanceConfig and Tools field values will be ignored.

                      func WaitInstanceAddresses

                      func WaitInstanceAddresses(env environs.Environ, instId instance.Id) ([]network.Address, error)

                        WaitAddresses waits until the specified instance has addresses, and returns them.

                        Types

                        type GetStater

                        type GetStater interface {
                        	GetStateInAPIServer() *state.State
                        	GetStatePoolInAPIServer() *state.StatePool
                        }

                        type JujuConnSuite

                        type JujuConnSuite struct {
                        	// ConfigAttrs can be set up before SetUpTest
                        	// is invoked. Any attributes set here will be
                        	// added to the suite's environment configuration.
                        	ConfigAttrs map[string]interface{}
                        
                        	// TODO: JujuConnSuite should not be concerned both with JUJU_DATA and with
                        	// /var/lib/juju: the use cases are completely non-overlapping, and any tests that
                        	// really do need both to exist ought to be embedding distinct fixtures for the
                        	// distinct environments.
                        	gitjujutesting.MgoSuite
                        	testing.FakeJujuXDGDataHomeSuite
                        	envtesting.ToolsFixture
                        
                        	DefaultToolsStorageDir string
                        	DefaultToolsStorage    storage.Storage
                        
                        	State    *state.State
                        	Environ  environs.Environ
                        	APIState api.Connection
                        
                        	ControllerStore  jujuclient.ClientStore
                        	BackingState     *state.State     // The State being used by the API server
                        	BackingStatePool *state.StatePool // The StatePool being used by the API server
                        	RootDir          string           // The faked-up root directory.
                        	LogDir           string
                        
                        	DummyConfig testing.Attrs
                        	Factory     *factory.Factory
                        	// contains filtered or unexported fields
                        }

                          JujuConnSuite provides a freshly bootstrapped juju.Conn for each test. It also includes testing.BaseSuite.

                          It also sets up RootDir to point to a directory hierarchy mirroring the intended juju directory structure, including the following:

                          RootDir/var/lib/juju
                              An empty directory returned as DataDir - the
                              root of the juju data storage space.
                          

                          $HOME is set to point to RootDir/home/ubuntu.

                          func (*JujuConnSuite) APIInfo

                          func (s *JujuConnSuite) APIInfo(c *gc.C) *api.Info

                          func (*JujuConnSuite) AddDefaultToolsToState

                          func (s *JujuConnSuite) AddDefaultToolsToState(c *gc.C)

                            AddDefaultToolsToState adds tools to tools storage for {Number: jujuversion.Current.Number, Arch: amd64}, for the "precise" series and the environment's preferred series. The preferred series is default-series if specified, otherwise the latest LTS.

                            func (*JujuConnSuite) AddOwnedTestingServiceWithArgs

                            func (s *JujuConnSuite) AddOwnedTestingServiceWithArgs(c *gc.C, args state.AddServiceArgs) *state.Service

                            func (*JujuConnSuite) AddTestingCharm

                            func (s *JujuConnSuite) AddTestingCharm(c *gc.C, name string) *state.Charm

                            func (*JujuConnSuite) AddTestingService

                            func (s *JujuConnSuite) AddTestingService(c *gc.C, name string, ch *state.Charm) *state.Service

                            func (*JujuConnSuite) AddTestingServiceWithBindings

                            func (s *JujuConnSuite) AddTestingServiceWithBindings(c *gc.C, name string, ch *state.Charm, bindings map[string]string) *state.Service

                            func (*JujuConnSuite) AddTestingServiceWithStorage

                            func (s *JujuConnSuite) AddTestingServiceWithStorage(c *gc.C, name string, ch *state.Charm, storage map[string]state.StorageConstraints) *state.Service

                            func (*JujuConnSuite) AddToolsToState

                            func (s *JujuConnSuite) AddToolsToState(c *gc.C, versions ...version.Binary)

                              AddToolsToState adds tools to tools storage.

                              func (*JujuConnSuite) AdminUserTag

                              func (s *JujuConnSuite) AdminUserTag(c *gc.C) names.UserTag

                              func (*JujuConnSuite) AgentConfigForTag

                              func (s *JujuConnSuite) AgentConfigForTag(c *gc.C, tag names.Tag) agent.ConfigSetter

                              func (*JujuConnSuite) AssertConfigParameterUpdated

                              func (s *JujuConnSuite) AssertConfigParameterUpdated(c *gc.C, key string, value interface{})

                                AssertConfigParameterUpdated updates environment parameter and asserts that no errors were encountered

                                func (*JujuConnSuite) ConfDir

                                func (s *JujuConnSuite) ConfDir() string

                                func (*JujuConnSuite) DataDir

                                func (s *JujuConnSuite) DataDir() string

                                func (*JujuConnSuite) MongoInfo

                                func (s *JujuConnSuite) MongoInfo(c *gc.C) *mongo.MongoInfo

                                func (*JujuConnSuite) OpenAPIAs

                                func (s *JujuConnSuite) OpenAPIAs(c *gc.C, tag names.Tag, password string) api.Connection

                                  OpenAPIAs opens the API using the given identity tag and password for authentication. The returned api.Connection should not be closed by the caller as a cleanup function has been registered to do that.

                                  func (*JujuConnSuite) OpenAPIAsMachine

                                  func (s *JujuConnSuite) OpenAPIAsMachine(c *gc.C, tag names.Tag, password, nonce string) api.Connection

                                    OpenAPIAsMachine opens the API using the given machine tag, password and nonce for authentication. The returned api.Connection should not be closed by the caller as a cleanup function has been registered to do that.

                                    func (*JujuConnSuite) OpenAPIAsNewMachine

                                    func (s *JujuConnSuite) OpenAPIAsNewMachine(c *gc.C, jobs ...state.MachineJob) (api.Connection, *state.Machine)

                                      OpenAPIAsNewMachine creates a new machine entry that lives in system state, and then uses that to open the API. The returned api.Connection should not be closed by the caller as a cleanup function has been registered to do that. The machine will run the supplied jobs; if none are given, JobHostUnits is assumed.

                                      func (*JujuConnSuite) Reset

                                      func (s *JujuConnSuite) Reset(c *gc.C)

                                        Reset returns environment state to that which existed at the start of the test.

                                        func (*JujuConnSuite) SetUpSuite

                                        func (s *JujuConnSuite) SetUpSuite(c *gc.C)

                                        func (*JujuConnSuite) SetUpTest

                                        func (s *JujuConnSuite) SetUpTest(c *gc.C)

                                        func (*JujuConnSuite) TearDownSuite

                                        func (s *JujuConnSuite) TearDownSuite(c *gc.C)

                                        func (*JujuConnSuite) TearDownTest

                                        func (s *JujuConnSuite) TearDownTest(c *gc.C)

                                        type RepoSuite

                                        type RepoSuite struct {
                                        	JujuConnSuite
                                        	CharmsPath string
                                        }

                                        func (*RepoSuite) AssertCharmUploaded

                                        func (s *RepoSuite) AssertCharmUploaded(c *gc.C, curl *charm.URL)

                                        func (*RepoSuite) AssertService

                                        func (s *RepoSuite) AssertService(c *gc.C, name string, expectCurl *charm.URL, unitCount, relCount int) (*state.Service, []*state.Relation)

                                        func (*RepoSuite) AssertUnitMachines

                                        func (s *RepoSuite) AssertUnitMachines(c *gc.C, units []*state.Unit)

                                        func (*RepoSuite) SetUpTest

                                        func (s *RepoSuite) SetUpTest(c *gc.C)