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 }