mirror of
				https://github.com/gravitl/netmaker.git
				synced 2025-10-31 12:16:29 +08:00 
			
		
		
		
	log messages
This commit is contained in:
		| @@ -203,13 +203,13 @@ func LeaveNetwork(network string) error { | |||||||
| 				local.RemoveCIDRRoute(removeIface, queryAddr, cidr) | 				local.RemoveCIDRRoute(removeIface, queryAddr, cidr) | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			logger.Log(1, "could not flush peer routes when leaving network, ", cfg.Node.Network) | 			logger.Log(1, "Could not flush peer routes when leaving network, ", cfg.Node.Network) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	err = WipeLocal(node.Network) | 	err = WipeLocal(node.Network) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Log(1, "unable to wipe local config") | 		logger.Log(1, "Network: ", node.Network, " unable to wipe local config") | ||||||
| 	} else { | 	} else { | ||||||
| 		logger.Log(1, "removed ", node.Network, " network locally") | 		logger.Log(1, "removed ", node.Network, " network locally") | ||||||
| 	} | 	} | ||||||
| @@ -232,7 +232,7 @@ func WipeLocal(network string) error { | |||||||
| 	ifacename := nodecfg.Interface | 	ifacename := nodecfg.Interface | ||||||
| 	if ifacename != "" { | 	if ifacename != "" { | ||||||
| 		if err = wireguard.RemoveConf(ifacename, true); err == nil { | 		if err = wireguard.RemoveConf(ifacename, true); err == nil { | ||||||
| 			logger.Log(1, "removed WireGuard interface: ", ifacename) | 			logger.Log(1, "Network: ", nodecfg.Network, " removed WireGuard interface: ", ifacename) | ||||||
| 		} else if strings.Contains(err.Error(), "does not exist") { | 		} else if strings.Contains(err.Error(), "does not exist") { | ||||||
| 			err = nil | 			err = nil | ||||||
| 		} | 		} | ||||||
| @@ -398,8 +398,8 @@ func SetServerInfo(cfg *config.ClientConfig) error { | |||||||
|  |  | ||||||
| func informPortChange(node *models.Node) { | func informPortChange(node *models.Node) { | ||||||
| 	if node.ListenPort == 0 { | 	if node.ListenPort == 0 { | ||||||
| 		logger.Log(0, "UDP hole punching enabled for node", node.Name) | 		logger.Log(0, "Network: ", node.Network, ". Interface: ", node.Interface, ". UDP hole punching enabled for node", node.Name) | ||||||
| 	} else { | 	} else { | ||||||
| 		logger.Log(0, "node", node.Name, "is using port", strconv.Itoa(int(node.ListenPort))) | 		logger.Log(0, "Network: ", node.Network, ". Interface: ", node.Interface, "node", node.Name, "is using port", strconv.Itoa(int(node.ListenPort))) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -110,19 +110,19 @@ func startGoRoutines(wg *sync.WaitGroup) context.CancelFunc { | |||||||
|  |  | ||||||
| // UpdateKeys -- updates private key and returns new publickey | // UpdateKeys -- updates private key and returns new publickey | ||||||
| func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error { | func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error { | ||||||
| 	logger.Log(0, "received message to update wireguard keys for network ", nodeCfg.Network) | 	logger.Log(0, "Interface: ", nodeCfg.Node.Interface, "received message to update wireguard keys for network ", nodeCfg.Network) | ||||||
| 	key, err := wgtypes.GeneratePrivateKey() | 	key, err := wgtypes.GeneratePrivateKey() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Log(0, "error generating privatekey ", err.Error()) | 		logger.Log(0, "Network: ", nodeCfg.Node.Network, "error generating privatekey ", err.Error()) | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	file := ncutils.GetNetclientPathSpecific() + nodeCfg.Node.Interface + ".conf" | 	file := ncutils.GetNetclientPathSpecific() + nodeCfg.Node.Interface + ".conf" | ||||||
| 	if err := wireguard.UpdatePrivateKey(file, key.String()); err != nil { | 	if err := wireguard.UpdatePrivateKey(file, key.String()); err != nil { | ||||||
| 		logger.Log(0, "error updating wireguard key ", err.Error()) | 		logger.Log(0, "Network: ", nodeCfg.Node.Network, ". error updating wireguard key ", err.Error()) | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	if storeErr := wireguard.StorePrivKey(key.String(), nodeCfg.Network); storeErr != nil { | 	if storeErr := wireguard.StorePrivKey(key.String(), nodeCfg.Network); storeErr != nil { | ||||||
| 		logger.Log(0, "failed to save private key", storeErr.Error()) | 		logger.Log(0, "Network: ", nodeCfg.Network, "failed to save private key", storeErr.Error()) | ||||||
| 		return storeErr | 		return storeErr | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -138,15 +138,15 @@ func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error { | |||||||
| func setSubscriptions(client mqtt.Client, nodeCfg *config.ClientConfig) { | func setSubscriptions(client mqtt.Client, nodeCfg *config.ClientConfig) { | ||||||
| 	if token := client.Subscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(NodeUpdate)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | 	if token := client.Subscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(NodeUpdate)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | ||||||
| 		if token.Error() == nil { | 		if token.Error() == nil { | ||||||
| 			logger.Log(0, "connection timeout") | 			logger.Log(0, "Network: ", nodeCfg.Node.Network, ". connection timeout") | ||||||
| 		} else { | 		} else { | ||||||
| 			logger.Log(0, token.Error().Error()) | 			logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", token.Error().Error()) | ||||||
| 		} | 		} | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	logger.Log(3, fmt.Sprintf("subscribed to node updates for node %s update/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID)) | 	logger.Log(3, fmt.Sprintf("subscribed to node updates for node %s update/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID)) | ||||||
| 	if token := client.Subscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(UpdatePeers)); token.Wait() && token.Error() != nil { | 	if token := client.Subscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(UpdatePeers)); token.Wait() && token.Error() != nil { | ||||||
| 		logger.Log(0, token.Error().Error()) | 		logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", token.Error().Error()) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	logger.Log(3, fmt.Sprintf("subscribed to peer updates for node %s peers/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID)) | 	logger.Log(3, fmt.Sprintf("subscribed to peer updates for node %s peers/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID)) | ||||||
| @@ -159,22 +159,22 @@ func unsubscribeNode(client mqtt.Client, nodeCfg *config.ClientConfig) { | |||||||
| 	var ok = true | 	var ok = true | ||||||
| 	if token := client.Unsubscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | 	if token := client.Unsubscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | ||||||
| 		if token.Error() == nil { | 		if token.Error() == nil { | ||||||
| 			logger.Log(1, "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", "connection timeout") | 			logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", "connection timeout") | ||||||
| 		} else { | 		} else { | ||||||
| 			logger.Log(1, "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error()) | 			logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error()) | ||||||
| 		} | 		} | ||||||
| 		ok = false | 		ok = false | ||||||
| 	} | 	} | ||||||
| 	if token := client.Unsubscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | 	if token := client.Unsubscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil { | ||||||
| 		if token.Error() == nil { | 		if token.Error() == nil { | ||||||
| 			logger.Log(1, "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", "connection timeout") | 			logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", "connection timeout") | ||||||
| 		} else { | 		} else { | ||||||
| 			logger.Log(1, "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error()) | 			logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error()) | ||||||
| 		} | 		} | ||||||
| 		ok = false | 		ok = false | ||||||
| 	} | 	} | ||||||
| 	if ok { | 	if ok { | ||||||
| 		logger.Log(1, "successfully unsubscribed node ", nodeCfg.Node.ID, " : ", nodeCfg.Node.Name) | 		logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "successfully unsubscribed node ", nodeCfg.Node.ID, " : ", nodeCfg.Node.Name) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -182,7 +182,7 @@ func unsubscribeNode(client mqtt.Client, nodeCfg *config.ClientConfig) { | |||||||
| // the client should subscribe to ALL nodes that exist on server locally | // the client should subscribe to ALL nodes that exist on server locally | ||||||
| func messageQueue(ctx context.Context, wg *sync.WaitGroup, cfg *config.ClientConfig) { | func messageQueue(ctx context.Context, wg *sync.WaitGroup, cfg *config.ClientConfig) { | ||||||
| 	defer wg.Done() | 	defer wg.Done() | ||||||
| 	logger.Log(0, "netclient message queue started for server: ", cfg.Server.Server) | 	logger.Log(0, "Network: ", cfg.Node.Network, ". ", "netclient message queue started for server: ", cfg.Server.Server) | ||||||
| 	client, err := setupMQTT(cfg, false) | 	client, err := setupMQTT(cfg, false) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Log(0, "unable to connect to broker", cfg.Server.Server, err.Error()) | 		logger.Log(0, "unable to connect to broker", cfg.Server.Server, err.Error()) | ||||||
| @@ -259,7 +259,7 @@ func setupMQTT(cfg *config.ClientConfig, publish bool) (mqtt.Client, error) { | |||||||
| 	opts.SetOrderMatters(true) | 	opts.SetOrderMatters(true) | ||||||
| 	opts.SetResumeSubs(true) | 	opts.SetResumeSubs(true) | ||||||
| 	opts.SetConnectionLostHandler(func(c mqtt.Client, e error) { | 	opts.SetConnectionLostHandler(func(c mqtt.Client, e error) { | ||||||
| 		logger.Log(0, "detected broker connection lost for", cfg.Server.Server) | 		logger.Log(0, "Network: ", cfg.Node.Network, ". ", "detected broker connection lost for", cfg.Server.Server) | ||||||
| 	}) | 	}) | ||||||
| 	client := mqtt.NewClient(opts) | 	client := mqtt.NewClient(opts) | ||||||
| 	var connecterr error | 	var connecterr error | ||||||
|   | |||||||
| @@ -76,7 +76,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { | |||||||
| 		if err == nil { | 		if err == nil { | ||||||
| 			cfg.Node.LocalAddress = intIP | 			cfg.Node.LocalAddress = intIP | ||||||
| 		} else { | 		} else { | ||||||
| 			logger.Log(1, "error retrieving private address: ", err.Error()) | 			logger.Log(1, "Network: ", cfg.Network, ". ", "error retrieving private address: ", err.Error()) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -88,7 +88,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { | |||||||
| 			cfg.Node.Endpoint, err = ncutils.GetPublicIP() | 			cfg.Node.Endpoint, err = ncutils.GetPublicIP() | ||||||
| 		} | 		} | ||||||
| 		if err != nil || cfg.Node.Endpoint == "" { | 		if err != nil || cfg.Node.Endpoint == "" { | ||||||
| 			logger.Log(0, "Error setting cfg.Node.Endpoint.") | 			logger.Log(0, "Network: ", cfg.Network, ". ", "Error setting cfg.Node.Endpoint.") | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -163,13 +163,13 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	if node.IsPending == "yes" { | 	if node.IsPending == "yes" { | ||||||
| 		logger.Log(0, "Node is marked as PENDING.") | 		logger.Log(0, "Network: ", cfg.Network, ". ", "Node is marked as PENDING.") | ||||||
| 		logger.Log(0, "Awaiting approval from Admin before configuring WireGuard.") | 		logger.Log(0, "Network: ", cfg.Network, ". ", "Awaiting approval from Admin before configuring WireGuard.") | ||||||
| 		if cfg.Daemon != "off" { | 		if cfg.Daemon != "off" { | ||||||
| 			return daemon.InstallDaemon() | 			return daemon.InstallDaemon() | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	logger.Log(1, "node created on remote server...updating configs") | 	logger.Log(1, "Network: ", cfg.Node.Network, ". ", "node created on remote server...updating configs") | ||||||
| 	err = ncutils.ModPort(&node) | 	err = ncutils.ModPort(&node) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| @@ -186,7 +186,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { | |||||||
| 	} | 	} | ||||||
| 	// attempt to make backup | 	// attempt to make backup | ||||||
| 	if err = config.SaveBackup(node.Network); err != nil { | 	if err = config.SaveBackup(node.Network); err != nil { | ||||||
| 		logger.Log(0, "failed to make backup, node will not auto restore if config is corrupted") | 		logger.Log(0, "Network: ", node.Network, ". ", "failed to make backup, node will not auto restore if config is corrupted") | ||||||
| 	} | 	} | ||||||
| 	logger.Log(0, "starting wireguard") | 	logger.Log(0, "starting wireguard") | ||||||
| 	err = wireguard.InitWireguard(&node, privateKey, nodeGET.Peers[:], false) | 	err = wireguard.InitWireguard(&node, privateKey, nodeGET.Peers[:], false) | ||||||
| @@ -202,7 +202,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { | |||||||
| 	} | 	} | ||||||
| 	// update server with latest data | 	// update server with latest data | ||||||
| 	if err := PublishNodeUpdate(cfg); err != nil { | 	if err := PublishNodeUpdate(cfg); err != nil { | ||||||
| 		logger.Log(0, "failed to publish update for join", err.Error()) | 		logger.Log(0, "Network: ", cfg.Network, ". ", "failed to publish update for join", err.Error()) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if cfg.Daemon == "install" || ncutils.IsFreeBSD() { | 	if cfg.Daemon == "install" || ncutils.IsFreeBSD() { | ||||||
| @@ -231,8 +231,8 @@ func formatName(node models.Node) string { | |||||||
| 		node.Name = ncutils.ShortenString(node.Name, models.MAX_NAME_LENGTH) | 		node.Name = ncutils.ShortenString(node.Name, models.MAX_NAME_LENGTH) | ||||||
| 	} | 	} | ||||||
| 	if !node.NameInNodeCharSet() || len(node.Name) > models.MAX_NAME_LENGTH { | 	if !node.NameInNodeCharSet() || len(node.Name) > models.MAX_NAME_LENGTH { | ||||||
| 		logger.Log(1, "could not properly format name: "+node.Name) | 		logger.Log(1, "Network: ", node.Network, ". ", "could not properly format name: "+node.Name) | ||||||
| 		logger.Log(1, "setting name to blank") | 		logger.Log(1, "Network: ", node.Network, ". ", "setting name to blank") | ||||||
| 		node.Name = "" | 		node.Name = "" | ||||||
| 	} | 	} | ||||||
| 	return node.Name | 	return node.Name | ||||||
|   | |||||||
| @@ -35,9 +35,9 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error { | |||||||
| 	ifacename := getRealIface(nodeCfg.Node.Interface, nodeCfg.Node.Address) | 	ifacename := getRealIface(nodeCfg.Node.Interface, nodeCfg.Node.Address) | ||||||
| 	localPort, err := GetLocalListenPort(ifacename) | 	localPort, err := GetLocalListenPort(ifacename) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Log(1, "error encountered checking local listen port: ", ifacename, err.Error()) | 		logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "error encountered checking local listen port: ", ifacename, err.Error()) | ||||||
| 	} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 { | 	} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 { | ||||||
| 		logger.Log(1, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort))) | 		logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "Interface: ", ifacename, ". local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort))) | ||||||
| 		nodeCfg.Node.LocalListenPort = localPort | 		nodeCfg.Node.LocalListenPort = localPort | ||||||
| 		err = config.ModNodeConfig(&nodeCfg.Node) | 		err = config.ModNodeConfig(&nodeCfg.Node) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|   | |||||||
| @@ -34,16 +34,16 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error { | |||||||
| 	var err error | 	var err error | ||||||
| 	localPort, err := GetLocalListenPort(nodeCfg.Node.Interface) | 	localPort, err := GetLocalListenPort(nodeCfg.Node.Interface) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Log(1, "error encountered checking local listen port for interface : ", nodeCfg.Node.Interface, err.Error()) | 		logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "error encountered checking local listen port for interface : ", nodeCfg.Node.Interface, err.Error()) | ||||||
| 	} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 { | 	} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 { | ||||||
| 		logger.Log(1, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort))) | 		logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort))) | ||||||
| 		nodeCfg.Node.LocalListenPort = localPort | 		nodeCfg.Node.LocalListenPort = localPort | ||||||
| 		err = config.ModNodeConfig(&nodeCfg.Node) | 		err = config.ModNodeConfig(&nodeCfg.Node) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		if err := PublishNodeUpdate(nodeCfg); err != nil { | 		if err := PublishNodeUpdate(nodeCfg); err != nil { | ||||||
| 			logger.Log(0, "could not publish local port change") | 			logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", "could not publish local port change") | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	return err | 	return err | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Christopher Blaha
					Christopher Blaha