audit: fill in stage

Kubernetes-commit: 1e94185f4425551f1c81ba7bbdbae110bc317abd
This commit is contained in:
Dr. Stefan Schimanski 2017-05-24 10:23:18 +02:00 committed by Kubernetes Publisher
parent 8b776edc46
commit 636c532e31
1 changed files with 9 additions and 7 deletions

View File

@ -88,6 +88,9 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext
return
}
ev.Stage = auditinternal.StageRequestReceived
sink.ProcessEvents(ev)
// intercept the status code
longRunning := false
var longRunningSink audit.Sink
@ -116,6 +119,7 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext
}
}
ev.Stage = auditinternal.StageResponseComplete
sink.ProcessEvents(ev)
}()
handler.ServeHTTP(respWriter, req)
@ -153,17 +157,15 @@ type auditResponseWriter struct {
func (a *auditResponseWriter) processCode(code int) {
a.once.Do(func() {
if a.sink != nil {
a.sink.ProcessEvents(a.event)
}
// for now we use the ResponseStatus as marker that it's the first or second event
// of a long running request. As soon as we have such a field in the event, we can
// change this.
if a.event.ResponseStatus == nil {
a.event.ResponseStatus = &metav1.Status{}
}
a.event.ResponseStatus.Code = int32(code)
a.event.Stage = auditinternal.StageResponseStarted
if a.sink != nil {
a.sink.ProcessEvents(a.event)
}
})
}