Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2017-07-05 18:05:29 +0300
committerNick Thomas <nick@gitlab.com>2017-07-05 18:05:29 +0300
commite5b7395e079ce2286d49981589f926c7e8410acb (patch)
tree5288977e9f951efdc9b08a6d61f07fe2c80ab496
parent67c722e753e5490aebf27c16ce4305deec1372d1 (diff)
Add disabled-by-default status check endpoint
-rw-r--r--acceptance_test.go11
-rw-r--r--app.go6
-rw-r--r--app_config.go1
-rw-r--r--main.go2
4 files changed, 20 insertions, 0 deletions
diff --git a/acceptance_test.go b/acceptance_test.go
index 20784433..8adef2a6 100644
--- a/acceptance_test.go
+++ b/acceptance_test.go
@@ -196,3 +196,14 @@ func TestPrometheusMetricsCanBeScraped(t *testing.T) {
assert.Contains(t, string(body), "gitlab_pages_domains_served_total 7")
}
}
+
+func TestStatusPage(t *testing.T) {
+ skipUnlessEnabled(t)
+ teardown := RunPagesProcess(t, *pagesBinary, listeners, "", "-redirect-http=false", "-pages-status=/@statuscheck")
+ defer teardown()
+
+ rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "@statuscheck")
+ assert.NoError(t, err)
+ defer rsp.Body.Close()
+ assert.Equal(t, http.StatusOK, rsp.StatusCode)
+}
diff --git a/app.go b/app.go
index 7e63a802..61b1176c 100644
--- a/app.go
+++ b/app.go
@@ -58,6 +58,12 @@ func (a *theApp) serveContent(ww http.ResponseWriter, r *http.Request, https boo
metrics.SessionsActive.Inc()
defer metrics.SessionsActive.Dec()
+ // short circuit content serving to check for a status page
+ if r.RequestURI == a.appConfig.StatusPath {
+ w.Write([]byte("success"))
+ return
+ }
+
// Add auto redirect
if !https && a.RedirectHTTP {
u := *r.URL
diff --git a/app_config.go b/app_config.go
index 18fd644c..e45dda24 100644
--- a/app_config.go
+++ b/app_config.go
@@ -13,6 +13,7 @@ type appConfig struct {
HTTP2 bool
RedirectHTTP bool
+ StatusPath string
DisableCrossOriginRequests bool
}
diff --git a/main.go b/main.go
index 66afb183..cacddb4f 100644
--- a/main.go
+++ b/main.go
@@ -20,6 +20,7 @@ var (
useHTTP2 = flag.Bool("use-http2", true, "Enable HTTP2 support")
pagesRoot = flag.String("pages-root", "shared/pages", "The directory where pages are stored")
pagesDomain = flag.String("pages-domain", "gitlab-example.com", "The domain to serve static pages")
+ pagesStatus = flag.String("pages-status", "", "The url path for a status page, e.g., /@status")
metricsAddress = flag.String("metrics-address", "", "The address to listen on for metrics requests")
daemonUID = flag.Uint("daemon-uid", 0, "Drop privileges to this user")
daemonGID = flag.Uint("daemon-gid", 0, "Drop privileges to this group")
@@ -34,6 +35,7 @@ func configFromFlags() appConfig {
config.RedirectHTTP = *redirectHTTP
config.HTTP2 = *useHTTP2
config.DisableCrossOriginRequests = *disableCrossOriginRequests
+ config.StatusPath = *pagesStatus
if *pagesRootCert != "" {
config.RootCertificate = readFile(*pagesRootCert)