mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 05:04:27 +08:00
fixed issue with delete
This commit is contained in:
parent
39cea2da6c
commit
456272d549
5 changed files with 19 additions and 39 deletions
|
@ -131,15 +131,29 @@ func (s *NodeServiceServer) Login(ctx context.Context, req *nodepb.Object) (*nod
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var found = false
|
||||
for _, value := range collection {
|
||||
if err = json.Unmarshal([]byte(value), &result); err != nil {
|
||||
continue // finish going through nodes
|
||||
}
|
||||
if result.ID == nodeID && result.Network == network {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
deletedNode, err := database.FetchRecord(database.DELETED_NODES_TABLE_NAME, nodeID)
|
||||
if err != nil {
|
||||
err = errors.New("node not found")
|
||||
return nil, err
|
||||
}
|
||||
if err = json.Unmarshal([]byte(deletedNode), &result); err != nil {
|
||||
err = errors.New("node data corrupted")
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
//compare password from request to stored password in database
|
||||
//might be able to have a common hash (certificates?) and compare those so that a password isn't passed in in plain text...
|
||||
//TODO: Consider a way of hashing the password client side before sending, or using certificates
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/gravitl/netmaker/database"
|
||||
|
@ -610,14 +611,11 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
|||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
returnSuccessResponse(w, r, nodeid+" deleted.")
|
||||
|
||||
if err != nil {
|
||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
time.Sleep(time.Second << 1)
|
||||
logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
|
||||
runUpdates(&node, false)
|
||||
returnSuccessResponse(w, r, nodeid+" deleted.")
|
||||
}
|
||||
|
||||
func runUpdates(node *models.Node, nodeUpdate bool) error {
|
||||
|
|
|
@ -216,6 +216,7 @@ func (s *NodeServiceServer) DeleteNode(ctx context.Context, req *nodepb.Object)
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
runServerPeerUpdate(&node, false)
|
||||
|
||||
return &nodepb.Object{
|
||||
|
|
|
@ -72,7 +72,7 @@ func ValidateEgressGateway(gateway models.EgressGatewayRequest) error {
|
|||
}
|
||||
empty = gateway.Interface == ""
|
||||
if empty {
|
||||
err = errors.New("Interface cannot be empty")
|
||||
err = errors.New("interface cannot be empty")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -64,39 +64,6 @@ func IsAddressInCIDR(address, cidr string) bool {
|
|||
return currentCIDR.Contains(ip)
|
||||
}
|
||||
|
||||
// DeleteNodeByMacAddress - deletes a node from database or moves into delete nodes table
|
||||
func DeleteNodeByMacAddress(node *models.Node, exterminate bool) error {
|
||||
var err error
|
||||
var key = node.ID
|
||||
if !exterminate {
|
||||
args := strings.Split(key, "###")
|
||||
node, err := GetNodeByMacAddress(args[0], args[1])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
node.Action = models.NODE_DELETE
|
||||
nodedata, err := json.Marshal(&node)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = database.Insert(key, string(nodedata), database.DELETED_NODES_TABLE_NAME)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := database.DeleteRecord(database.DELETED_NODES_TABLE_NAME, key); err != nil {
|
||||
logger.Log(2, err.Error())
|
||||
}
|
||||
}
|
||||
if err = database.DeleteRecord(database.NODES_TABLE_NAME, key); err != nil {
|
||||
return err
|
||||
}
|
||||
if servercfg.IsDNSMode() {
|
||||
SetDNS()
|
||||
}
|
||||
return removeLocalServer(node)
|
||||
}
|
||||
|
||||
// SetNetworkNodesLastModified - sets the network nodes last modified
|
||||
func SetNetworkNodesLastModified(networkName string) error {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue