github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/dom/herd/status.go (about)

     1  package herd
     2  
     3  import (
     4  	"bufio"
     5  	"fmt"
     6  	"net/http"
     7  
     8  	"github.com/Cloud-Foundations/Dominator/lib/html"
     9  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
    10  )
    11  
    12  func (herd *Herd) statusHandler(w http.ResponseWriter, req *http.Request) {
    13  	if req.URL.Path != "/" {
    14  		http.NotFound(w, req)
    15  		return
    16  	}
    17  	writer := bufio.NewWriter(w)
    18  	defer writer.Flush()
    19  	fmt.Fprintln(writer, "<title>Dominator status page</title>")
    20  	fmt.Fprintln(writer, "<body>")
    21  	fmt.Fprintln(writer, "<center>")
    22  	fmt.Fprintln(writer, "<h1><b>Dominator</b> status page</h1>")
    23  	if !srpc.CheckTlsRequired() {
    24  		fmt.Fprintln(writer,
    25  			`<h1><font color="red">Running in insecure mode. You can get pwned!!!</font></h1>`)
    26  	}
    27  	fmt.Fprintln(writer, "</center>")
    28  	html.WriteHeaderWithRequestNoGC(writer, req)
    29  	fmt.Fprintln(writer, "<h3>")
    30  	herd.writeHtml(writer)
    31  	for _, htmlWriter := range herd.htmlWriters {
    32  		htmlWriter.WriteHtml(writer)
    33  	}
    34  	fmt.Fprintln(writer, "</h3>")
    35  	fmt.Fprintln(writer, "<hr>")
    36  	html.WriteFooter(writer)
    37  	fmt.Fprintln(writer, "</body>")
    38  }