Browse Source

Merge pull request #2013 from gravitl/GRA-1160-default-hosts-on-net-create

added logic to add default hosts to networks upon network creation
dcarns 2 years ago
parent
commit
cb89ecd995
1 changed files with 18 additions and 1 deletions
  1. 18 1
      controllers/network.go

+ 18 - 1
controllers/network.go

@@ -408,7 +408,24 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
 			network.NetID, err.Error()))
 	}
 
-	// TODO: Send message notifying host of new peers/network conf
+	defaultHosts := logic.GetDefaultHosts()
+	for i := range defaultHosts {
+		currHost := &defaultHosts[i]
+		newNode, err := logic.UpdateHostNetwork(currHost, network.NetID, true)
+		if err != nil {
+			logger.Log(0, r.Header.Get("user"), "failed to add host to network:", currHost.ID.String(), network.NetID, err.Error())
+			logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
+			return
+		}
+		logger.Log(1, "added new node", newNode.ID.String(), "to host", currHost.Name)
+		if err = mq.HostUpdate(&models.HostUpdate{
+			Action: models.JoinHostToNetwork,
+			Host:   *currHost,
+			Node:   *newNode,
+		}); err != nil {
+			logger.Log(0, r.Header.Get("user"), "failed to add host to network:", currHost.ID.String(), network.NetID, err.Error())
+		}
+	}
 
 	logger.Log(1, r.Header.Get("user"), "created network", network.NetID)
 	w.WriteHeader(http.StatusOK)