mirror of
https://github.com/coder/coder.git
synced 2025-07-23 21:32:07 +00:00
feat: Enable workspace debug logging (#6838)
* feat: Enable workspace debug logging * Fix * Fix * Fix * fix * fix * Enable RBAC * unit tests * Fix * fix * fix * fix * more tests * fix: workspacebuild_test use roles * fix: swagger comment * fix: ctx.Done * fix: address PR comments * break loop
This commit is contained in:
@ -192,7 +192,12 @@ func (e *echo) Provision(stream proto.DRPCProvisioner_ProvisionStream) error {
|
||||
if err != nil {
|
||||
return xerrors.Errorf("unmarshal: %w", err)
|
||||
}
|
||||
err = stream.Send(&response)
|
||||
r, ok := filterLogResponses(config, &response)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
err = stream.Send(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -282,3 +287,23 @@ func Tar(responses *Responses) ([]byte, error) {
|
||||
}
|
||||
return buffer.Bytes(), nil
|
||||
}
|
||||
|
||||
func filterLogResponses(config *proto.Provision_Config, response *proto.Provision_Response) (*proto.Provision_Response, bool) {
|
||||
responseLog, ok := response.Type.(*proto.Provision_Response_Log)
|
||||
if !ok {
|
||||
// Pass all non-log responses
|
||||
return response, true
|
||||
}
|
||||
|
||||
if config.ProvisionerLogLevel == "" {
|
||||
// Don't change the default behavior of "echo"
|
||||
return response, true
|
||||
}
|
||||
|
||||
provisionerLogLevel := proto.LogLevel_value[strings.ToUpper(config.ProvisionerLogLevel)]
|
||||
if int32(responseLog.Log.Level) < provisionerLogLevel {
|
||||
// Log level is not enabled
|
||||
return nil, false
|
||||
}
|
||||
return response, true
|
||||
}
|
||||
|
Reference in New Issue
Block a user