本文整理汇总了Golang中github.com/juju/juju/environs/bootstrap.FindAvailableTools函数的典型用法代码示例。如果您正苦于以下问题:Golang FindAvailableTools函数的具体用法?Golang FindAvailableTools怎么用?Golang FindAvailableTools使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FindAvailableTools函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestFindAvailableToolsCompleteNoValidate
func (s *toolsSuite) TestFindAvailableToolsCompleteNoValidate(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string {
return "amd64"
})
s.PatchValue(&version.Current.Arch, "amd64")
var allTools tools.List
for _, series := range version.SupportedSeries() {
binary := version.Current
binary.Series = series
allTools = append(allTools, &tools.Tools{
Version: binary,
URL: "http://testing.invalid/tools.tar.gz",
})
}
s.PatchValue(bootstrap.FindTools, func(_ environs.ConfigGetter, major, minor int, f tools.Filter, retry bool) (tools.List, error) {
return allTools, nil
})
env := newEnviron("foo", useDefaultKeys, nil)
availableTools, err := bootstrap.FindAvailableTools(env, nil, false)
c.Assert(err, gc.IsNil)
c.Assert(availableTools, gc.HasLen, len(allTools))
c.Assert(env.supportedArchitecturesCount, gc.Equals, 0)
}
示例2: TestFindAvailableToolsCompleteNoValidate
func (s *toolsSuite) TestFindAvailableToolsCompleteNoValidate(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
var allTools tools.List
for _, series := range series.SupportedSeries() {
binary := version.Binary{
Number: version.Current,
Series: series,
Arch: arch.HostArch(),
}
allTools = append(allTools, &tools.Tools{
Version: binary,
URL: "http://testing.invalid/tools.tar.gz",
})
}
s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) {
return allTools, nil
})
env := newEnviron("foo", useDefaultKeys, nil)
availableTools, err := bootstrap.FindAvailableTools(env, nil, nil, nil, false)
c.Assert(err, jc.ErrorIsNil)
c.Assert(availableTools, gc.HasLen, len(allTools))
c.Assert(env.supportedArchitecturesCount, gc.Equals, 0)
}
示例3: TestFindAvailableToolsAutoUpload
func (s *toolsSuite) TestFindAvailableToolsAutoUpload(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string {
return "amd64"
})
s.PatchValue(&version.Current.Arch, "amd64")
trustyTools := &tools.Tools{
Version: version.MustParseBinary("1.2.3-trusty-amd64"),
URL: "http://testing.invalid/tools.tar.gz",
}
s.PatchValue(bootstrap.FindTools, func(_ environs.ConfigGetter, major, minor int, f tools.Filter, retry bool) (tools.List, error) {
return tools.List{trustyTools}, nil
})
env := newEnviron("foo", useDefaultKeys, nil)
availableTools, err := bootstrap.FindAvailableTools(env, nil, false)
c.Assert(err, gc.IsNil)
c.Assert(len(availableTools), jc.GreaterThan, 1)
c.Assert(env.supportedArchitecturesCount, gc.Equals, 1)
var trustyToolsFound int
expectedVersion := version.Current.Number
expectedVersion.Build++
for _, tools := range availableTools {
if tools == trustyTools {
trustyToolsFound++
} else {
c.Assert(tools.Version.Number, gc.Equals, expectedVersion)
c.Assert(tools.Version.Series, gc.Not(gc.Equals), "trusty")
c.Assert(tools.URL, gc.Equals, "")
}
}
c.Assert(trustyToolsFound, gc.Equals, 1)
}
示例4: TestFindAvailableToolsSpecificVersion
func (s *toolsSuite) TestFindAvailableToolsSpecificVersion(c *gc.C) {
currentVersion := version.Binary{
Number: version.Current,
Arch: arch.HostArch(),
Series: series.HostSeries(),
}
currentVersion.Major = 2
currentVersion.Minor = 3
s.PatchValue(&version.Current, currentVersion.Number)
var findToolsCalled int
s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) {
c.Assert(f.Number.Major, gc.Equals, 10)
c.Assert(f.Number.Minor, gc.Equals, 11)
c.Assert(f.Number.Patch, gc.Equals, 12)
c.Assert(stream, gc.Equals, "released")
findToolsCalled++
return []*tools.Tools{
&tools.Tools{
Version: currentVersion,
URL: "http://testing.invalid/tools.tar.gz",
},
}, nil
})
env := newEnviron("foo", useDefaultKeys, nil)
toolsVersion := version.MustParse("10.11.12")
result, err := bootstrap.FindAvailableTools(env, &toolsVersion, nil, nil, false)
c.Assert(err, jc.ErrorIsNil)
c.Assert(findToolsCalled, gc.Equals, 1)
c.Assert(result, jc.DeepEquals, tools.List{
&tools.Tools{
Version: currentVersion,
URL: "http://testing.invalid/tools.tar.gz",
},
})
}
示例5: TestFindAvailableToolsError
func (s *toolsSuite) TestFindAvailableToolsError(c *gc.C) {
s.PatchValue(bootstrap.FindTools, func(_ environs.ConfigGetter, major, minor int, f tools.Filter, retry bool) (tools.List, error) {
return nil, errors.New("splat")
})
env := newEnviron("foo", useDefaultKeys, nil)
_, err := bootstrap.FindAvailableTools(env, nil, false)
c.Assert(err, gc.ErrorMatches, "splat")
}
示例6: TestFindAvailableToolsNoUpload
func (s *toolsSuite) TestFindAvailableToolsNoUpload(c *gc.C) {
s.PatchValue(bootstrap.FindTools, func(_ environs.ConfigGetter, major, minor int, f tools.Filter, retry bool) (tools.List, error) {
return nil, errors.NotFoundf("tools")
})
env := newEnviron("foo", useDefaultKeys, map[string]interface{}{
"agent-version": "1.17.1",
})
_, err := bootstrap.FindAvailableTools(env, nil, false)
c.Assert(err, jc.Satisfies, errors.IsNotFound)
}
示例7: TestFindAvailableToolsForceUploadInvalidArch
func (s *toolsSuite) TestFindAvailableToolsForceUploadInvalidArch(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string {
return arch.I386
})
var findToolsCalled int
s.PatchValue(bootstrap.FindTools, func(_ environs.ConfigGetter, major, minor int, f tools.Filter, retry bool) (tools.List, error) {
findToolsCalled++
return nil, errors.NotFoundf("tools")
})
env := newEnviron("foo", useDefaultKeys, nil)
_, err := bootstrap.FindAvailableTools(env, nil, true)
c.Assert(err, gc.ErrorMatches, `environment "foo" of type dummy does not support instances running on "i386"`)
c.Assert(findToolsCalled, gc.Equals, 0)
}
示例8: TestFindAvailableToolsForceUpload
func (s *toolsSuite) TestFindAvailableToolsForceUpload(c *gc.C) {
s.PatchValue(&arch.HostArch, func() string { return arch.AMD64 })
var findToolsCalled int
s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) {
findToolsCalled++
return nil, errors.NotFoundf("tools")
})
env := newEnviron("foo", useDefaultKeys, nil)
uploadedTools, err := bootstrap.FindAvailableTools(env, nil, nil, nil, true)
c.Assert(err, jc.ErrorIsNil)
c.Assert(uploadedTools, gc.Not(gc.HasLen), 0)
c.Assert(findToolsCalled, gc.Equals, 0)
expectedVersion := version.Current
expectedVersion.Build++
for _, tools := range uploadedTools {
c.Assert(tools.Version.Number, gc.Equals, expectedVersion)
c.Assert(tools.URL, gc.Equals, "")
}
}