Merge pull request #39 from pedronasser/request-uid

Request unique id
This commit is contained in:
Travis Reeder
2016-08-07 13:37:59 -04:00
committed by GitHub
4 changed files with 13 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ import (
)
type Config struct {
ID string
Ctx context.Context
Route *models.Route
Payload string

View File

@@ -2,6 +2,7 @@ package runner
import (
"bytes"
"fmt"
"testing"
"time"
@@ -21,6 +22,7 @@ func TestRunnerHello(t *testing.T) {
{&models.Route{Image: "iron/hello"}, `{"name": "test"}`, "success", "Hello test!", ""},
} {
runner := New(&Config{
ID: fmt.Sprintf("task-hello-%d-%d", i, time.Now().Unix()),
Ctx: context.Background(),
Route: test.route,
Timeout: 5 * time.Second,
@@ -57,6 +59,7 @@ func TestRunnerError(t *testing.T) {
{&models.Route{Image: "iron/error"}, `{"name": "test"}`, "error", "", "RuntimeError"},
} {
runner := New(&Config{
ID: fmt.Sprintf("task-error-%d-%d", i, time.Now().Unix()),
Ctx: context.Background(),
Route: test.route,
Timeout: 5 * time.Second,

View File

@@ -23,7 +23,7 @@ func (t *containerTask) EnvVars() map[string]string {
return env
}
func (t *containerTask) Id() string { return "" }
func (t *containerTask) Id() string { return t.cfg.ID }
func (t *containerTask) Group() string { return "" }
func (t *containerTask) Image() string { return t.cfg.Route.Image }
func (t *containerTask) Timeout() uint { return uint(t.cfg.Timeout.Seconds()) }

View File

@@ -1,6 +1,7 @@
package server
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
@@ -12,6 +13,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/iron-io/functions/api/models"
"github.com/iron-io/functions/api/runner"
"github.com/satori/go.uuid"
)
func handleRunner(c *gin.Context) {
@@ -22,6 +24,11 @@ func handleRunner(c *gin.Context) {
log := c.MustGet("log").(logrus.FieldLogger)
reqID := uuid.NewV5(uuid.Nil, fmt.Sprintf("%s%s%d", c.Request.RemoteAddr, c.Request.URL.Path, time.Now().Unix())).String()
c.Set("reqID", reqID)
log = log.WithFields(logrus.Fields{"request_id": reqID})
var err error
var payload []byte
@@ -75,7 +82,6 @@ func handleRunner(c *gin.Context) {
}
log.WithField("routes", routes).Debug("Got routes from datastore")
for _, el := range routes {
if el.Path == route {
run := runner.New(&runner.Config{
@@ -83,6 +89,7 @@ func handleRunner(c *gin.Context) {
Route: el,
Payload: string(payload),
Timeout: 30 * time.Second,
ID: reqID,
})
if err := run.Run(); err != nil {