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

     1  package httpd
     2  
     3  import (
     4  	"bufio"
     5  	"fmt"
     6  	"net/http"
     7  )
     8  
     9  func (s state) showCurrentBuildLogHandler(w http.ResponseWriter,
    10  	req *http.Request) {
    11  	writer := bufio.NewWriter(w)
    12  	defer writer.Flush()
    13  	streamName := req.URL.RawQuery
    14  	fmt.Fprintf(writer, "<title>build log for stream %s</title>\n", streamName)
    15  	fmt.Fprintln(writer, `<head><meta http-equiv="refresh" content="2"></head>`)
    16  	fmt.Fprintln(writer, "<body>")
    17  	fmt.Fprintln(writer, "<h3>")
    18  	buildLog, err := s.builder.GetCurrentBuildLog(streamName)
    19  	if err != nil {
    20  		fmt.Fprintln(writer, err)
    21  	} else if buildLog == nil {
    22  		fmt.Fprintln(writer, "No build log")
    23  	} else {
    24  		fmt.Fprintf(writer, "In progress build log for stream: %s\n",
    25  			streamName)
    26  		fmt.Fprintln(writer, "</h3>")
    27  		fmt.Fprintln(writer, "<pre>")
    28  		writer.Write(buildLog)
    29  		fmt.Fprintln(writer, "</pre>")
    30  	}
    31  	fmt.Fprintln(writer, `<a name="bottom"></a>`)
    32  	fmt.Fprintln(writer, "</body>")
    33  }
    34  
    35  func (s state) showLastBuildLogHandler(w http.ResponseWriter,
    36  	req *http.Request) {
    37  	writer := bufio.NewWriter(w)
    38  	defer writer.Flush()
    39  	streamName := req.URL.RawQuery
    40  	fmt.Fprintf(writer, "<title>build log for stream %s</title>\n", streamName)
    41  	fmt.Fprintln(writer, "<body>")
    42  	fmt.Fprintln(writer, "<h3>")
    43  	buildLog, err := s.builder.GetLatestBuildLog(streamName)
    44  	if err != nil {
    45  		fmt.Fprintln(writer, err)
    46  	} else if buildLog == nil {
    47  		fmt.Fprintln(writer, "No build log")
    48  	} else {
    49  		fmt.Fprintf(writer, "Lastest build log for stream: %s\n", streamName)
    50  		fmt.Fprintln(writer, "</h3>")
    51  		fmt.Fprintln(writer, "<pre>")
    52  		writer.Write(buildLog)
    53  		fmt.Fprintln(writer, "</pre>")
    54  	}
    55  	fmt.Fprintln(writer, "</body>")
    56  }