make auditor interface more explicit

This commit is contained in:
Drew Bailey
2020-03-23 19:32:58 -04:00
parent cd12632c65
commit dafbf36458
3 changed files with 22 additions and 15 deletions

View File

@@ -54,7 +54,7 @@ type Agent struct {
configLock sync.Mutex
logger log.InterceptLogger
eventer event.Eventer
eventer event.Auditor
httpLogger log.Logger
logOutput io.Writer

View File

@@ -10,28 +10,30 @@ import (
"github.com/hashicorp/nomad/nomad/structs/config"
)
type noOpEventer struct{}
type noOpAuditor struct{}
// Ensure noOpEventer is an Eventer
var _ event.Eventer = &noOpEventer{}
// Ensure noOpAuditor is an Eventer
var _ event.Auditor = &noOpAuditor{}
func (e *noOpEventer) Event(ctx context.Context, eventType string, payload interface{}) error {
func (e *noOpAuditor) Event(ctx context.Context, eventType string, payload interface{}) error {
return nil
}
func (e *noOpEventer) Enabled() bool {
func (e *noOpAuditor) Enabled() bool {
return false
}
func (e *noOpEventer) Reopen() error {
func (e *noOpAuditor) Reopen() error {
return nil
}
func (e *noOpEventer) SetEnabled(enabled bool) {}
func (e *noOpAuditor) SetEnabled(enabled bool) {}
func (e *noOpAuditor) DeliveryEnforced() bool { return false }
func (a *Agent) setupEnterpriseAgent(log hclog.Logger) error {
// configure eventer
a.eventer = &noOpEventer{}
a.eventer = &noOpAuditor{}
return nil
}

View File

@@ -4,16 +4,21 @@ import (
"context"
)
// Eventer describes the interface that must be implemented by an eventer.
type Eventer interface {
// Emit and event
// Auditor describes the interface that must be implemented by an eventer.
type Auditor interface {
// Emit an event to the auditor
Event(ctx context.Context, eventType string, payload interface{}) error
// Specifies if the eventer is enabled or not
// Specifies if the auditor is enabled or not
Enabled() bool
// Reopen signals to eventer to reopen any files they have open.
// Reopen signals to auditor to reopen any files they have open.
Reopen() error
// SetEnabled sets the eventer to enabled or disabled.
// SetEnabled sets the auditor to enabled or disabled.
SetEnabled(enabled bool)
// DeliveryEnforced returns whether or not delivery of an audit
// log must be enforced
DeliveryEnforced() bool
}