mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-23 08:46:05 +08:00
Merge pull request #1631 from gravitl/bugfix_mq_dyn_sec
delete mq client for node when delete api recieved from node
This commit is contained in:
commit
a14e83afa9
|
@ -256,6 +256,7 @@ func authorize(nodesAllowed, networkCheck bool, authNetwork string, next http.Ha
|
|||
logic.ReturnErrorResponse(w, r, errorResponse)
|
||||
return
|
||||
}
|
||||
r.Header.Set("requestfrom", "")
|
||||
//check if node instead of user
|
||||
if nodesAllowed {
|
||||
// TODO --- should ensure that node is only operating on itself
|
||||
|
@ -1036,6 +1037,7 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
|||
// get params
|
||||
var params = mux.Vars(r)
|
||||
var nodeid = params["nodeid"]
|
||||
fromNode := r.Header.Get("requestfrom") == "node"
|
||||
var node, err = logic.GetNodeByID(nodeid)
|
||||
if err != nil {
|
||||
logger.Log(0, r.Header.Get("user"),
|
||||
|
@ -1060,29 +1062,28 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
|||
//send update to node to be deleted before deleting on server otherwise message cannot be sent
|
||||
node.Action = models.NODE_DELETE
|
||||
|
||||
err = logic.DeleteNodeByID(&node, false)
|
||||
err = logic.DeleteNodeByID(&node, fromNode)
|
||||
if err != nil {
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
// deletes node related role and client
|
||||
event := mq.MqDynsecPayload{
|
||||
Commands: []mq.MqDynSecCmd{
|
||||
{
|
||||
Command: mq.DeleteRoleCmd,
|
||||
RoleName: fmt.Sprintf("%s-%s", "Node", nodeid),
|
||||
if fromNode {
|
||||
// deletes node related role and client
|
||||
event := mq.MqDynsecPayload{
|
||||
Commands: []mq.MqDynSecCmd{
|
||||
{
|
||||
Command: mq.DeleteClientCmd,
|
||||
Username: nodeid,
|
||||
},
|
||||
},
|
||||
{
|
||||
Command: mq.DeleteClientCmd,
|
||||
Username: nodeid,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if err := mq.PublishEventToDynSecTopic(event); err != nil {
|
||||
logger.Log(0, fmt.Sprintf("failed to send DynSec command [%v]: %v",
|
||||
event.Commands, err.Error()))
|
||||
}
|
||||
}
|
||||
|
||||
if err := mq.PublishEventToDynSecTopic(event); err != nil {
|
||||
logger.Log(0, fmt.Sprintf("failed to send DynSec command [%v]: %v",
|
||||
event.Commands, err.Error()))
|
||||
}
|
||||
if servercfg.Is_EE {
|
||||
if err = logic.EnterpriseResetAllPeersFailovers(node.ID, node.Network); err != nil {
|
||||
logger.Log(0, "failed to reset failover lists during node delete for node", node.Name, node.Network)
|
||||
|
|
Loading…
Reference in a new issue