update node models to ApiNode

This commit is contained in:
Anish Mukherjee 2023-01-16 10:32:09 +05:30
parent 1d0748a073
commit f04828f1d4
3 changed files with 30 additions and 51 deletions

View file

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

View file

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

View file

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