Pārlūkot izejas kodu

track failover usage

abhishek9686 1 gadu atpakaļ
vecāks
revīzija
b2361be29b
4 mainītis faili ar 25 papildinājumiem un 0 dzēšanām
  1. 5 0
      controllers/server.go
  2. 15 0
      logic/nodes.go
  3. 1 0
      pro/types.go
  4. 4 0
      pro/util.go

+ 5 - 0
controllers/server.go

@@ -55,6 +55,7 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
 		Egresses         int `json:"egresses"`
 		Relays           int `json:"relays"`
 		InternetGateways int `json:"internet_gateways"`
+		FailOvers        int `json:"fail_overs"`
 	}
 	var serverUsage usage
 	hosts, err := logic.GetAllHosts()
@@ -90,6 +91,10 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
 	if err == nil {
 		serverUsage.InternetGateways = len(gateways)
 	}
+	failOvers, err := logic.GetAllFailOvers()
+	if err == nil {
+		serverUsage.FailOvers = len(failOvers)
+	}
 	w.Header().Set("Content-Type", "application/json")
 	json.NewEncoder(w).Encode(models.SuccessResponse{
 		Code:     http.StatusOK,

+ 15 - 0
logic/nodes.go

@@ -625,3 +625,18 @@ func ValidateParams(nodeid, netid string) (models.Node, error) {
 	}
 	return node, nil
 }
+
+// GetAllFailOvers - gets all the nodes that are failovers
+func GetAllFailOvers() ([]models.Node, error) {
+	nodes, err := GetAllNodes()
+	if err != nil {
+		return nil, err
+	}
+	igs := make([]models.Node, 0)
+	for _, node := range nodes {
+		if node.IsFailOver {
+			igs = append(igs, node)
+		}
+	}
+	return igs, nil
+}

+ 1 - 0
pro/types.go

@@ -63,6 +63,7 @@ type Usage struct {
 	Egresses         int `json:"egresses"`
 	Relays           int `json:"relays"`
 	InternetGateways int `json:"internet_gateways"`
+	FailOvers        int `json:"fail_overs"`
 }
 
 // Usage.SetDefaults - sets the default values for usage

+ 4 - 0
pro/util.go

@@ -59,5 +59,9 @@ func getCurrentServerUsage() (limits Usage) {
 	if err == nil {
 		limits.InternetGateways = len(gateways)
 	}
+	failovers, err := logic.GetAllFailOvers()
+	if err == nil {
+		limits.FailOvers = len(failovers)
+	}
 	return
 }