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)
|
logic.ReturnErrorResponse(w, r, errorResponse)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
r.Header.Set("requestfrom", "")
|
||||||
//check if node instead of user
|
//check if node instead of user
|
||||||
if nodesAllowed {
|
if nodesAllowed {
|
||||||
// TODO --- should ensure that node is only operating on itself
|
// TODO --- should ensure that node is only operating on itself
|
||||||
|
@ -1036,6 +1037,7 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
||||||
// get params
|
// get params
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
var nodeid = params["nodeid"]
|
var nodeid = params["nodeid"]
|
||||||
|
fromNode := r.Header.Get("requestfrom") == "node"
|
||||||
var node, err = logic.GetNodeByID(nodeid)
|
var node, err = logic.GetNodeByID(nodeid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, r.Header.Get("user"),
|
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
|
//send update to node to be deleted before deleting on server otherwise message cannot be sent
|
||||||
node.Action = models.NODE_DELETE
|
node.Action = models.NODE_DELETE
|
||||||
|
|
||||||
err = logic.DeleteNodeByID(&node, false)
|
err = logic.DeleteNodeByID(&node, fromNode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// deletes node related role and client
|
if fromNode {
|
||||||
event := mq.MqDynsecPayload{
|
// deletes node related role and client
|
||||||
Commands: []mq.MqDynSecCmd{
|
event := mq.MqDynsecPayload{
|
||||||
{
|
Commands: []mq.MqDynSecCmd{
|
||||||
Command: mq.DeleteRoleCmd,
|
{
|
||||||
RoleName: fmt.Sprintf("%s-%s", "Node", nodeid),
|
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 servercfg.Is_EE {
|
||||||
if err = logic.EnterpriseResetAllPeersFailovers(node.ID, node.Network); err != nil {
|
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)
|
logger.Log(0, "failed to reset failover lists during node delete for node", node.Name, node.Network)
|
||||||
|
|
Loading…
Reference in a new issue