Merge pull request #180 from sgotti/api_write_flush_logs_headers
*: write and flush header on log handlers
This commit is contained in:
commit
5fe3ceb60c
|
@ -137,10 +137,17 @@ func (h *logsHandler) readLogs(taskID string, setup bool, step int, logPath stri
|
|||
w.Header().Set("Content-Length", strconv.FormatInt(fi.Size(), 10))
|
||||
}
|
||||
|
||||
// write and flush the headers so the client will receive the response
|
||||
// header also if there're currently no lines to send
|
||||
w.WriteHeader(http.StatusOK)
|
||||
var flusher http.Flusher
|
||||
if fl, ok := w.(http.Flusher); ok {
|
||||
flusher = fl
|
||||
}
|
||||
if flusher != nil {
|
||||
flusher.Flush()
|
||||
}
|
||||
|
||||
stop := false
|
||||
flushstop := false
|
||||
for {
|
||||
|
|
|
@ -451,8 +451,18 @@ func (h *LogsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
// write and flush the headers so the client will receive the response
|
||||
// header also if there're currently no lines to send
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
w.Header().Set("Connection", "keep-alive")
|
||||
w.WriteHeader(http.StatusOK)
|
||||
var flusher http.Flusher
|
||||
if fl, ok := w.(http.Flusher); ok {
|
||||
flusher = fl
|
||||
}
|
||||
if flusher != nil {
|
||||
flusher.Flush()
|
||||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
if err := sendLogs(w, resp.Body); err != nil {
|
||||
|
|
|
@ -275,13 +275,23 @@ func (h *LogsHandler) readTaskLogs(ctx context.Context, runID, taskID string, se
|
|||
return errors.Errorf("received http status: %d", req.StatusCode), true
|
||||
}
|
||||
|
||||
// write and flush the headers so the client will receive the response
|
||||
// header also if there're currently no lines to send
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
w.Header().Set("Connection", "keep-alive")
|
||||
w.WriteHeader(http.StatusOK)
|
||||
var flusher http.Flusher
|
||||
if fl, ok := w.(http.Flusher); ok {
|
||||
flusher = fl
|
||||
}
|
||||
if flusher != nil {
|
||||
flusher.Flush()
|
||||
}
|
||||
|
||||
return sendLogs(w, req.Body), false
|
||||
}
|
||||
|
||||
func sendLogs(w http.ResponseWriter, r io.Reader) error {
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
w.Header().Set("Connection", "keep-alive")
|
||||
|
||||
buf := make([]byte, 406)
|
||||
|
||||
var flusher http.Flusher
|
||||
|
|
Loading…
Reference in New Issue