mirror of
https://github.com/openfaas/faas.git
synced 2025-06-18 03:56:37 +00:00
Migrate away from requests package for Function structs
The function deployment and status structs have been moved away into the faas-provider package. Tested with a build, running tests, and CI. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
This commit is contained in:
committed by
Alex Ellis
parent
8767514527
commit
df97efafae
4
gateway/vendor/github.com/openfaas/faas-provider/.travis.yml
generated
vendored
Normal file
4
gateway/vendor/github.com/openfaas/faas-provider/.travis.yml
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
language: go
|
||||
go_import_path: github.com/openfaas/faas-provider
|
||||
script:
|
||||
- make test
|
4
gateway/vendor/github.com/openfaas/faas-provider/Makefile
generated
vendored
4
gateway/vendor/github.com/openfaas/faas-provider/Makefile
generated
vendored
@ -1,2 +1,6 @@
|
||||
build:
|
||||
docker build -t faas-provider .
|
||||
|
||||
|
||||
test :
|
||||
go test -cover ./...
|
||||
|
10
gateway/vendor/github.com/openfaas/faas-provider/proxy/proxy.go
generated
vendored
10
gateway/vendor/github.com/openfaas/faas-provider/proxy/proxy.go
generated
vendored
@ -29,7 +29,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/openfaas/faas-provider/httputils"
|
||||
"github.com/openfaas/faas-provider/httputil"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -112,7 +112,7 @@ func proxyRequest(w http.ResponseWriter, originalReq *http.Request, proxyClient
|
||||
pathVars := mux.Vars(originalReq)
|
||||
functionName := pathVars["name"]
|
||||
if functionName == "" {
|
||||
httputils.Errorf(w, http.StatusBadRequest, errMissingFunctionName)
|
||||
httputil.Errorf(w, http.StatusBadRequest, errMissingFunctionName)
|
||||
return
|
||||
}
|
||||
|
||||
@ -120,13 +120,13 @@ func proxyRequest(w http.ResponseWriter, originalReq *http.Request, proxyClient
|
||||
if resolveErr != nil {
|
||||
// TODO: Should record the 404/not found error in Prometheus.
|
||||
log.Printf("resolver error: cannot find %s: %s\n", functionName, resolveErr.Error())
|
||||
httputils.Errorf(w, http.StatusNotFound, "Cannot find service: %s.", functionName)
|
||||
httputil.Errorf(w, http.StatusNotFound, "Cannot find service: %s.", functionName)
|
||||
return
|
||||
}
|
||||
|
||||
proxyReq, err := buildProxyRequest(originalReq, functionAddr, pathVars["params"])
|
||||
if err != nil {
|
||||
httputils.Errorf(w, http.StatusInternalServerError, "Failed to resolve service: %s.", functionName)
|
||||
httputil.Errorf(w, http.StatusInternalServerError, "Failed to resolve service: %s.", functionName)
|
||||
return
|
||||
}
|
||||
if proxyReq.Body != nil {
|
||||
@ -140,7 +140,7 @@ func proxyRequest(w http.ResponseWriter, originalReq *http.Request, proxyClient
|
||||
if err != nil {
|
||||
log.Printf("error with proxy request to: %s, %s\n", proxyReq.URL.String(), err.Error())
|
||||
|
||||
httputils.Errorf(w, http.StatusInternalServerError, "Can't reach service for: %s.", functionName)
|
||||
httputil.Errorf(w, http.StatusInternalServerError, "Can't reach service for: %s.", functionName)
|
||||
return
|
||||
}
|
||||
|
||||
|
85
gateway/vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
Normal file
85
gateway/vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
package types
|
||||
|
||||
// FunctionDeployment represents a request to create or update a Function.
|
||||
type FunctionDeployment struct {
|
||||
|
||||
// Service corresponds to a Service
|
||||
Service string `json:"service"`
|
||||
|
||||
// Image corresponds to a Docker image
|
||||
Image string `json:"image"`
|
||||
|
||||
// Network is specific to Docker Swarm - default overlay network is: func_functions
|
||||
Network string `json:"network"`
|
||||
|
||||
// EnvProcess corresponds to the fprocess variable for your container watchdog.
|
||||
EnvProcess string `json:"envProcess"`
|
||||
|
||||
// EnvVars provides overrides for functions.
|
||||
EnvVars map[string]string `json:"envVars"`
|
||||
|
||||
// RegistryAuth is the registry authentication (optional)
|
||||
// in the same encoded format as Docker native credentials
|
||||
// (see ~/.docker/config.json)
|
||||
RegistryAuth string `json:"registryAuth,omitempty"`
|
||||
|
||||
// Constraints are specific to back-end orchestration platform
|
||||
Constraints []string `json:"constraints"`
|
||||
|
||||
// Secrets list of secrets to be made available to function
|
||||
Secrets []string `json:"secrets"`
|
||||
|
||||
// Labels are metadata for functions which may be used by the
|
||||
// back-end for making scheduling or routing decisions
|
||||
Labels *map[string]string `json:"labels"`
|
||||
|
||||
// Annotations are metadata for functions which may be used by the
|
||||
// back-end for management, orchestration, events and build tasks
|
||||
Annotations *map[string]string `json:"annotations"`
|
||||
|
||||
// Limits for function
|
||||
Limits *FunctionResources `json:"limits"`
|
||||
|
||||
// Requests of resources requested by function
|
||||
Requests *FunctionResources `json:"requests"`
|
||||
|
||||
// ReadOnlyRootFilesystem removes write-access from the root filesystem
|
||||
// mount-point.
|
||||
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem"`
|
||||
}
|
||||
|
||||
// FunctionResources Memory and CPU
|
||||
type FunctionResources struct {
|
||||
Memory string `json:"memory"`
|
||||
CPU string `json:"cpu"`
|
||||
}
|
||||
|
||||
// FunctionStatus exported for system/functions endpoint
|
||||
type FunctionStatus struct {
|
||||
|
||||
// Name corresponds to a Service
|
||||
Name string `json:"name"`
|
||||
|
||||
// Image corresponds to a Docker image
|
||||
Image string `json:"image"`
|
||||
|
||||
// InvocationCount count of invocations
|
||||
InvocationCount float64 `json:"invocationCount"`
|
||||
|
||||
// Replicas desired within the cluster
|
||||
Replicas uint64 `json:"replicas"`
|
||||
|
||||
// EnvProcess is the process to pass to the watchdog, if in use
|
||||
EnvProcess string `json:"envProcess"`
|
||||
|
||||
// AvailableReplicas is the count of replicas ready to receive invocations as reported by the backend
|
||||
AvailableReplicas uint64 `json:"availableReplicas"`
|
||||
|
||||
// Labels are metadata for functions which may be used by the
|
||||
// backend for making scheduling or routing decisions
|
||||
Labels *map[string]string `json:"labels"`
|
||||
|
||||
// Annotations are metadata for functions which may be used by the
|
||||
// backend for management, orchestration, events and build tasks
|
||||
Annotations *map[string]string `json:"annotations"`
|
||||
}
|
Reference in New Issue
Block a user