diff --git a/cli/cmd/node/list.go b/cli/cmd/node/list.go index 3f5305b1..6adc78e2 100644 --- a/cli/cmd/node/list.go +++ b/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() diff --git a/cli/cmd/node/update.go b/cli/cmd/node/update.go index fcf4c9c3..14e9a5e4 100644 --- a/cli/cmd/node/update.go +++ b/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" } diff --git a/cli/functions/node.go b/cli/functions/node.go index cd7a1779..8a5fc793 100644 --- a/cli/functions/node.go +++ b/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