// ResolveCharm resolves the best available charm URLs with series, for charm // locations without a series specified. func ResolveCharms(st *state.State, args params.ResolveCharms) (params.ResolveCharmResults, error) { var results params.ResolveCharmResults envConfig, err := st.ModelConfig() if err != nil { return params.ResolveCharmResults{}, err } repo := config.SpecializeCharmRepo( NewCharmStoreRepo(csclient.New(csclient.Params{})), envConfig) for _, ref := range args.References { result := params.ResolveCharmResult{} curl, err := charm.ParseURL(ref) if err != nil { result.Error = err.Error() } else { curl, err := resolveCharm(curl, repo) if err != nil { result.Error = err.Error() } else { result.URL = curl.String() } } results.URLs = append(results.URLs, result) } return results, nil }
func (c *Client) ResolveCharms(args params.ResolveCharms) (params.ResolveCharmResults, error) { var results params.ResolveCharmResults envConfig, err := c.api.state.EnvironConfig() if err != nil { return params.ResolveCharmResults{}, err } repo := config.SpecializeCharmRepo(CharmStore, envConfig) for _, ref := range args.References { result := params.ResolveCharmResult{} curl, err := c.resolveCharm(&ref, repo) if err != nil { result.Error = err.Error() } else { result.URL = curl } results.URLs = append(results.URLs, result) } return results, nil }
// ResolveCharm resolves the best available charm URLs with series, for charm // locations without a series specified. func ResolveCharms(st *state.State, args params.ResolveCharms) (params.ResolveCharmResults, error) { var results params.ResolveCharmResults envConfig, err := st.EnvironConfig() if err != nil { return params.ResolveCharmResults{}, err } repo := config.SpecializeCharmRepo( NewCharmStore(charmrepo.NewCharmStoreParams{}), envConfig) for _, ref := range args.References { result := params.ResolveCharmResult{} curl, err := resolveCharm(&ref, repo) if err != nil { result.Error = err.Error() } else { result.URL = curl } results.URLs = append(results.URLs, result) } return results, nil }