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:
Marcin Tojek
2023-03-30 16:00:33 +02:00
committed by GitHub
parent 665b84de0d
commit 0ba200c2a1
18 changed files with 610 additions and 288 deletions

View File

@ -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
}