From 33381a783a899b24d9c2d7b29808257adc07f1db Mon Sep 17 00:00:00 2001 From: Alex Ellis Date: Thu, 27 Jul 2017 12:24:37 +0100 Subject: [PATCH] External alert-handler support. --- gateway/plugin/external.go | 31 +++++++++++++++++++++++++++++++ gateway/server.go | 5 ++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 gateway/plugin/external.go diff --git a/gateway/plugin/external.go b/gateway/plugin/external.go new file mode 100644 index 00000000..ded64c81 --- /dev/null +++ b/gateway/plugin/external.go @@ -0,0 +1,31 @@ +package plugin + +import ( + "net/url" + + "github.com/alexellis/faas/gateway/handlers" +) + +func NewExternalServiceQuery(externalURL url.URL) handlers.ServiceQuery { + return ExternalServiceQuery{ + URL: externalURL, + } +} + +type ExternalServiceQuery struct { + URL url.URL +} + +// GetReplicas replica count for function +func (s ExternalServiceQuery) GetReplicas(serviceName string) (uint64, uint64, error) { + var err error + + return 0, 0, err +} + +// SetReplicas update the replica count +func (s ExternalServiceQuery) SetReplicas(serviceName string, count uint64) error { + var err error + + return err +} diff --git a/gateway/server.go b/gateway/server.go index 450ed885..4817cc67 100644 --- a/gateway/server.go +++ b/gateway/server.go @@ -14,6 +14,7 @@ import ( "github.com/Sirupsen/logrus" internalHandlers "github.com/alexellis/faas/gateway/handlers" "github.com/alexellis/faas/gateway/metrics" + "github.com/alexellis/faas/gateway/plugin" "github.com/alexellis/faas/gateway/types" "github.com/docker/docker/client" "github.com/prometheus/client_golang/prometheus" @@ -69,7 +70,9 @@ func main() { faasHandlers.Proxy = makeHandler(reverseProxy, &metricsOptions) faasHandlers.RoutelessProxy = makeHandler(reverseProxy, &metricsOptions) - faasHandlers.Alert = makeHandler(reverseProxy, &metricsOptions) + + faasHandlers.Alert = internalHandlers.MakeAlertHandler(plugin.NewExternalServiceQuery(*config.FunctionsProviderURL)) + faasHandlers.ListFunctions = makeHandler(reverseProxy, &metricsOptions) faasHandlers.DeployFunction = makeHandler(reverseProxy, &metricsOptions) faasHandlers.DeleteFunction = makeHandler(reverseProxy, &metricsOptions)