Documentation ¶
Index ¶
- Variables
- func AssertProviderAuthTypes(c *gc.C, p environs.EnvironProvider, expectedAuthTypes ...cloud.AuthType)
- func AssertProviderCredentialsAttributesHidden(c *gc.C, p environs.EnvironProvider, authType cloud.AuthType, ...)
- func AssertProviderCredentialsValid(c *gc.C, p environs.EnvironProvider, authType cloud.AuthType, ...)
- func AssertUploadFakeToolsVersions(c *gc.C, stor storage.Storage, toolsDir, stream string, ...) []*coretools.Tools
- func BootstrapContext(c *gc.C) environs.BootstrapContext
- func CheckTools(c *gc.C, obtained, expected *coretools.Tools)
- func CheckUpgraderReadyError(c *gc.C, obtained error, expected *upgrader.UpgradeReadyError)
- func CreateLocalTestStorage(c *gc.C) (closer io.Closer, stor storage.Storage, dataDir string)
- func DisableFinishBootstrap() func()
- func InstallFakeDownloadedTools(c *gc.C, dataDir string, vers version.Binary) *coretools.Tools
- func MustUploadFakeTools(stor storage.Storage, toolsDir, stream string)
- func MustUploadFakeToolsVersions(stor storage.Storage, stream string, versions ...version.Binary) []*coretools.Tools
- func PatchAttemptStrategies(strategies ...*utils.AttemptStrategy) func()
- func PrimeTools(c *gc.C, stor storage.Storage, dataDir, toolsDir string, vers version.Binary) *coretools.Tools
- func RemoveFakeTools(c *gc.C, stor storage.Storage, toolsDir string)
- func RemoveFakeToolsMetadata(c *gc.C, stor storage.Storage)
- func RemoveTools(c *gc.C, stor storage.Storage, toolsDir string)
- func SetSSLHostnameVerification(c *gc.C, st *state.State, SSLHostnameVerification bool)
- func SignFileData(stor storage.Storage, fileName string) error
- func SignTestTools(stor storage.Storage) error
- func UploadFakeTools(c *gc.C, stor storage.Storage, toolsDir, stream string)
- func UploadFakeToolsVersions(stor storage.Storage, toolsDir, stream string, versions ...version.Binary) ([]*coretools.Tools, error)
- type BootstrapToolsTest
- type ToolsFixture
Constants ¶
This section is empty.
Variables ¶
var ( V100 = version.MustParse("1.0.0") V100p64 = version.MustParseBinary("1.0.0-precise-amd64") V100p32 = version.MustParseBinary("1.0.0-precise-i386") V100p = []version.Binary{V100p64, V100p32} V100q64 = version.MustParseBinary("1.0.0-quantal-amd64") V100q32 = version.MustParseBinary("1.0.0-quantal-i386") V100q = []version.Binary{V100q64, V100q32} V100all = append(V100p, V100q...) V1001 = version.MustParse("1.0.0.1") V1001p64 = version.MustParseBinary("1.0.0.1-precise-amd64") V100Xall = append(V100all, V1001p64) V110 = version.MustParse("1.1.0") V110p64 = version.MustParseBinary("1.1.0-precise-amd64") V110p32 = version.MustParseBinary("1.1.0-precise-i386") V110p = []version.Binary{V110p64, V110p32} V110q64 = version.MustParseBinary("1.1.0-quantal-amd64") V110q32 = version.MustParseBinary("1.1.0-quantal-i386") V110q = []version.Binary{V110q64, V110q32} V110all = append(V110p, V110q...) V1101p64 = version.MustParseBinary("1.1.0.1-precise-amd64") V110Xall = append(V110all, V1101p64) V120 = version.MustParse("1.2.0") V120p64 = version.MustParseBinary("1.2.0-precise-amd64") V120p32 = version.MustParseBinary("1.2.0-precise-i386") V120p = []version.Binary{V120p64, V120p32} V120q64 = version.MustParseBinary("1.2.0-quantal-amd64") V120q32 = version.MustParseBinary("1.2.0-quantal-i386") V120q = []version.Binary{V120q64, V120q32} V120t64 = version.MustParseBinary("1.2.0-trusty-amd64") V120t32 = version.MustParseBinary("1.2.0-trusty-i386") V120t = []version.Binary{V120t64, V120t32} V120all = append(append(V120p, V120q...), V120t...) V1all = append(V100Xall, append(V110all, V120all...)...) V220 = version.MustParse("2.2.0") V220p32 = version.MustParseBinary("2.2.0-precise-i386") V220p64 = version.MustParseBinary("2.2.0-precise-amd64") V220q32 = version.MustParseBinary("2.2.0-quantal-i386") V220q64 = version.MustParseBinary("2.2.0-quantal-amd64") V220all = []version.Binary{V220p64, V220p32, V220q64, V220q32} VAll = append(V1all, V220all...) V31d0qppc64 = version.MustParseBinary("3.1-dev0-quantal-ppc64el") V31d01qppc64 = version.MustParseBinary("3.1-dev0.1-quantal-ppc64el") )
var BootstrapToolsTests = []BootstrapToolsTest{ { Info: "no tools at all", CliVersion: V100p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: use newest compatible release version", Available: VAll, CliVersion: V100p64, DefaultSeries: "precise", Expect: V100p, }, { Info: "released cli: cli Arch ignored", Available: VAll, CliVersion: V100p32, DefaultSeries: "precise", Expect: V100p, }, { Info: "released cli: cli series ignored", Available: VAll, CliVersion: V100q64, DefaultSeries: "precise", Expect: V100p, }, { Info: "released cli: series taken from default-series", Available: V120all, CliVersion: V120p64, DefaultSeries: "quantal", Expect: V120q, }, { Info: "released cli: ignore close dev match", Available: V100Xall, CliVersion: V100p64, DefaultSeries: "precise", Expect: V100p, }, { Info: "released cli: filter by arch constraints", Available: V120all, CliVersion: V120p64, DefaultSeries: "precise", Arch: "i386", Expect: []version.Binary{V120p32}, }, { Info: "released cli: specific released version", Available: VAll, CliVersion: V100p64, AgentVersion: V100, DefaultSeries: "precise", Expect: V100p, }, { Info: "released cli: specific dev version", Available: VAll, CliVersion: V110p64, AgentVersion: V110, DefaultSeries: "precise", Expect: V110p, }, { Info: "released cli: major upgrades bad", Available: V220all, CliVersion: V100p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: minor upgrades bad", Available: V120all, CliVersion: V100p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: major downgrades bad", Available: V100Xall, CliVersion: V220p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: minor downgrades bad", Available: V100Xall, CliVersion: V120p64, DefaultSeries: "quantal", Err: noToolsMessage, }, { Info: "released cli: no matching series", Available: VAll, CliVersion: V100p64, DefaultSeries: "raring", Err: noToolsMessage, }, { Info: "released cli: no matching arches", Available: VAll, CliVersion: V100p64, DefaultSeries: "precise", Arch: "armhf", Err: noToolsMessage, }, { Info: "released cli: specific bad major 1", Available: VAll, CliVersion: V220p64, AgentVersion: V120, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: specific bad major 2", Available: VAll, CliVersion: V120p64, AgentVersion: V220, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: ignore dev tools 1", Available: V110all, CliVersion: V100p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: ignore dev tools 2", Available: V110all, CliVersion: V120p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli: ignore dev tools 3", Available: []version.Binary{V1001p64}, CliVersion: V100p64, DefaultSeries: "precise", Err: noToolsMessage, }, { Info: "released cli with dev setting respects agent-version", Available: VAll, CliVersion: V100q32, AgentVersion: V1001, DefaultSeries: "precise", Development: true, Expect: []version.Binary{V1001p64}, }, { Info: "dev cli respects agent-version", Available: VAll, CliVersion: V100q32, AgentVersion: V1001, DefaultSeries: "precise", Expect: []version.Binary{V1001p64}, }, { Info: "released cli with dev setting respects agent-version", Available: V1all, CliVersion: V100q32, AgentVersion: V1001, DefaultSeries: "precise", Development: true, Expect: []version.Binary{V1001p64}, }, { Info: "dev cli respects agent-version", Available: V1all, CliVersion: V100q32, AgentVersion: V1001, DefaultSeries: "precise", Expect: []version.Binary{V1001p64}, }}
Functions ¶
func AssertProviderAuthTypes ¶
func AssertProviderAuthTypes(c *gc.C, p environs.EnvironProvider, expectedAuthTypes ...cloud.AuthType)
AssertProviderAuthTypes asserts that the given provider has credential schemas for exactly the specified set of authentication types.
func AssertProviderCredentialsAttributesHidden ¶
func AssertProviderCredentialsAttributesHidden(c *gc.C, p environs.EnvironProvider, authType cloud.AuthType, expectedHidden ...string)
AssertProviderCredentialsAttributesHidden asserts that the provider credentials schema for the given provider and authentication type marks the specified attributes (and only those attributes) as being hidden.
func AssertProviderCredentialsValid ¶
func AssertProviderCredentialsValid(c *gc.C, p environs.EnvironProvider, authType cloud.AuthType, attrs map[string]string)
AssertProviderCredentialsValid asserts that the given provider is able to validate the given authentication type and credential attributes; and that removing any one of the attributes will cause the validation to fail.
func AssertUploadFakeToolsVersions ¶
func AssertUploadFakeToolsVersions(c *gc.C, stor storage.Storage, toolsDir, stream string, versions ...version.Binary) []*coretools.Tools
AssertUploadFakeToolsVersions puts fake tools in the supplied storage for the supplied versions.
func BootstrapContext ¶
func BootstrapContext(c *gc.C) environs.BootstrapContext
BootstrapContext creates a simple bootstrap execution context.
func CheckTools ¶
CheckTools ensures the obtained and expected tools are equal, allowing for the fact that the obtained tools may not have size and checksum set.
func CheckUpgraderReadyError ¶
func CheckUpgraderReadyError(c *gc.C, obtained error, expected *upgrader.UpgradeReadyError)
CheckUpgraderReadyError ensures the obtained and expected errors are equal.
func CreateLocalTestStorage ¶
CreateLocalTestStorage returns the listener, which needs to be closed, and the storage that is backed by a directory created in the running test's temp directory.
func DisableFinishBootstrap ¶
func DisableFinishBootstrap() func()
DisableFinishBootstrap disables common.FinishBootstrap so that tests do not attempt to SSH to non-existent machines. The result is a function that restores finishBootstrap.
func InstallFakeDownloadedTools ¶
InstallFakeDownloadedTools creates and unpacks fake tools of the given version into the data directory specified.
func MustUploadFakeTools ¶
MustUploadFakeTools acts as UploadFakeTools, but panics on failure.
func MustUploadFakeToolsVersions ¶
func MustUploadFakeToolsVersions(stor storage.Storage, stream string, versions ...version.Binary) []*coretools.Tools
MustUploadFakeToolsVersions acts as UploadFakeToolsVersions, but panics on failure.
func PatchAttemptStrategies ¶
func PatchAttemptStrategies(strategies ...*utils.AttemptStrategy) func()
PatchAttemptStrategies patches environs' global polling strategy, plus any otther AttemptStrategy objects whose addresses you pass, to very short polling and timeout times so that tests can run fast. It returns a cleanup function that restores the original settings. You must call this afterwards.
TODO(katco): 2016-08-09: lp:1611427
func PrimeTools ¶
func PrimeTools(c *gc.C, stor storage.Storage, dataDir, toolsDir string, vers version.Binary) *coretools.Tools
PrimeTools sets up the current version of the tools to vers and makes sure that they're available in the dataDir.
func RemoveFakeTools ¶
RemoveFakeTools deletes the fake tools from the supplied storage.
func RemoveFakeToolsMetadata ¶
RemoveFakeToolsMetadata deletes the fake simplestreams tools metadata from the supplied storage.
func RemoveTools ¶
RemoveTools deletes all tools from the supplied storage.
func SignTestTools ¶
func UploadFakeTools ¶
UploadFakeTools puts fake tools into the supplied storage with a binary version matching jujuversion.Current; if jujuversion.Current's series is different to series.LatestLts(), matching fake tools will be uploaded for that series. This is useful for tests that are kinda casual about specifying their environment.
Types ¶
type BootstrapToolsTest ¶
type ToolsFixture ¶
type ToolsFixture struct { DefaultBaseURL string // UploadArches holds the architectures of tools to // upload in UploadFakeTools. If empty, it will default // to just arch.HostArch() UploadArches []string // contains filtered or unexported fields }
ToolsFixture is used as a fixture to stub out the default tools URL so we don't hit the real internet during tests.
func (*ToolsFixture) SetUpTest ¶
func (s *ToolsFixture) SetUpTest(c *gc.C)
func (*ToolsFixture) TearDownTest ¶
func (s *ToolsFixture) TearDownTest(c *gc.C)
func (*ToolsFixture) UploadFakeTools ¶
UploadFakeTools uploads fake tools of the architectures in s.UploadArches for each LTS release to the specified storage.
func (*ToolsFixture) UploadFakeToolsToDirectory ¶
func (s *ToolsFixture) UploadFakeToolsToDirectory(c *gc.C, dir, toolsDir, stream string)
UploadFakeToolsToDirectory uploads fake tools of the architectures in s.UploadArches for each LTS release to the specified directory.