Extract handler_set.go

Signed-off-by: Alex Ellis <alexellis2@gmail.com>
This commit is contained in:
Alex Ellis 2017-12-01 18:32:52 +00:00
parent 23a7187435
commit 3d210f1ff2
2 changed files with 27 additions and 21 deletions

View File

@ -5,40 +5,23 @@ package main
import (
"context"
"fmt"
"log"
"net/http"
"net/http/httputil"
"time"
"fmt"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/client"
"github.com/gorilla/mux"
internalHandlers "github.com/openfaas/faas/gateway/handlers"
"github.com/openfaas/faas/gateway/metrics"
"github.com/openfaas/faas/gateway/plugin"
"github.com/openfaas/faas/gateway/types"
natsHandler "github.com/openfaas/nats-queue-worker/handler"
"github.com/gorilla/mux"
)
type handlerSet struct {
Proxy http.HandlerFunc
DeployFunction http.HandlerFunc
DeleteFunction http.HandlerFunc
ListFunctions http.HandlerFunc
Alert http.HandlerFunc
RoutelessProxy http.HandlerFunc
UpdateFunction http.HandlerFunc
// QueuedProxy - queue work and return synchronous response
QueuedProxy http.HandlerFunc
// AsyncReport - report a deferred execution result
AsyncReport http.HandlerFunc
}
func main() {
logger := logrus.Logger{}
logrus.SetFormatter(&logrus.TextFormatter{})
@ -70,7 +53,8 @@ func main() {
metricsOptions := metrics.BuildMetricsOptions()
metrics.RegisterMetrics(metricsOptions)
var faasHandlers handlerSet
var faasHandlers types.HandlerSet
servicePollInterval := time.Second * 5
if config.UseExternalProvider() {
@ -93,6 +77,7 @@ func main() {
// How many times to reschedule a function.
maxRestarts := uint64(5)
// Delay between container restarts
restartDelay := time.Second * 5
@ -131,6 +116,7 @@ func main() {
r.HandleFunc("/function/{name:[-a-zA-Z_0-9]+}/", faasHandlers.Proxy)
r.HandleFunc("/system/alert", faasHandlers.Alert)
r.HandleFunc("/system/functions", listFunctions).Methods("GET")
r.HandleFunc("/system/functions", faasHandlers.DeployFunction).Methods("POST")
r.HandleFunc("/system/functions", faasHandlers.DeleteFunction).Methods("DELETE")

View File

@ -0,0 +1,20 @@
package types
import "net/http"
// HandlerSet can be initialized with handlers for binding to mux
type HandlerSet struct {
Proxy http.HandlerFunc
DeployFunction http.HandlerFunc
DeleteFunction http.HandlerFunc
ListFunctions http.HandlerFunc
Alert http.HandlerFunc
RoutelessProxy http.HandlerFunc
UpdateFunction http.HandlerFunc
// QueuedProxy - queue work and return synchronous response
QueuedProxy http.HandlerFunc
// AsyncReport - report a deferred execution result
AsyncReport http.HandlerFunc
}