// serviceSetCharm sets the charm for the given service. func serviceSetCharm(state *state.State, service *state.Service, url string, force bool) error { curl, err := charm.ParseURL(url) if err != nil { return err } if curl.Schema != "cs" { return fmt.Errorf(`charm url has unsupported schema %q`, curl.Schema) } if curl.Revision < 0 { return fmt.Errorf("charm url must include revision") } conn, err := juju.NewConnFromState(state) if err != nil { return err } ch, err := conn.PutCharm(curl, CharmStore, false) if err != nil { return err } return service.SetCharm(ch, force) }