Browse Source

set networkservers on network create

afeiszli 3 years ago
parent
commit
c210a223ea
3 changed files with 17 additions and 15 deletions
  1. 3 1
      controllers/network.go
  2. 13 13
      logic/server.go
  3. 1 1
      serverctl/serverctl.go

+ 3 - 1
controllers/network.go

@@ -225,7 +225,8 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
 	}
 
 	if servercfg.IsClientMode() != "off" {
-		err = logic.ServerJoin(&network)
+		var node models.Node
+		node, err = logic.ServerJoin(&network)
 		if err != nil {
 			logic.DeleteNetwork(network.NetID)
 			if err == nil {
@@ -234,6 +235,7 @@ func createNetwork(w http.ResponseWriter, r *http.Request) {
 			returnErrorResponse(w, r, formatError(err, "internal"))
 			return
 		}
+		getServerAddrs(&node)
 	}
 
 	logger.Log(1, r.Header.Get("user"), "created network", network.NetID)

+ 13 - 13
logic/server.go

@@ -26,10 +26,10 @@ const KUBERNETES_LISTEN_PORT = 31821
 const KUBERNETES_SERVER_MTU = 1024
 
 // ServerJoin - responsible for joining a server to a network
-func ServerJoin(networkSettings *models.Network) error {
-
+func ServerJoin(networkSettings *models.Network) (models.Node, error) {
+	var returnNode models.Node
 	if networkSettings == nil || networkSettings.NetID == "" {
-		return errors.New("no network provided")
+		return returnNode, errors.New("no network provided")
 	}
 
 	var err error
@@ -70,7 +70,7 @@ func ServerJoin(networkSettings *models.Network) error {
 		}
 		if err != nil || node.Endpoint == "" {
 			logger.Log(0, "Error setting server node Endpoint.")
-			return err
+			return returnNode, err
 		}
 	}
 
@@ -81,7 +81,7 @@ func ServerJoin(networkSettings *models.Network) error {
 		wgPrivatekey, err := wgtypes.GeneratePrivateKey()
 		if err != nil {
 			logger.Log(1, err.Error())
-			return err
+			return returnNode, err
 		}
 		privateKey = wgPrivatekey.String()
 		node.PublicKey = wgPrivatekey.PublicKey().String()
@@ -91,11 +91,11 @@ func ServerJoin(networkSettings *models.Network) error {
 
 	logger.Log(2, "adding a server instance on network", node.Network)
 	if err != nil {
-		return err
+		return returnNode, err
 	}
 	err = SetNetworkNodesLastModified(node.Network)
 	if err != nil {
-		return err
+		return returnNode, err
 	}
 
 	// get free port based on returned default listen port
@@ -110,30 +110,30 @@ func ServerJoin(networkSettings *models.Network) error {
 	if node.IsLocal == "yes" && node.LocalRange != "" {
 		node.LocalAddress, err = ncutils.GetLocalIP(node.LocalRange)
 		if err != nil {
-			return err
+			return returnNode, err
 		}
 		node.Endpoint = node.LocalAddress
 	}
 
 	if err = CreateNode(node); err != nil {
-		return err
+		return returnNode, err
 	}
 	if err = StorePrivKey(node.ID, privateKey); err != nil {
-		return err
+		return returnNode, err
 	}
 
 	peers, hasGateway, gateways, err := GetServerPeers(node)
 	if err != nil && !ncutils.IsEmptyRecord(err) {
 		logger.Log(1, "failed to retrieve peers")
-		return err
+		return returnNode, err
 	}
 
 	err = initWireguard(node, privateKey, peers[:], hasGateway, gateways[:])
 	if err != nil {
-		return err
+		return returnNode, err
 	}
 
-	return nil
+	return *node, nil
 }
 
 // ServerUpdate - updates the server

+ 1 - 1
serverctl/serverctl.go

@@ -52,7 +52,7 @@ func SyncServerNetwork(network string) error {
 		}
 		return logic.ServerUpdate(&serverNode, true)
 	} else if !ifaceExists {
-		err := logic.ServerJoin(&serverNetworkSettings)
+		_, err := logic.ServerJoin(&serverNetworkSettings)
 		if err != nil {
 			if err == nil {
 				err = errors.New("network add failed for " + serverNetworkSettings.NetID)