本文整理汇总了Golang中github.com/juju/juju/state.State.AllServices方法的典型用法代码示例。如果您正苦于以下问题:Golang State.AllServices方法的具体用法?Golang State.AllServices怎么用?Golang State.AllServices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/juju/state.State
的用法示例。
在下文中一共展示了State.AllServices方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: retrieveLatestCharmInfo
// retrieveLatestCharmInfo looks up the charm store to return the charm URLs for the
// latest revision of the deployed charms.
func retrieveLatestCharmInfo(st *state.State) ([]latestCharmInfo, error) {
// First get the uuid for the environment to use when querying the charm store.
env, err := st.Model()
if err != nil {
return nil, err
}
services, err := st.AllServices()
if err != nil {
return nil, err
}
client, err := NewCharmStoreClient(st)
if err != nil {
return nil, errors.Trace(err)
}
var charms []charmstore.CharmID
var resultsIndexedServices []*state.Service
for _, service := range services {
curl, _ := service.CharmURL()
if curl.Schema == "local" {
// Version checking for charms from local repositories is not
// currently supported, since we don't yet support passing in
// a path to the local repo. This may change if the need arises.
continue
}
cid := charmstore.CharmID{
URL: curl,
Channel: service.Channel(),
}
charms = append(charms, cid)
resultsIndexedServices = append(resultsIndexedServices, service)
}
results, err := charmstore.LatestCharmInfo(client, charms, env.UUID())
if err != nil {
return nil, err
}
var latest []latestCharmInfo
for i, result := range results {
if result.Error != nil {
logger.Errorf("retrieving charm info for %s: %v", charms[i].URL, result.Error)
continue
}
service := resultsIndexedServices[i]
latest = append(latest, latestCharmInfo{
CharmInfo: result.CharmInfo,
service: service,
})
}
return latest, nil
}
示例2: fetchAllDeployedCharms
// fetchAllDeployedCharms returns a map from service name to service
// and a map from service name to unit name to unit.
func fetchAllDeployedCharms(st *state.State) (map[string]*charm.URL, error) {
deployedCharms := make(map[string]*charm.URL)
services, err := st.AllServices()
if err != nil {
return nil, err
}
for _, s := range services {
url, _ := s.CharmURL()
// Record the basic charm information so it can be bulk processed later to
// get the available revision numbers from the repo.
baseCharm := url.WithRevision(-1)
deployedCharms[baseCharm.String()] = baseCharm
}
return deployedCharms, nil
}