mirror of
https://github.com/genuinetools/reg.git
synced 2024-07-04 12:34:17 -04:00
Add configurable timout for HTTP requests
So that requests taking more than one minute does not timeout.
This commit is contained in:
parent
2039eea38b
commit
2802ba9eb9
|
@ -27,7 +27,7 @@ func Log(format string, args ...interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// New creates a new Clair struct with the given URL and credentials.
|
// New creates a new Clair struct with the given URL and credentials.
|
||||||
func New(url string, debug bool) (*Clair, error) {
|
func New(url string, debug bool, timeout time.Duration) (*Clair, error) {
|
||||||
transport := http.DefaultTransport
|
transport := http.DefaultTransport
|
||||||
|
|
||||||
errorTransport := &ErrorTransport{
|
errorTransport := &ErrorTransport{
|
||||||
|
@ -43,7 +43,7 @@ func New(url string, debug bool) (*Clair, error) {
|
||||||
registry := &Clair{
|
registry := &Clair{
|
||||||
URL: url,
|
URL: url,
|
||||||
Client: &http.Client{
|
Client: &http.Client{
|
||||||
Timeout: time.Minute,
|
Timeout: timeout,
|
||||||
Transport: errorTransport,
|
Transport: errorTransport,
|
||||||
},
|
},
|
||||||
Logf: logf,
|
Logf: logf,
|
||||||
|
|
14
main.go
14
main.go
|
@ -18,6 +18,7 @@ import (
|
||||||
"github.com/jessfraz/reg/version"
|
"github.com/jessfraz/reg/version"
|
||||||
digest "github.com/opencontainers/go-digest"
|
digest "github.com/opencontainers/go-digest"
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -99,6 +100,11 @@ func main() {
|
||||||
Name: "registry, r",
|
Name: "registry, r",
|
||||||
Usage: "URL to the private registry (ex. r.j3ss.co)",
|
Usage: "URL to the private registry (ex. r.j3ss.co)",
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "timeout",
|
||||||
|
Value: "1m",
|
||||||
|
Usage: "timeout for HTTP requests",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
app.Commands = []cli.Command{
|
app.Commands = []cli.Command{
|
||||||
{
|
{
|
||||||
|
@ -285,8 +291,14 @@ func main() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parse the timeout
|
||||||
|
timeout, err := time.ParseDuration(c.GlobalString("timeout"))
|
||||||
|
if err != nil {
|
||||||
|
logrus.Fatalf("parsing %s as duration failed: %v", c.GlobalString("timeout"), err)
|
||||||
|
}
|
||||||
|
|
||||||
// initialize clair
|
// initialize clair
|
||||||
cr, err := clair.New(c.String("clair"), c.GlobalBool("debug"))
|
cr, err := clair.New(c.String("clair"), c.GlobalBool("debug"), timeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,6 +96,7 @@ func main() {
|
||||||
Name: "clair",
|
Name: "clair",
|
||||||
Usage: "url to clair instance",
|
Usage: "url to clair instance",
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
app.Action = func(c *cli.Context) error {
|
app.Action = func(c *cli.Context) error {
|
||||||
auth, err := utils.GetAuthConfig(c)
|
auth, err := utils.GetAuthConfig(c)
|
||||||
|
@ -116,9 +117,15 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parse the timeout
|
||||||
|
timeout, err := time.ParseDuration(c.GlobalString("timeout"))
|
||||||
|
if err != nil {
|
||||||
|
logrus.Fatalf("parsing %s as duration failed: %v", c.GlobalString("timeout"), err)
|
||||||
|
}
|
||||||
|
|
||||||
// create a clair instance if needed
|
// create a clair instance if needed
|
||||||
if c.GlobalString("clair") != "" {
|
if c.GlobalString("clair") != "" {
|
||||||
cl, err = clair.New(c.GlobalString("clair"), c.GlobalBool("debug"))
|
cl, err = clair.New(c.GlobalString("clair"), c.GlobalBool("debug"), timeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Warnf("creation of clair failed: %v", err)
|
logrus.Warnf("creation of clair failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue