12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package functions
- import (
- "fmt"
- "net/http"
- "github.com/gravitl/netmaker/models"
- )
- // GetNodes - fetch all nodes
- func GetNodes(networkName ...string) *[]models.Node {
- if len(networkName) == 1 {
- return request[[]models.Node](http.MethodGet, "/api/nodes/"+networkName[0], nil)
- } else {
- return request[[]models.Node](http.MethodGet, "/api/nodes", nil)
- }
- }
- // GetNodeByID - fetch a single node by ID
- func GetNodeByID(networkName, nodeID string) *models.NodeGet {
- return request[models.NodeGet](http.MethodGet, fmt.Sprintf("/api/nodes/%s/%s", networkName, nodeID), nil)
- }
- // 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)
- }
- // DeleteNode - delete a node
- func DeleteNode(networkName, nodeID string) *models.SuccessResponse {
- return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s", networkName, nodeID), nil)
- }
- // 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{
- NetID: networkName,
- NodeID: nodeID,
- RelayAddrs: relayAddresses,
- })
- }
- // 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)
- }
- // 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)
- }
- // 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)
- }
- // 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 {
- 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)
- }
- // UncordonNode - uncordon a node
- func UncordonNode(networkName, nodeID string) *string {
- return request[string](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/approve", networkName, nodeID), nil)
- }
|