本文整理汇总了Golang中github.com/flynn/flynn/bootstrap.Config.MinHosts方法的典型用法代码示例。如果您正苦于以下问题:Golang Config.MinHosts方法的具体用法?Golang Config.MinHosts怎么用?Golang Config.MinHosts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/flynn/flynn/bootstrap.Config
的用法示例。
在下文中一共展示了Config.MinHosts方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: runBootstrap
func runBootstrap(args *docopt.Args) error {
log.SetFlags(log.Lmicroseconds)
logf := textLogger
if args.Bool["--json"] {
logf = jsonLogger
}
var cfg bootstrap.Config
manifestFile := args.String["<manifest>"]
if manifestFile == "" {
manifestFile = "/etc/flynn/bootstrap-manifest.json"
}
var steps []string
if s := args.String["--steps"]; s != "" {
steps = strings.Split(s, ",")
}
var err error
manifest, err = readBootstrapManifest(manifestFile)
if err != nil {
return fmt.Errorf("Error reading manifest: %s", err)
}
if n := args.String["--min-hosts"]; n != "" {
if cfg.MinHosts, err = strconv.Atoi(n); err != nil || cfg.MinHosts < 1 {
return fmt.Errorf("invalid --min-hosts value")
}
}
cfg.Timeout, err = strconv.Atoi(args.String["--timeout"])
if err != nil {
return fmt.Errorf("invalid --timeout value")
}
if ipList := args.String["--peer-ips"]; ipList != "" {
cfg.IPs = strings.Split(ipList, ",")
if cfg.MinHosts == 0 {
cfg.MinHosts = len(cfg.IPs)
}
}
if cfg.MinHosts == 0 {
cfg.MinHosts = 1
}
cfg.Singleton = cfg.MinHosts == 1
if s := os.Getenv("SINGLETON"); s != "" {
cfg.Singleton = s == "true"
}
ch := make(chan *bootstrap.StepInfo)
done := make(chan struct{})
var last error
go func() {
for si := range ch {
logf(si)
last = si.Err
}
close(done)
}()
cfg.ClusterURL = args.String["--discovery"]
if bf := args.String["--from-backup"]; bf != "" {
err = runBootstrapBackup(manifest, bf, ch, cfg)
} else {
err = bootstrap.Run(manifest, ch, cfg, steps)
}
<-done
if err != nil && last != nil && err.Error() == last.Error() {
return ErrAlreadyLogged{err}
}
return err
}