Browse Source

bug squashin

worker-9 4 years ago
parent
commit
ebcaf7e244
3 changed files with 19 additions and 12 deletions
  1. 4 0
      controllers/common.go
  2. 14 11
      controllers/nodeGrpcController.go
  3. 1 1
      database/statics.go

+ 4 - 0
controllers/common.go

@@ -20,7 +20,11 @@ func GetPeersList(networkName string) ([]models.Node, error) {
 	var peers []models.Node
 	collection, err := database.FetchRecords(database.NODES_TABLE_NAME)
 	if err != nil {
+		if database.IsEmptyRecord(err) {
+			return peers, nil
+		}
 		log.Println(err)
+		return nil, err
 	}
 	udppeers, errN := database.GetPeers(networkName)
 	if errN != nil {

+ 14 - 11
controllers/nodeGrpcController.go

@@ -5,6 +5,7 @@ import (
 	"encoding/json"
 	"errors"
 	"log"
+	"strings"
 
 	"github.com/gravitl/netmaker/functions"
 	nodepb "github.com/gravitl/netmaker/grpc"
@@ -130,21 +131,23 @@ func (s *NodeServiceServer) DeleteNode(ctx context.Context, req *nodepb.Object)
 }
 
 func (s *NodeServiceServer) GetPeers(ctx context.Context, req *nodepb.Object) (*nodepb.Object, error) {
-	var node models.Node
-	if err := json.Unmarshal([]byte(req.GetData()), &node); err != nil {
-		return nil, err
-	}
+	macAndNetwork := strings.Split(req.Data, "###")
+	if len(macAndNetwork) == 2 {
+		peers, err := GetPeersList(macAndNetwork[1])
+		if err != nil {
+			return nil, err
+		}
 
-	peers, err := GetPeersList(node.Network)
-	if err != nil {
-		return nil, err
+		peersData, err := json.Marshal(&peers)
+		return &nodepb.Object{
+			Data: string(peersData),
+			Type: nodepb.NODE_TYPE,
+		}, err
 	}
-
-	peersData, err := json.Marshal(&peers)
 	return &nodepb.Object{
-		Data: string(peersData),
+		Data: "",
 		Type: nodepb.NODE_TYPE,
-	}, nil
+	}, errors.New("could not fetch peers, invalid node id")
 }
 
 /**

+ 1 - 1
database/statics.go

@@ -19,7 +19,7 @@ func SetPeers(newPeers map[string]string, networkName string) bool {
 }
 func GetPeers(networkName string) (map[string]string, error) {
 	record, err := FetchRecord(PEERS_TABLE_NAME, networkName)
-	if err != nil {
+	if err != nil && !IsEmptyRecord(err) {
 		return nil, err
 	}
 	currentDataMap := make(map[string]string)