本文整理汇总了Golang中github.com/litl/galaxy/config.Store.ListHosts方法的典型用法代码示例。如果您正苦于以下问题:Golang Store.ListHosts方法的具体用法?Golang Store.ListHosts怎么用?Golang Store.ListHosts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/litl/galaxy/config.Store
的用法示例。
在下文中一共展示了Store.ListHosts方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: HostsList
func HostsList(configStore *config.Store, env, pool string) error {
envs := []string{env}
if env == "" {
var err error
envs, err = configStore.ListEnvs()
if err != nil {
return err
}
}
columns := []string{"ENV | POOL | HOST IP "}
for _, env := range envs {
var err error
pools := []string{pool}
if pool == "" {
pools, err = configStore.ListPools(env)
if err != nil {
return err
}
}
for _, pool := range pools {
hosts, err := configStore.ListHosts(env, pool)
if err != nil {
return err
}
if len(hosts) == 0 {
columns = append(columns, strings.Join([]string{
env,
pool,
"",
}, " | "))
continue
}
for _, p := range hosts {
columns = append(columns, strings.Join([]string{
env,
pool,
p.HostIP,
}, " | "))
}
}
}
output, _ := columnize.SimpleFormat(columns)
log.Println(output)
return nil
}
示例2: Balanced
// Balanced returns the number of instances that should be run on the host
// according to the desired state for the app in the given env and pool. The
// number returned for the host represent an approximately equal distribution
// across all hosts.
func Balanced(configStore *config.Store, hostId, app, env, pool string) (int, error) {
hosts, err := configStore.ListHosts(env, pool)
if err != nil {
return 0, err
}
cfg, err := configStore.GetApp(app, env)
if err != nil {
return 0, err
}
desired := cfg.GetProcesses(pool)
if desired == 0 {
return 0, nil
}
if desired == -1 {
return 1, nil
}
hostIds := []string{}
for _, h := range hosts {
hostIds = append(hostIds, h.HostIP)
}
sort.Strings(hostIds)
hostIdx := -1
for i, v := range hostIds {
if v == hostId {
hostIdx = i
break
}
}
if hostIdx < 0 {
return 0, nil
}
count := 0
for i := 0; i < desired; i++ {
if i%len(hosts) == hostIdx {
count = count + 1
}
}
return count, nil
}