set networkservers on network create

This commit is contained in:
afeiszli
2022-02-01 10:08:44 -05:00
parent 294654d950
commit c210a223ea
3 changed files with 17 additions and 15 deletions

View File

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

View File

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

View File

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