本文整理匯總了Golang中launchpad/net/juju-core/state.Service.IsPrincipal方法的典型用法代碼示例。如果您正苦於以下問題:Golang Service.IsPrincipal方法的具體用法?Golang Service.IsPrincipal怎麽用?Golang Service.IsPrincipal使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類launchpad/net/juju-core/state.Service
的用法示例。
在下文中一共展示了Service.IsPrincipal方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: processRelations
func (*statusContext) processRelations(service *state.Service) (related map[string][]string, subord []string, err error) {
// TODO(mue) This way the same relation is read twice (for each service).
// Maybe add Relations() to state, read them only once and pass them to each
// call of this function.
relations, err := service.Relations()
if err != nil {
return nil, nil, err
}
var subordSet set.Strings
related = make(map[string][]string)
for _, relation := range relations {
ep, err := relation.Endpoint(service.Name())
if err != nil {
return nil, nil, err
}
relationName := ep.Relation.Name
eps, err := relation.RelatedEndpoints(service.Name())
if err != nil {
return nil, nil, err
}
for _, ep := range eps {
if ep.Scope == charm.ScopeContainer && !service.IsPrincipal() {
subordSet.Add(ep.ServiceName)
}
related[relationName] = append(related[relationName], ep.ServiceName)
}
}
for relationName, serviceNames := range related {
sn := set.NewStrings(serviceNames...)
related[relationName] = sn.SortedValues()
}
return related, subordSet.SortedValues(), nil
}
示例2: processService
func (context *statusContext) processService(service *state.Service) (status serviceStatus) {
url, _ := service.CharmURL()
status.Charm = url.String()
status.Exposed = service.IsExposed()
status.Life = processLife(service)
var err error
status.Relations, status.SubordinateTo, err = context.processRelations(service)
if err != nil {
status.Err = err
return
}
if service.IsPrincipal() {
status.Units = context.processUnits(context.units[service.Name()])
}
return status
}