cmd/swarm/swarm-smoke: timeout flag

This commit is contained in:
Anton Evangelatov 2018-12-03 15:11:31 +01:00
parent 3ac633ba84
commit eac3fdb218
2 changed files with 24 additions and 2 deletions

View file

@ -35,6 +35,7 @@ var (
from int
to int
verbosity int
timeout int
)
func main() {
@ -91,6 +92,12 @@ func main() {
Usage: "verbosity",
Destination: &verbosity,
},
cli.IntFlag{
Name: "timeout",
Value: 120,
Usage: "timeout in seconds after which kill the process",
Destination: &timeout,
},
}
app.Commands = []cli.Command{

View file

@ -40,11 +40,11 @@ import (
func generateEndpoints(scheme string, cluster string, app string, from int, to int) {
if cluster == "prod" {
for port := from; port <= to; port++ {
for port := from; port < to; port++ {
endpoints = append(endpoints, fmt.Sprintf("%s://%v.swarm-gateways.net", scheme, port))
}
} else {
for port := from; port <= to; port++ {
for port := from; port < to; port++ {
endpoints = append(endpoints, fmt.Sprintf("%s://%s-%v-%s.stg.swarm-gateways.net", scheme, app, port, cluster))
}
}
@ -58,6 +58,21 @@ func cliUploadAndSync(c *cli.Context) error {
log.PrintOrigins(true)
log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(verbosity), log.StreamHandler(os.Stdout, log.TerminalFormat(true))))
errc := make(chan error)
go func() {
errc <- uploadAndSync(c)
}()
select {
case err := <-errc:
return err
case <-time.After(time.Duration(timeout) * time.Second):
return fmt.Errorf("timeout after %v sec", timeout)
}
}
func uploadAndSync(c *cli.Context) error {
defer func(now time.Time) { log.Info("total time", "time", time.Since(now), "kb", filesize) }(time.Now())
generateEndpoints(scheme, cluster, appName, from, to)