// findBootstrapTools returns a tools.List containing only those tools with // which it would be reasonable to launch an environment's first machine, // given the supplied constraints. If a specific agent version is not requested, // all tools matching the current major.minor version are chosen. func findBootstrapTools(env environs.Environ, vers *version.Number, arch, series *string) (list coretools.List, err error) { // Construct a tools filter. cliVersion := jujuversion.Current var filter coretools.Filter if arch != nil { filter.Arch = *arch } if series != nil { filter.Series = *series } if vers != nil { filter.Number = *vers } stream := envtools.PreferredStream(vers, env.Config().Development(), env.Config().AgentStream()) return findTools(env, cliVersion.Major, cliVersion.Minor, stream, filter) }