Browse Source

handle host deletion in mq host updates

Abhishek Kondur 2 years ago
parent
commit
77deff063b
1 changed files with 9 additions and 2 deletions
  1. 9 2
      mq/handlers.go

+ 9 - 2
mq/handlers.go

@@ -152,8 +152,15 @@ func UpdateHost(client mqtt.Client, msg mqtt.Message) {
 				return
 			}
 		case models.DeleteHost:
-			// TODO: logic to delete host on the server
-
+			if err := logic.DisassociateAllNodesFromHost(currentHost.ID.String()); err != nil {
+				logger.Log(0, "failed to delete all nodes of host: ", currentHost.ID.String(), err.Error())
+				return
+			}
+			if err := logic.RemoveHostByID(currentHost.ID.String()); err != nil {
+				logger.Log(0, "failed to delete host: ", currentHost.ID.String(), err.Error())
+				return
+			}
+			sendPeerUpdate = true
 		}
 		if sendPeerUpdate {
 			err := PublishPeerUpdate()