HTTP Triggers hookup (#1086)

* Initial suypport for invoking tiggers

* dupe method

* tighten server constraints

* runner tests not working yet

* basic route tests passing

* post rebase fixes

* add hybrid support for trigger invoke and tests

* consoloidate all hybrid evil into one place

* cleanup and make triggers unique by source

* fix oops with Agent

* linting

* review fixes
This commit is contained in:
Owen Cliffe
2018-07-05 18:56:07 +01:00
committed by Reed Allman
parent b07a000a18
commit b8b544ed25
38 changed files with 2208 additions and 865 deletions

View File

@@ -11,7 +11,7 @@ import (
"go.opencensus.io/trace"
)
func (a *agent) asyncDequeue() {
func (a *agent) asyncDequeue(dqda DequeueDataAccess) {
// this is just so we can hang up the dequeue request if we get shut down
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
@@ -37,7 +37,7 @@ func (a *agent) asyncDequeue() {
case <-a.shutWg.Closer():
a.shutWg.DoneSession()
return
case model, ok := <-a.asyncChew(ctx):
case model, ok := <-a.asyncChew(ctx, dqda):
if ok {
go func(model *models.Call) {
a.asyncRun(ctx, model)
@@ -53,14 +53,14 @@ func (a *agent) asyncDequeue() {
}
}
func (a *agent) asyncChew(ctx context.Context) <-chan *models.Call {
func (a *agent) asyncChew(ctx context.Context, dqda DequeueDataAccess) <-chan *models.Call {
ch := make(chan *models.Call, 1)
go func() {
ctx, cancel := context.WithTimeout(ctx, a.cfg.AsyncChewPoll)
defer cancel()
call, err := a.da.Dequeue(ctx)
call, err := dqda.Dequeue(ctx)
if call != nil {
ch <- call
} else { // call is nil / error