Documentation

Index

Constants

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

Variables

This section is empty.

Functions

func AddCharm

func AddCharm(st *state.State, curl *charm.URL, ch charm.Charm) (*state.Charm, error)

    AddCharm adds the charm to state and storage.

    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-{{.}}",
        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",
        VLANTag: 42,
        

        })

        func AssertStartControllerInstance

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

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

          func AssertStartInstance

          func AssertStartInstance(
          	c *gc.C, env environs.Environ, controllerUUID, 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, controllerUUID, 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 DefaultVersions

              func DefaultVersions(conf *config.Config) []version.Binary

                DefaultVersions returns a slice of unique 'versions' for the current environment's preferred series and host architecture, as well supported LTS series for the host architecture. Additionally, it ensures that 'versions' for amd64 are returned if that is not the current host's architecture.

                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 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

                    func StartInstance(
                    	env environs.Environ, controllerUUID, machineId string,
                    ) (
                    	instance.Instance, *instance.HardwareCharacteristics, []network.InterfaceInfo, error,
                    )

                      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, controllerUUID, 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{}
                            
                            	// ControllerConfigAttrs can be set up before SetUpTest
                            	// is invoked. Any attributes set here will be added to
                            	// the suite's controller configuration.
                            	ControllerConfigAttrs 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
                            
                            	ControllerConfig controller.Config
                            	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)

                                AddDefaultTools adds tools to tools storage for default juju series and architectures.

                                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.Application

                                func (*JujuConnSuite) AddTestingServiceWithBindings

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

                                func (*JujuConnSuite) AddTestingServiceWithStorage

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

                                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) CreateUserHome

                                    func (s *JujuConnSuite) CreateUserHome(c *gc.C, params *UserHomeParams)

                                      Create a home directory and Juju data home for user username. This is used by setUpConn to create the 'ubuntu' user home, after RootDir, and may be used again later for other users.

                                      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) OpenControllerAPI

                                            func (s *JujuConnSuite) OpenControllerAPI(c *gc.C) api.Connection

                                            func (*JujuConnSuite) OpenControllerAPIAs

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

                                            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.Application, []*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)

                                              type UserHomeParams

                                              type UserHomeParams struct {
                                              	// The username of the operating system user whose fake home
                                              	// directory is to be created.
                                              	Username string
                                              
                                              	// Override the default osenv.JujuModelEnvKey.
                                              	ModelEnvKey string
                                              
                                              	// Should the oldJujuXDGDataHome field be set?
                                              	// This is likely only true during setUpConn, as we want teardown to
                                              	// reset to the most original value.
                                              	SetOldHome bool
                                              }

                                                UserHomeParams stores parameters with which to create an os user home dir.