mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
addressing review comments
This commit is contained in:
@@ -431,11 +431,10 @@ func uncordonNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "uncordoned node", node.Name)
|
logger.Log(1, r.Header.Get("user"), "uncordoned node", node.Name)
|
||||||
@@ -464,11 +463,10 @@ func createEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "created egress gateway on node", gateway.NodeID, "on network", gateway.NetID)
|
logger.Log(1, r.Header.Get("user"), "created egress gateway on node", gateway.NodeID, "on network", gateway.NetID)
|
||||||
@@ -491,11 +489,10 @@ func deleteEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "deleted egress gateway", nodeid, "on network", netid)
|
logger.Log(1, r.Header.Get("user"), "deleted egress gateway", nodeid, "on network", netid)
|
||||||
@@ -517,11 +514,10 @@ func createIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "created ingress gateway on node", nodeid, "on network", netid)
|
logger.Log(1, r.Header.Get("user"), "created ingress gateway on node", nodeid, "on network", netid)
|
||||||
@@ -540,11 +536,10 @@ func deleteIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "deleted ingress gateway", nodeid)
|
logger.Log(1, r.Header.Get("user"), "deleted ingress gateway", nodeid)
|
||||||
@@ -619,11 +614,11 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
json.NewEncoder(w).Encode(newNode)
|
json.NewEncoder(w).Encode(newNode)
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&newNode); err != nil {
|
if err := mq.NodeUpdate(&newNode); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if logic.ShouldPeersUpdate(&node, &newNode) {
|
if logic.ShouldPeersUpdate(&node, &newNode) {
|
||||||
if err := mq.UpdatePeers(&newNode); err != nil {
|
if err := mq.UpdatePeers(&newNode); err != nil {
|
||||||
logger.Log(1, "error publishing peer update after node update"+err.Error())
|
logger.Log(1, "error publishing peer update after node update", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
@@ -655,7 +650,7 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
node.Action = models.NODE_DELETE
|
node.Action = models.NODE_DELETE
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node delete "+err.Error())
|
logger.Log(1, "error publishing node delete ", err.Error())
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
|
logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
|
||||||
|
@@ -94,7 +94,7 @@ func (s *NodeServiceServer) CreateNode(ctx context.Context, req *nodepb.Object)
|
|||||||
// notify other nodes on network of new peer
|
// notify other nodes on network of new peer
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(0, "failed to inform peers of new node "+err.Error())
|
logger.Log(0, "failed to inform peers of new node ", err.Error())
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ func (s *NodeServiceServer) DeleteNode(ctx context.Context, req *nodepb.Object)
|
|||||||
// notify other nodes on network of deleted peer
|
// notify other nodes on network of deleted peer
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(0, "failed to inform peers of deleted node "+err.Error())
|
logger.Log(0, "failed to inform peers of deleted node ", err.Error())
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@@ -32,11 +32,10 @@ func createRelay(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "created relay on node", relay.NodeID, "on network", relay.NetID)
|
logger.Log(1, r.Header.Get("user"), "created relay on node", relay.NodeID, "on network", relay.NetID)
|
||||||
@@ -59,11 +58,10 @@ func deleteRelay(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update", err.Error())
|
||||||
}
|
}
|
||||||
if err := mq.UpdatePeers(&node); err != nil {
|
if err := mq.UpdatePeers(&node); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "deleted relay server", nodeid, "on network", netid)
|
logger.Log(1, r.Header.Get("user"), "deleted relay server", nodeid, "on network", netid)
|
||||||
|
@@ -12,6 +12,7 @@ import (
|
|||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// GetPeerUpdate - gets a wireguard peer config for each peer of a node
|
||||||
func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
|
func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
|
||||||
var peerUpdate models.PeerUpdate
|
var peerUpdate models.PeerUpdate
|
||||||
var peers []wgtypes.PeerConfig
|
var peers []wgtypes.PeerConfig
|
||||||
@@ -60,6 +61,7 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
|
|||||||
return peerUpdate, nil
|
return peerUpdate, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllowedIPs - calculates the wireguard allowedip field for a peer of a node based on the peer and node settings
|
||||||
func GetAllowedIPs(node, peer *models.Node) []net.IPNet {
|
func GetAllowedIPs(node, peer *models.Node) []net.IPNet {
|
||||||
var allowedips []net.IPNet
|
var allowedips []net.IPNet
|
||||||
var gateways []string
|
var gateways []string
|
||||||
|
34
mq/mq.go
34
mq/mq.go
@@ -14,14 +14,14 @@ import (
|
|||||||
"github.com/gravitl/netmaker/servercfg"
|
"github.com/gravitl/netmaker/servercfg"
|
||||||
)
|
)
|
||||||
|
|
||||||
// default message handler - only called in GetDebug == true
|
// DefaultHandler default message queue handler - only called when GetDebug == true
|
||||||
var DefaultHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
var DefaultHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
||||||
logger.Log(0, "MQTT Message: Topic: "+string(msg.Topic())+" Message: "+string(msg.Payload()))
|
logger.Log(0, "MQTT Message: Topic: ", string(msg.Topic()), " Message: ", string(msg.Payload()))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ping message Handler -- handles ping topic from client nodes
|
// Ping message Handler -- handles ping topic from client nodes
|
||||||
var Ping mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
var Ping mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
||||||
logger.Log(0, "Ping Handler: "+msg.Topic())
|
logger.Log(0, "Ping Handler: ", msg.Topic())
|
||||||
go func() {
|
go func() {
|
||||||
id, err := GetID(msg.Topic())
|
id, err := GetID(msg.Topic())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -30,7 +30,7 @@ var Ping mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
|||||||
}
|
}
|
||||||
node, err := logic.GetNodeByID(id)
|
node, err := logic.GetNodeByID(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "mq-ping error getting node: "+err.Error())
|
logger.Log(0, "mq-ping error getting node: ", err.Error())
|
||||||
record, err := database.FetchRecord(database.NODES_TABLE_NAME, id)
|
record, err := database.FetchRecord(database.NODES_TABLE_NAME, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "error reading database ", err.Error())
|
logger.Log(0, "error reading database ", err.Error())
|
||||||
@@ -42,7 +42,7 @@ var Ping mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
|||||||
}
|
}
|
||||||
node.SetLastCheckIn()
|
node.SetLastCheckIn()
|
||||||
if err := logic.UpdateNode(&node, &node); err != nil {
|
if err := logic.UpdateNode(&node, &node); err != nil {
|
||||||
logger.Log(0, "error updating node "+err.Error())
|
logger.Log(0, "error updating node ", err.Error())
|
||||||
}
|
}
|
||||||
logger.Log(0, "ping processed")
|
logger.Log(0, "ping processed")
|
||||||
// --TODO --set client version once feature is implemented.
|
// --TODO --set client version once feature is implemented.
|
||||||
@@ -55,26 +55,26 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
|
|||||||
go func() {
|
go func() {
|
||||||
id, err := GetID(msg.Topic())
|
id, err := GetID(msg.Topic())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "error getting node.ID sent on "+msg.Topic()+" "+err.Error())
|
logger.Log(1, "error getting node.ID sent on ", msg.Topic(), err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Log(1, "Update Node Handler"+id)
|
logger.Log(1, "Update Node Handler", id)
|
||||||
var newNode models.Node
|
var newNode models.Node
|
||||||
if err := json.Unmarshal(msg.Payload(), &newNode); err != nil {
|
if err := json.Unmarshal(msg.Payload(), &newNode); err != nil {
|
||||||
logger.Log(1, "error unmarshaling payload "+err.Error())
|
logger.Log(1, "error unmarshaling payload ", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
currentNode, err := logic.GetNodeByID(newNode.ID)
|
currentNode, err := logic.GetNodeByID(newNode.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "error getting node "+newNode.ID+" "+err.Error())
|
logger.Log(1, "error getting node ", newNode.ID, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err := logic.UpdateNode(¤tNode, &newNode); err != nil {
|
if err := logic.UpdateNode(¤tNode, &newNode); err != nil {
|
||||||
logger.Log(1, "error saving node"+err.Error())
|
logger.Log(1, "error saving node", err.Error())
|
||||||
}
|
}
|
||||||
if logic.ShouldPeersUpdate(¤tNode, &newNode) {
|
if logic.ShouldPeersUpdate(¤tNode, &newNode) {
|
||||||
if err := PublishPeerUpdate(client, &newNode); err != nil {
|
if err := PublishPeerUpdate(client, &newNode); err != nil {
|
||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update ", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -85,22 +85,22 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
|
|||||||
func PublishPeerUpdate(client mqtt.Client, newNode *models.Node) error {
|
func PublishPeerUpdate(client mqtt.Client, newNode *models.Node) error {
|
||||||
networkNodes, err := logic.GetNetworkNodes(newNode.Network)
|
networkNodes, err := logic.GetNetworkNodes(newNode.Network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "err getting Network Nodes"+err.Error())
|
logger.Log(1, "err getting Network Nodes", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, node := range networkNodes {
|
for _, node := range networkNodes {
|
||||||
peerUpdate, err := logic.GetPeerUpdate(&node)
|
peerUpdate, err := logic.GetPeerUpdate(&node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "error getting peer update for node "+node.ID+" "+err.Error())
|
logger.Log(1, "error getting peer update for node ", node.ID, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
data, err := json.Marshal(&peerUpdate)
|
data, err := json.Marshal(&peerUpdate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(2, "error marshaling peer update "+err.Error())
|
logger.Log(2, "error marshaling peer update ", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if token := client.Publish("update/peers/"+node.ID, 0, false, data); token.Wait() && token.Error() != nil {
|
if token := client.Publish("update/peers/"+node.ID, 0, false, data); token.Wait() && token.Error() != nil {
|
||||||
logger.Log(2, "error publishing peer update to peer "+node.ID+" "+token.Error().Error())
|
logger.Log(2, "error publishing peer update to peer ", node.ID, token.Error().Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -125,11 +125,11 @@ func NodeUpdate(node *models.Node) error {
|
|||||||
defer client.Disconnect(250)
|
defer client.Disconnect(250)
|
||||||
data, err := json.Marshal(node)
|
data, err := json.Marshal(node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(2, "error marshalling node update "+err.Error())
|
logger.Log(2, "error marshalling node update ", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if token := client.Publish("update/"+node.ID, 0, false, data); token.Wait() && token.Error() != nil {
|
if token := client.Publish("update/"+node.ID, 0, false, data); token.Wait() && token.Error() != nil {
|
||||||
logger.Log(2, "error publishing peer update to peer "+node.ID+" "+token.Error().Error())
|
logger.Log(2, "error publishing peer update to peer ", node.ID, token.Error().Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@@ -10,6 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const MAC_SERVICE_NAME = "com.gravitl.netclient"
|
const MAC_SERVICE_NAME = "com.gravitl.netclient"
|
||||||
|
const EXEC_DIR = "/sbin/"
|
||||||
|
|
||||||
// SetupMacDaemon - Creates a daemon service from the netclient under LaunchAgents for MacOS
|
// SetupMacDaemon - Creates a daemon service from the netclient under LaunchAgents for MacOS
|
||||||
func SetupMacDaemon(interval string) error {
|
func SetupMacDaemon(interval string) error {
|
||||||
@@ -20,8 +21,8 @@ func SetupMacDaemon(interval string) error {
|
|||||||
}
|
}
|
||||||
binarypath := dir + "/netclient"
|
binarypath := dir + "/netclient"
|
||||||
|
|
||||||
if !ncutils.FileExists("/sbin/netclient") {
|
if !ncutils.FileExists(EXEC_DIR + "netclient") {
|
||||||
err = ncutils.Copy(binarypath, "/sbin/netclient")
|
err = ncutils.Copy(binarypath, EXEC_DIR+"netclient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
@@ -51,7 +52,7 @@ func CleanupMac() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
os.RemoveAll(ncutils.GetNetclientPath())
|
os.RemoveAll(ncutils.GetNetclientPath())
|
||||||
os.Remove("/sbin/netclient")
|
os.Remove(EXEC_DIR + "netclient")
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateMacService - Creates the mac service file for LaunchDaemons
|
// CreateMacService - Creates the mac service file for LaunchDaemons
|
||||||
|
@@ -10,6 +10,8 @@ import (
|
|||||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const EXEC_DIR = "/usr/sbin/"
|
||||||
|
|
||||||
// SetupSystemDDaemon - sets system daemon for supported machines
|
// SetupSystemDDaemon - sets system daemon for supported machines
|
||||||
func SetupSystemDDaemon(interval string) error {
|
func SetupSystemDDaemon(interval string) error {
|
||||||
|
|
||||||
@@ -31,8 +33,8 @@ func SetupSystemDDaemon(interval string) error {
|
|||||||
}
|
}
|
||||||
//install binary
|
//install binary
|
||||||
//should check if the existing binary is the corect version -- for now only copy if file doesn't exist
|
//should check if the existing binary is the corect version -- for now only copy if file doesn't exist
|
||||||
if !ncutils.FileExists("/usr/sbin/netclient") {
|
if !ncutils.FileExists(EXEC_DIR + "netclient") {
|
||||||
err = ncutils.Copy(binarypath, "/usr/sbin/netclient")
|
err = ncutils.Copy(binarypath, EXEC_DIR+"netclient")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
@@ -61,7 +63,7 @@ WantedBy=multi-user.target
|
|||||||
}
|
}
|
||||||
_, _ = ncutils.RunCmd("systemctl enable netclient.service", true)
|
_, _ = ncutils.RunCmd("systemctl enable netclient.service", true)
|
||||||
_, _ = ncutils.RunCmd("systemctl daemon-reload", true)
|
_, _ = ncutils.RunCmd("systemctl daemon-reload", true)
|
||||||
_, _ = ncutils.RunCmd("systemctl start netclient.server", true)
|
_, _ = ncutils.RunCmd("systemctl start netclient.service", true)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +71,7 @@ func CleanupLinux() {
|
|||||||
if err := os.RemoveAll(ncutils.GetNetclientPath()); err != nil {
|
if err := os.RemoveAll(ncutils.GetNetclientPath()); err != nil {
|
||||||
ncutils.PrintLog("Removing netclient configs: "+err.Error(), 1)
|
ncutils.PrintLog("Removing netclient configs: "+err.Error(), 1)
|
||||||
}
|
}
|
||||||
if err := os.Remove("/usr/sbin/netclient"); err != nil {
|
if err := os.Remove(EXEC_DIR + "netclient"); err != nil {
|
||||||
ncutils.PrintLog("Removing netclient binary: "+err.Error(), 1)
|
ncutils.PrintLog("Removing netclient binary: "+err.Error(), 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user