mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 17:29:15 +08:00
switched ingress stuff
This commit is contained in:
@@ -393,6 +393,25 @@ func DeleteExtClient(network string, clientid string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes ext clients based on gateway (mac) of ingress node and network
|
||||||
|
*/
|
||||||
|
func DeleteGatewayExtClients(gatewayID string, networkName string) error {
|
||||||
|
currentExtClients, err := GetNetworkExtClients(networkName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, extClient := range currentExtClients {
|
||||||
|
if extClient.IngressGatewayID == gatewayID {
|
||||||
|
if err = DeleteExtClient(networkName, extClient.ClientID); err != nil {
|
||||||
|
functions.PrintUserLog("netmaker", "failed to remove ext client "+extClient.ClientID, 2)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
//Delete a extclient
|
//Delete a extclient
|
||||||
//Pretty straightforward
|
//Pretty straightforward
|
||||||
func deleteExtClient(w http.ResponseWriter, r *http.Request) {
|
func deleteExtClient(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@@ -669,6 +669,7 @@ func CreateIngressGateway(netid string, macaddress string) (models.Node, error)
|
|||||||
node.PostUp = postUpCmd
|
node.PostUp = postUpCmd
|
||||||
node.PostDown = postDownCmd
|
node.PostDown = postDownCmd
|
||||||
node.PullChanges = "yes"
|
node.PullChanges = "yes"
|
||||||
|
node.UDPHolePunch = "no"
|
||||||
key, err := functions.GetRecordKey(node.MacAddress, node.Network)
|
key, err := functions.GetRecordKey(node.MacAddress, node.Network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
@@ -699,16 +700,27 @@ func deleteIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
json.NewEncoder(w).Encode(node)
|
json.NewEncoder(w).Encode(node)
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteIngressGateway(network, macaddress string) (models.Node, error) {
|
func DeleteIngressGateway(networkName string, macaddress string) (models.Node, error) {
|
||||||
|
|
||||||
node, err := functions.GetNodeByMacAddress(network, macaddress)
|
node, err := functions.GetNodeByMacAddress(networkName, macaddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
}
|
}
|
||||||
|
network, err := functions.GetParentNetwork(networkName)
|
||||||
|
if err != nil {
|
||||||
|
return models.Node{}, err
|
||||||
|
}
|
||||||
|
// delete ext clients belonging to ingress gateway
|
||||||
|
if err = DeleteGatewayExtClients(macaddress, networkName); err != nil {
|
||||||
|
return models.Node{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
node.UDPHolePunch = network.DefaultUDPHolePunch
|
||||||
node.LastModified = time.Now().Unix()
|
node.LastModified = time.Now().Unix()
|
||||||
node.IsIngressGateway = "no"
|
node.IsIngressGateway = "no"
|
||||||
node.IngressGatewayRange = ""
|
node.IngressGatewayRange = ""
|
||||||
node.PullChanges = "yes"
|
node.PullChanges = "yes"
|
||||||
|
|
||||||
key, err := functions.GetRecordKey(node.MacAddress, node.Network)
|
key, err := functions.GetRecordKey(node.MacAddress, node.Network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
@@ -721,7 +733,7 @@ func DeleteIngressGateway(network, macaddress string) (models.Node, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
}
|
}
|
||||||
err = SetNetworkNodesLastModified(network)
|
err = SetNetworkNodesLastModified(networkName)
|
||||||
return node, err
|
return node, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user