本文整理匯總了Golang中github.com/juju/juju/state.Service.Charm方法的典型用法代碼示例。如果您正苦於以下問題:Golang Service.Charm方法的具體用法?Golang Service.Charm怎麽用?Golang Service.Charm使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/juju/juju/state.Service
的用法示例。
在下文中一共展示了Service.Charm方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: serviceSetSettingsYAML
// serviceSetSettingsYAML updates the settings for the given service,
// taking the configuration from a YAML string.
func serviceSetSettingsYAML(service *state.Service, settings string) error {
b := []byte(settings)
var all map[string]interface{}
if err := goyaml.Unmarshal(b, &all); err != nil {
return errors.Annotate(err, "parsing settings data")
}
// The file is already in the right format.
if _, ok := all[service.Name()]; !ok {
changes, err := settingsFromGetYaml(all)
if err != nil {
return errors.Annotate(err, "processing YAML generated by get")
}
return errors.Annotate(service.UpdateConfigSettings(changes), "updating settings with service YAML")
}
ch, _, err := service.Charm()
if err != nil {
return errors.Annotate(err, "obtaining charm for this service")
}
changes, err := ch.Config().ParseSettingsYAML(b, service.Name())
if err != nil {
return errors.Annotate(err, "creating config from YAML")
}
return errors.Annotate(service.UpdateConfigSettings(changes), "updating settings")
}
示例2: assertUpgraded
func (s *BaseUpgradeCharmSuite) assertUpgraded(c *gc.C, riak *state.Service, revision int, forced bool) *charm.URL {
err := riak.Refresh()
c.Assert(err, jc.ErrorIsNil)
ch, force, err := riak.Charm()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ch.Revision(), gc.Equals, revision)
c.Assert(force, gc.Equals, forced)
return ch.URL()
}
示例3: serviceSetSettingsYAML
// 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)
}
示例4: ServiceSetSettingsStrings
// 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 errors.Trace(err)
}
// Parse config in a compatible way (see function comment).
changes, err := parseSettingsCompatible(ch, settings)
if err != nil {
return errors.Trace(err)
}
return service.UpdateConfigSettings(changes)
}
示例5: newServiceSetSettingsStringsForClientAPI
// 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)
}