Fix internal route setup bug (#335)
Fixes #334 which broke internal routes, and adds a test.
This commit is contained in:
@@ -115,9 +115,10 @@ func (ts *HTTPTriggerSet) getRouter() *mux.Router {
|
|||||||
// Internal triggers for each function by name. Non-http
|
// Internal triggers for each function by name. Non-http
|
||||||
// triggers route into these.
|
// triggers route into these.
|
||||||
for _, function := range ts.functions {
|
for _, function := range ts.functions {
|
||||||
|
m := function.Metadata
|
||||||
fh := &functionHandler{
|
fh := &functionHandler{
|
||||||
fmap: ts.functionServiceMap,
|
fmap: ts.functionServiceMap,
|
||||||
function: &function.Metadata,
|
function: &m,
|
||||||
poolmgr: ts.poolmgr,
|
poolmgr: ts.poolmgr,
|
||||||
}
|
}
|
||||||
muxRouter.HandleFunc(fission.UrlForFunction(function.Metadata.Name), fh.handler)
|
muxRouter.HandleFunc(fission.UrlForFunction(function.Metadata.Name), fh.handler)
|
||||||
|
|||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create two functions, make sure their internal http triggers invoke
|
||||||
|
# them correctly.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT=$(dirname $0)/../..
|
||||||
|
|
||||||
|
echo "Pre-test cleanup"
|
||||||
|
fission env delete --name nodejs || true
|
||||||
|
|
||||||
|
echo "Creating nodejs env"
|
||||||
|
fission env create --name nodejs --image fission/node-env
|
||||||
|
trap "fission env delete --name nodejs" EXIT
|
||||||
|
|
||||||
|
echo "Writing functions"
|
||||||
|
f1=f1-$(date +%s)
|
||||||
|
f2=f2-$(date +%s)
|
||||||
|
echo $f1 $f2
|
||||||
|
|
||||||
|
for f in $f1 $f2
|
||||||
|
do
|
||||||
|
echo "module.exports = function(context, callback) { callback(200, \"$f\n\"); }" > $f.js
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Creating functions"
|
||||||
|
for f in $f1 $f2
|
||||||
|
do
|
||||||
|
fission fn create --name $f --env nodejs --code $f.js
|
||||||
|
trap "fission fn delete --name $f" EXIT
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Waiting for router to catch up"
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "Testing internal routes"
|
||||||
|
for f in $f1 $f2
|
||||||
|
do
|
||||||
|
response=$(curl http://$FISSION_ROUTER/fission-function/$f)
|
||||||
|
echo $response | grep $f
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "All done."
|
||||||
Reference in New Issue
Block a user