Browse Source

update node models to ApiNode

Anish Mukherjee 2 years ago
parent
commit
f04828f1d4
3 changed files with 30 additions and 51 deletions
  1. 7 7
      cli/cmd/node/list.go
  2. 6 27
      cli/cmd/node/update.go
  3. 17 17
      cli/functions/node.go

+ 7 - 7
cli/cmd/node/list.go

@@ -17,7 +17,7 @@ var nodeListCmd = &cobra.Command{
 	Short: "List all nodes",
 	Long:  `List all nodes`,
 	Run: func(cmd *cobra.Command, args []string) {
-		var data []models.Node
+		var data []models.ApiNode
 		if networkName != "" {
 			data = *functions.GetNodes(networkName)
 		} else {
@@ -27,16 +27,16 @@ var nodeListCmd = &cobra.Command{
 		table.SetHeader([]string{"ID", "Addresses", "Network", "Egress", "Ingress", "Relay"})
 		for _, d := range data {
 			addresses := ""
-			if d.Address.String() != "" {
-				addresses += d.Address.String()
+			if d.Address != "" {
+				addresses += d.Address
 			}
-			if d.Address6.String() != "" {
-				if d.Address.String() != "" {
+			if d.Address6 != "" {
+				if d.Address != "" {
 					addresses += ", "
 				}
-				addresses += d.Address6.String()
+				addresses += d.Address6
 			}
-			table.Append([]string{d.ID.String(), addresses, d.Network,
+			table.Append([]string{d.ID, addresses, d.Network,
 				strconv.FormatBool(d.IsEgressGateway), strconv.FormatBool(d.IsIngressGateway), strconv.FormatBool(d.IsRelay)})
 		}
 		table.Render()

+ 6 - 27
cli/cmd/node/update.go

@@ -3,10 +3,8 @@ package node
 import (
 	"encoding/json"
 	"log"
-	"net"
 	"os"
 	"strings"
-	"time"
 
 	"github.com/gravitl/netmaker/cli/functions"
 	"github.com/gravitl/netmaker/models"
@@ -20,7 +18,7 @@ var nodeUpdateCmd = &cobra.Command{
 	Long:  `Update a Node`,
 	Run: func(cmd *cobra.Command, args []string) {
 		var (
-			node        = &models.Node{}
+			node        = &models.ApiNode{}
 			networkName = args[0]
 			nodeID      = args[1]
 		)
@@ -33,38 +31,19 @@ var nodeUpdateCmd = &cobra.Command{
 				log.Fatal(err)
 			}
 		} else {
-			if address != "" {
-				if _, addr, err := net.ParseCIDR(address); err != nil {
-					log.Fatal(err)
-				} else {
-					node.Address = *addr
-				}
-			}
-			if address6 != "" {
-				if _, addr6, err := net.ParseCIDR(address6); err != nil {
-					log.Fatal(err)
-				} else {
-					node.Address6 = *addr6
-				}
-			}
-			if localAddress != "" {
-				if _, localAddr, err := net.ParseCIDR(localAddress); err != nil {
-					log.Fatal(err)
-				} else {
-					node.LocalAddress = *localAddr
-					node.IsLocal = true
-				}
-			}
+			node.Address = address
+			node.Address6 = address6
+			node.LocalAddress = localAddress
 			node.PostUp = postUp
 			node.PostDown = postDown
-			node.PersistentKeepalive = time.Duration(time.Second * time.Duration(keepAlive))
+			node.PersistentKeepalive = int32(keepAlive)
 			if relayAddrs != "" {
 				node.RelayAddrs = strings.Split(relayAddrs, ",")
 			}
 			if egressGatewayRanges != "" {
 				node.EgressGatewayRanges = strings.Split(egressGatewayRanges, ",")
 			}
-			node.ExpirationDateTime = time.Unix(int64(expirationDateTime), 0)
+			node.ExpirationDateTime = int64(expirationDateTime)
 			if defaultACL {
 				node.DefaultACL = "yes"
 			}

+ 17 - 17
cli/functions/node.go

@@ -8,11 +8,11 @@ import (
 )
 
 // GetNodes - fetch all nodes
-func GetNodes(networkName ...string) *[]models.Node {
+func GetNodes(networkName ...string) *[]models.ApiNode {
 	if len(networkName) == 1 {
-		return request[[]models.Node](http.MethodGet, "/api/nodes/"+networkName[0], nil)
+		return request[[]models.ApiNode](http.MethodGet, "/api/nodes/"+networkName[0], nil)
 	} else {
-		return request[[]models.Node](http.MethodGet, "/api/nodes", nil)
+		return request[[]models.ApiNode](http.MethodGet, "/api/nodes", nil)
 	}
 }
 
@@ -22,8 +22,8 @@ func GetNodeByID(networkName, nodeID string) *models.NodeGet {
 }
 
 // UpdateNode - update a single node
-func UpdateNode(networkName, nodeID string, node *models.Node) *models.Node {
-	return request[models.Node](http.MethodPut, fmt.Sprintf("/api/nodes/%s/%s", networkName, nodeID), node)
+func UpdateNode(networkName, nodeID string, node *models.ApiNode) *models.ApiNode {
+	return request[models.ApiNode](http.MethodPut, fmt.Sprintf("/api/nodes/%s/%s", networkName, nodeID), node)
 }
 
 // DeleteNode - delete a node
@@ -32,8 +32,8 @@ func DeleteNode(networkName, nodeID string) *models.SuccessResponse {
 }
 
 // CreateRelay - turn a node into a relay
-func CreateRelay(networkName, nodeID string, relayAddresses []string) *models.Node {
-	return request[models.Node](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/createrelay", networkName, nodeID), &models.RelayRequest{
+func CreateRelay(networkName, nodeID string, relayAddresses []string) *models.ApiNode {
+	return request[models.ApiNode](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/createrelay", networkName, nodeID), &models.RelayRequest{
 		NetID:      networkName,
 		NodeID:     nodeID,
 		RelayAddrs: relayAddresses,
@@ -41,30 +41,30 @@ func CreateRelay(networkName, nodeID string, relayAddresses []string) *models.No
 }
 
 // DeleteRelay - remove relay role from a node
-func DeleteRelay(networkName, nodeID string) *models.Node {
-	return request[models.Node](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deleterelay", networkName, nodeID), nil)
+func DeleteRelay(networkName, nodeID string) *models.ApiNode {
+	return request[models.ApiNode](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deleterelay", networkName, nodeID), nil)
 }
 
 // CreateEgress - turn a node into an egress
-func CreateEgress(networkName, nodeID string, payload *models.EgressGatewayRequest) *models.Node {
-	return request[models.Node](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/creategateway", networkName, nodeID), payload)
+func CreateEgress(networkName, nodeID string, payload *models.EgressGatewayRequest) *models.ApiNode {
+	return request[models.ApiNode](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/creategateway", networkName, nodeID), payload)
 }
 
 // DeleteEgress - remove egress role from a node
-func DeleteEgress(networkName, nodeID string) *models.Node {
-	return request[models.Node](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deletegateway", networkName, nodeID), nil)
+func DeleteEgress(networkName, nodeID string) *models.ApiNode {
+	return request[models.ApiNode](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deletegateway", networkName, nodeID), nil)
 }
 
 // CreateIngress - turn a node into an ingress
-func CreateIngress(networkName, nodeID string, failover bool) *models.Node {
-	return request[models.Node](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/createingress", networkName, nodeID), &struct {
+func CreateIngress(networkName, nodeID string, failover bool) *models.ApiNode {
+	return request[models.ApiNode](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/createingress", networkName, nodeID), &struct {
 		Failover bool `json:"failover"`
 	}{Failover: failover})
 }
 
 // DeleteIngress - remove ingress role from a node
-func DeleteIngress(networkName, nodeID string) *models.Node {
-	return request[models.Node](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deleteingress", networkName, nodeID), nil)
+func DeleteIngress(networkName, nodeID string) *models.ApiNode {
+	return request[models.ApiNode](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deleteingress", networkName, nodeID), nil)
 }
 
 // UncordonNode - uncordon a node