1
0
Fork 0

Add healthcheck command

This commit is contained in:
Emile Vauge 2017-08-21 23:18:02 +02:00 committed by Traefiker
parent eda679776e
commit 396449c07f
3 changed files with 65 additions and 5 deletions

View file

@ -136,20 +136,27 @@ func (provider *WebProvider) Provide(configurationChan chan<- types.ConfigMessag
safe.Go(func() {
var err error
var negroni = negroni.New()
var negroniInstance = negroni.New()
if provider.Auth != nil {
authMiddleware, err := middlewares.NewAuthenticator(provider.Auth)
if err != nil {
log.Fatal("Error creating Auth: ", err)
}
negroni.Use(authMiddleware)
authMiddlewareWrapper := negroni.HandlerFunc(func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
if r.URL.Path == "/ping" {
next.ServeHTTP(w, r)
} else {
authMiddleware.ServeHTTP(w, r, next)
}
})
negroniInstance.Use(authMiddlewareWrapper)
}
negroni.UseHandler(systemRouter)
negroniInstance.UseHandler(systemRouter)
if len(provider.CertFile) > 0 && len(provider.KeyFile) > 0 {
err = http.ListenAndServeTLS(provider.Address, provider.CertFile, provider.KeyFile, negroni)
err = http.ListenAndServeTLS(provider.Address, provider.CertFile, provider.KeyFile, negroniInstance)
} else {
err = http.ListenAndServe(provider.Address, negroni)
err = http.ListenAndServe(provider.Address, negroniInstance)
}
if err != nil {