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))
|
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
|
var flusher http.Flusher
|
||||||
if fl, ok := w.(http.Flusher); ok {
|
if fl, ok := w.(http.Flusher); ok {
|
||||||
flusher = fl
|
flusher = fl
|
||||||
}
|
}
|
||||||
|
if flusher != nil {
|
||||||
|
flusher.Flush()
|
||||||
|
}
|
||||||
|
|
||||||
stop := false
|
stop := false
|
||||||
flushstop := false
|
flushstop := false
|
||||||
for {
|
for {
|
||||||
|
|
|
@ -451,8 +451,18 @@ func (h *LogsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
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("Cache-Control", "no-cache")
|
||||||
w.Header().Set("Connection", "keep-alive")
|
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()
|
defer resp.Body.Close()
|
||||||
if err := sendLogs(w, resp.Body); err != nil {
|
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
|
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
|
return sendLogs(w, req.Body), false
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendLogs(w http.ResponseWriter, r io.Reader) error {
|
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)
|
buf := make([]byte, 406)
|
||||||
|
|
||||||
var flusher http.Flusher
|
var flusher http.Flusher
|
||||||
|
|
Loading…
Reference in New Issue