mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-09 21:36:09 +08:00
update node models to ApiNode
This commit is contained in:
parent
1d0748a073
commit
f04828f1d4
3 changed files with 30 additions and 51 deletions
|
@ -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()
|
||||||
|
|
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue