Browse Source

added node acls update

* added node acls update.
Farukh Khan 1 year ago
parent
commit
607e7e19d0
1 changed files with 10 additions and 1 deletions
  1. 10 1
      controllers/hosts.go

+ 10 - 1
controllers/hosts.go

@@ -479,7 +479,7 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
 		return
 		return
 	}
 	}
 
 
-	// Create EMQX creds if not found
+	// Create EMQX creds and ACLs if not found
 	if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
 	if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
 		if err := mq.CreateEmqxUser(host.ID.String(), host.HostPass, false); err != nil {
 		if err := mq.CreateEmqxUser(host.ID.String(), host.HostPass, false); err != nil {
 			slog.Error("failed to create host credentials for EMQX: ", err.Error())
 			slog.Error("failed to create host credentials for EMQX: ", err.Error())
@@ -487,6 +487,15 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
 			if err := mq.CreateHostACL(host.ID.String(), servercfg.GetServerInfo().Server); err != nil {
 			if err := mq.CreateHostACL(host.ID.String(), servercfg.GetServerInfo().Server); err != nil {
 				slog.Error("failed to add host ACL rules to EMQX: ", err.Error())
 				slog.Error("failed to add host ACL rules to EMQX: ", err.Error())
 			}
 			}
+			for _, nodeID := range host.Nodes {
+				if node, err := logic.GetNodeByID(nodeID); err == nil {
+					if err = mq.AppendNodeUpdateACL(host.ID.String(), node.Network, node.ID.String(), servercfg.GetServer()); err != nil {
+						slog.Error("failed to add ACLs for EMQX node", "error", err)
+					}
+				} else {
+					slog.Error("failed to get node", "nodeid", nodeID, "error", err)
+				}
+			}
 		}
 		}
 	}
 	}