// ServiceSet implements the server side of Client.ServiceSet. Values set to an // empty string will be unset. // // (Deprecated) Use NewServiceSetForClientAPI instead, to preserve values set to // an empty string, and use ServiceUnset to unset values. func (c *Client) ServiceSet(p params.ServiceSet) error { if err := c.check.ChangeAllowed(); err != nil { return errors.Trace(err) } svc, err := c.api.state.Service(p.ServiceName) if err != nil { return err } return service.ServiceSetSettingsStrings(svc, p.Options) }
// ServiceUpdate updates the service attributes, including charm URL, // minimum number of units, settings and constraints. // All parameters in params.ServiceUpdate except the service name are optional. func (c *Client) ServiceUpdate(args params.ServiceUpdate) error { if !args.ForceCharmUrl { if err := c.check.ChangeAllowed(); err != nil { return errors.Trace(err) } } svc, err := c.api.state.Service(args.ServiceName) if err != nil { return err } // Set the charm for the given service. if args.CharmUrl != "" { if err = c.serviceSetCharm(svc, args.CharmUrl, args.ForceCharmUrl); err != nil { return err } } // Set the minimum number of units for the given service. if args.MinUnits != nil { if err = svc.SetMinUnits(*args.MinUnits); err != nil { return err } } // Set up service's settings. if args.SettingsYAML != "" { if err = serviceSetSettingsYAML(svc, args.SettingsYAML); err != nil { return err } } else if len(args.SettingsStrings) > 0 { if err = service.ServiceSetSettingsStrings(svc, args.SettingsStrings); err != nil { return err } } // Update service's constraints. if args.Constraints != nil { return svc.SetConstraints(*args.Constraints) } return nil }