本文整理汇总了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)
}