fn: agent call overrider (#1080)

Similar to LB Agent call overrider, this PR adds Agent overrider
for Agents to modify/analyze a Call/Extensions during GetCall().
This commit is contained in:
Tolga Ceylan
2018-06-20 16:21:09 -07:00
committed by GitHub
parent 77f243bfaf
commit 881a0ba1db
5 changed files with 63 additions and 11 deletions

View File

@@ -120,6 +120,8 @@ type agent struct {
shutonce sync.Once
callEndCount int64
disableAsyncDequeue bool
callOverrider CallOverrider
}
type AgentOption func(*agent) error
@@ -194,6 +196,17 @@ func WithoutAsyncDequeue() AgentOption {
}
}
// Agents can use this to register a CallOverrider to modify a Call and extensions
func WithCallOverrider(fn CallOverrider) AgentOption {
return func(a *agent) error {
if a.callOverrider != nil {
return errors.New("lb-agent call overriders already exists")
}
a.callOverrider = fn
return nil
}
}
// Create a default docker driver from agent config
func NewDockerDriver(cfg *AgentConfig) *docker.DockerDriver {
return docker.NewDocker(drivers.Config{