Browse Source

create emqx credentials for host upon creation

Anish Mukherjee 2 years ago
parent
commit
314af6b51d
2 changed files with 7 additions and 10 deletions
  1. 7 1
      controllers/node.go
  2. 0 9
      mq/handlers.go

+ 7 - 1
controllers/node.go

@@ -564,6 +564,13 @@ func createNode(w http.ResponseWriter, r *http.Request) {
 	data.Node.Server = servercfg.GetServer()
 	if !logic.HostExists(&data.Host) {
 		logic.CheckHostPorts(&data.Host)
+		if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
+			// create EMQX credentials for host if it doesn't exists
+			if err := mq.CreateEmqxUser(data.Host.ID.String(), data.Host.HostPass, false); err != nil {
+				logger.Log(0, "failed to add host credentials to EMQX: ", data.Host.ID.String(), err.Error())
+				return
+			}
+		}
 	}
 	if err := logic.CreateHost(&data.Host); err != nil {
 		if errors.Is(err, logic.ErrHostExists) {
@@ -589,7 +596,6 @@ func createNode(w http.ResponseWriter, r *http.Request) {
 			return
 		}
 	}
-
 	err = logic.AssociateNodeToHost(&data.Node, &data.Host)
 	if err != nil {
 		logger.Log(0, r.Header.Get("user"),

+ 0 - 9
mq/handlers.go

@@ -145,15 +145,6 @@ func UpdateHost(client mqtt.Client, msg mqtt.Message) {
 		var sendPeerUpdate bool
 		switch hostUpdate.Action {
 		case models.UpdateHost:
-			if servercfg.GetBrokerType() == servercfg.EmqxBrokerType {
-				// create EMQX credentials for host if it doesn't exists
-				if _, err := logic.GetHost(currentHost.ID.String()); err != nil {
-					if err := CreateEmqxUser(currentHost.ID.String(), currentHost.HostPass, false); err != nil {
-						logger.Log(0, "failed to add host credentials to EMQX: ", currentHost.ID.String(), err.Error())
-						return
-					}
-				}
-			}
 			sendPeerUpdate = logic.UpdateHostFromClient(&hostUpdate.Host, currentHost)
 			err := logic.UpsertHost(currentHost)
 			if err != nil {