mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 08:46:48 +00:00
Introduces a single-flight call to a function's health endpoint to verify that it is registered with an Istio sidecar (Envoy) before letting the invocation through. Results are cached for 5 seconds, before a probe is required again. Tested without Istio, with probe_functions environment variable set to true, I saw a probe execute in the logs. Fixes: #1721 for Istio users. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alex@openfaas.com>
35 lines
806 B
Go
35 lines
806 B
Go
// Copyright (c) OpenFaaS Author(s). All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
|
|
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func Test_Transform_DoesntTransformRootPath(t *testing.T) {
|
|
|
|
req, _ := http.NewRequest(http.MethodGet, "/", nil)
|
|
transformer := TransparentURLPathTransformer{}
|
|
want := req.URL.Path
|
|
got := transformer.Transform(req)
|
|
|
|
if want != got {
|
|
t.Errorf("want: %s, got: %s", want, got)
|
|
}
|
|
}
|
|
|
|
func Test_Transform_DoesntTransformAdditionalPath(t *testing.T) {
|
|
|
|
req, _ := http.NewRequest(http.MethodGet, "/employees/", nil)
|
|
transformer := TransparentURLPathTransformer{}
|
|
want := req.URL.Path
|
|
got := transformer.Transform(req)
|
|
|
|
if want != got {
|
|
t.Errorf("want: %s, got: %s", want, got)
|
|
}
|
|
|
|
}
|