// serviceSetSettingsYAML updates the settings for the given service, // taking the configuration from a YAML string. func serviceSetSettingsYAML(service *state.Service, settings string) error { ch, _, err := service.Charm() if err != nil { return err } changes, err := ch.Config().ParseSettingsYAML([]byte(settings), service.Name()) if err != nil { return err } return service.UpdateConfigSettings(changes) }
// serviceSetSettingsStrings updates the settings for the given service, // taking the configuration from a map of strings. func serviceSetSettingsStrings(service *state.Service, settings map[string]string) error { ch, _, err := service.Charm() if err != nil { return err } // Parse config in a compatible way (see function comment). changes, err := parseSettingsCompatible(ch, settings) if err != nil { return err } return service.UpdateConfigSettings(changes) }
// newServiceSetSettingsStringsForClientAPI updates the settings for the given // service, taking the configuration from a map of strings. // // TODO(Nate): replace serviceSetSettingsStrings with this onces the GUI no // longer expects to be able to unset values by sending an empty string. func newServiceSetSettingsStringsForClientAPI(service *state.Service, settings map[string]string) error { ch, _, err := service.Charm() if err != nil { return err } // Validate the settings. changes, err := ch.Config().ParseSettingsStrings(settings) if err != nil { return err } return service.UpdateConfigSettings(changes) }