本文整理汇总了Golang中github.com/juju/juju/state.Service.CharmURL方法的典型用法代码示例。如果您正苦于以下问题:Golang Service.CharmURL方法的具体用法?Golang Service.CharmURL怎么用?Golang Service.CharmURL使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/juju/state.Service
的用法示例。
在下文中一共展示了Service.CharmURL方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: processService
func (context *statusContext) processService(service *state.Service) (status params.ServiceStatus) {
serviceCharmURL, _ := service.CharmURL()
status.Charm = serviceCharmURL.String()
status.Exposed = service.IsExposed()
status.Life = processLife(service)
latestCharm, ok := context.latestCharms[*serviceCharmURL.WithRevision(-1)]
if ok && latestCharm != serviceCharmURL.String() {
status.CanUpgradeTo = latestCharm
}
var err error
status.Relations, status.SubordinateTo, err = context.processServiceRelations(service)
if err != nil {
status.Err = err
return
}
networks, err := service.Networks()
if err != nil {
status.Err = err
return
}
var cons constraints.Value
if service.IsPrincipal() {
// Only principals can have constraints.
cons, err = service.Constraints()
if err != nil {
status.Err = err
return
}
}
// TODO(dimitern): Drop support for this in a follow-up.
if len(networks) > 0 || cons.HaveNetworks() {
// Only the explicitly requested networks (using "juju deploy
// <svc> --networks=...") will be enabled, and altough when
// specified, networks constraints will be used for instance
// selection, they won't be actually enabled.
status.Networks = params.NetworksSpecification{
Enabled: networks,
Disabled: append(cons.IncludeNetworks(), cons.ExcludeNetworks()...),
}
}
if service.IsPrincipal() {
status.Units = context.processUnits(context.units[service.Name()], serviceCharmURL.String())
serviceStatus, err := service.Status()
if err != nil {
status.Err = err
return
}
status.Status.Status = params.Status(serviceStatus.Status)
status.Status.Info = serviceStatus.Message
status.Status.Data = serviceStatus.Data
status.Status.Since = serviceStatus.Since
status.MeterStatuses = context.processUnitMeterStatuses(context.units[service.Name()])
}
return status
}
示例2: processService
func (context *statusContext) processService(service *state.Service) params.ServiceStatus {
serviceCharmURL, _ := service.CharmURL()
var processedStatus = params.ServiceStatus{
Charm: serviceCharmURL.String(),
Exposed: service.IsExposed(),
Life: processLife(service),
}
if latestCharm, ok := context.latestCharms[*serviceCharmURL.WithRevision(-1)]; ok && latestCharm != nil {
if latestCharm.Revision() > serviceCharmURL.Revision {
processedStatus.CanUpgradeTo = latestCharm.String()
}
}
var err error
processedStatus.Relations, processedStatus.SubordinateTo, err = context.processServiceRelations(service)
if err != nil {
processedStatus.Err = err
return processedStatus
}
if service.IsPrincipal() {
processedStatus.Units = context.processUnits(context.units[service.Name()], serviceCharmURL.String())
serviceStatus, err := service.Status()
if err != nil {
processedStatus.Err = err
return processedStatus
}
processedStatus.Status.Status = serviceStatus.Status
processedStatus.Status.Info = serviceStatus.Message
processedStatus.Status.Data = serviceStatus.Data
processedStatus.Status.Since = serviceStatus.Since
processedStatus.MeterStatuses = context.processUnitMeterStatuses(context.units[service.Name()])
}
return processedStatus
}
示例3: assertCharm
func (s *DeployLocalSuite) assertCharm(c *gc.C, service *state.Service, expect *charm.URL) {
curl, force := service.CharmURL()
c.Assert(curl, gc.DeepEquals, expect)
c.Assert(force, gc.Equals, false)
}