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: jujuversion.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.FindPackagedTools(env, nil, nil, nil) c.Assert(err, jc.ErrorIsNil) c.Assert(availableTools, gc.HasLen, len(allTools)) c.Assert(env.constraintsValidatorCount, gc.Equals, 0) }
func (s *toolsSuite) TestFindAvailableToolsSpecificVersion(c *gc.C) { currentVersion := version.Binary{ Number: jujuversion.Current, Arch: arch.HostArch(), Series: series.HostSeries(), } currentVersion.Major = 2 currentVersion.Minor = 3 s.PatchValue(&jujuversion.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.FindPackagedTools(env, &toolsVersion, nil, nil) 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", }, }) }
func (s *toolsSuite) TestFindAvailableToolsError(c *gc.C) { s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) { return nil, errors.New("splat") }) env := newEnviron("foo", useDefaultKeys, nil) _, err := bootstrap.FindPackagedTools(env, nil, nil, nil) c.Assert(err, gc.ErrorMatches, "splat") }
func (s *toolsSuite) TestFindAvailableToolsNoUpload(c *gc.C) { s.PatchValue(bootstrap.FindTools, func(_ environs.Environ, major, minor int, stream string, f tools.Filter) (tools.List, error) { return nil, errors.NotFoundf("tools") }) env := newEnviron("foo", useDefaultKeys, map[string]interface{}{ "agent-version": "1.17.1", }) _, err := bootstrap.FindPackagedTools(env, nil, nil, nil) c.Assert(err, jc.Satisfies, errors.IsNotFound) }