Return 500 if GET /system/functions fails

Signed-off-by: Alex Young <alex@heuris.io>
This commit is contained in:
Alex Young
2017-10-26 17:39:13 +01:00
committed by Alex Ellis
parent 12a0c75e91
commit 0248a5ea1d
2 changed files with 215 additions and 4 deletions

View File

@ -6,7 +6,7 @@ package handlers
import (
"context"
"encoding/json"
"fmt"
"log"
"net/http"
"strings"
@ -19,7 +19,7 @@ import (
)
// MakeFunctionReader gives a summary of Function structs with Docker service stats overlaid with Prometheus counters.
func MakeFunctionReader(metricsOptions metrics.MetricOptions, c *client.Client) http.HandlerFunc {
func MakeFunctionReader(metricsOptions metrics.MetricOptions, c client.ServiceAPIClient) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
serviceFilter := filters.NewArgs()
@ -30,11 +30,14 @@ func MakeFunctionReader(metricsOptions metrics.MetricOptions, c *client.Client)
services, err := c.ServiceList(context.Background(), options)
if err != nil {
fmt.Println(err)
log.Println("Error getting service list:", err)
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("Error getting service list"))
return
}
// TODO: Filter only "faas" functions (via metadata?)
var functions []requests.Function
functions := []requests.Function{}
for _, service := range services {