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

     1  package httpd
     2  
     3  import (
     4  	"bufio"
     5  	"fmt"
     6  	"io"
     7  	"net/http"
     8  
     9  	"github.com/Cloud-Foundations/Dominator/fleetmanager/topology"
    10  	"github.com/Cloud-Foundations/Dominator/lib/html"
    11  )
    12  
    13  func (s *Server) getTopology() *topology.Topology {
    14  	s.mutex.RLock()
    15  	defer s.mutex.RUnlock()
    16  	return s._topology
    17  }
    18  
    19  func (s *Server) statusHandler(w http.ResponseWriter, req *http.Request) {
    20  	if req.URL.Path != "/" {
    21  		http.NotFound(w, req)
    22  		return
    23  	}
    24  	writer := bufio.NewWriter(w)
    25  	defer writer.Flush()
    26  	fmt.Fprintln(writer, "<title>Fleet Manager status page</title>")
    27  	fmt.Fprintln(writer, `<style>
    28                            table, th, td {
    29                            border-collapse: collapse;
    30                            }
    31                            </style>`)
    32  	fmt.Fprintln(writer, "<body>")
    33  	fmt.Fprintln(writer, "<center>")
    34  	fmt.Fprintln(writer, "<h1>Fleet Manager status page</h1>")
    35  	fmt.Fprintln(writer, "</center>")
    36  	html.WriteHeaderWithRequest(writer, req)
    37  	fmt.Fprintln(writer, "<h3>")
    38  	s.writeDashboard(writer)
    39  	for _, htmlWriter := range s.htmlWriters {
    40  		htmlWriter.WriteHtml(writer)
    41  	}
    42  	fmt.Fprintln(writer, "</h3>")
    43  	fmt.Fprintln(writer, "<hr>")
    44  	html.WriteFooter(writer)
    45  	fmt.Fprintln(writer, "</body>")
    46  }
    47  
    48  func (s *Server) writeDashboard(writer io.Writer) {
    49  }