Explorar o código

Merge pull request #2262 from gravitl/NET-80

return {} if no records found for acls/metrics
Alex Feiszli %!s(int64=2) %!d(string=hai) anos
pai
achega
82f0ac492a
Modificáronse 2 ficheiros con 13 adicións e 0 borrados
  1. 6 0
      controllers/network.go
  2. 7 0
      ee/ee_controllers/metrics.go

+ 6 - 0
controllers/network.go

@@ -170,6 +170,12 @@ func getNetworkACL(w http.ResponseWriter, r *http.Request) {
 	var networkACL acls.ACLContainer
 	var networkACL acls.ACLContainer
 	networkACL, err := networkACL.Get(acls.ContainerID(netname))
 	networkACL, err := networkACL.Get(acls.ContainerID(netname))
 	if err != nil {
 	if err != nil {
+		if database.IsEmptyRecord(err) {
+			networkACL = acls.ACLContainer{}
+			w.WriteHeader(http.StatusOK)
+			json.NewEncoder(w).Encode(networkACL)
+			return
+		}
 		logger.Log(0, r.Header.Get("user"),
 		logger.Log(0, r.Header.Get("user"),
 			fmt.Sprintf("failed to fetch ACLs for network [%s]: %v", netname, err))
 			fmt.Sprintf("failed to fetch ACLs for network [%s]: %v", netname, err))
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))

+ 7 - 0
ee/ee_controllers/metrics.go

@@ -5,6 +5,7 @@ import (
 	"net/http"
 	"net/http"
 
 
 	"github.com/gorilla/mux"
 	"github.com/gorilla/mux"
+	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/models"
@@ -91,6 +92,12 @@ func getNetworkExtMetrics(w http.ResponseWriter, r *http.Request) {
 
 
 	clients, err := logic.GetNetworkExtClients(network) // grab all the network ext clients
 	clients, err := logic.GetNetworkExtClients(network) // grab all the network ext clients
 	if err != nil {
 	if err != nil {
+		if database.IsEmptyRecord(err) {
+			var metrics struct{}
+			w.WriteHeader(http.StatusOK)
+			json.NewEncoder(w).Encode(metrics)
+			return
+		}
 		logger.Log(1, r.Header.Get("user"), "failed to fetch metrics of ext clients in network", network, err.Error())
 		logger.Log(1, r.Header.Get("user"), "failed to fetch metrics of ext clients in network", network, err.Error())
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		return
 		return