diff --git a/src/dashboard.py b/src/dashboard.py index 5ab5f5d2..e5d8e2b3 100644 --- a/src/dashboard.py +++ b/src/dashboard.py @@ -791,12 +791,8 @@ def API_addPeers(configName): break if len(keyPairs) == 0 or (bulkAdd and len(keyPairs) != bulkAddAmount): return ResponseObject(False, "Generating key pairs by bulk failed") - status, result = config.addPeers(keyPairs) - # DashboardWebHooks.RunWebHook('peer_created', { - # "configuration": config.Name, - # "peers": list(map(lambda p : p['id'], keyPairs)) - # }) - return ResponseObject(status=status, message=result['message'], data=result['peers']) + status, addedPeers, message = config.addPeers(keyPairs) + return ResponseObject(status=status, message=message, data=addedPeers) else: if config.searchPeer(public_key)[0] is True: @@ -816,14 +812,6 @@ def API_addPeers(configName): # Check if provided pubkey match provided private key if public_key != genPub: return ResponseObject(False, "Provided Public Key does not match provided Private Key") - - # if len(public_key) == 0 and len(private_key) == 0: - # private_key = GenerateWireguardPrivateKey()[1] - # public_key = GenerateWireguardPublicKey(private_key)[1] - # elif len(public_key) == 0 and len(private_key) > 0: - # public_key = GenerateWireguardPublicKey(private_key)[1] - - if len(allowed_ips) == 0: if ipStatus: for subnet in availableIps.keys(): @@ -846,7 +834,7 @@ def API_addPeers(configName): if not found: return ResponseObject(False, f"This IP is not available: {i}") - status, result = config.addPeers([ + status, addedPeers, message = config.addPeers([ { "name": name, "id": public_key, @@ -860,14 +848,11 @@ def API_addPeers(configName): "advanced_security": "off" }] ) - # DashboardWebHooks.RunWebHook('peer_created', { - # "configuration": config.Name, - # "peers": [{"id": public_key}] - # }) - return ResponseObject(status=status, message=result['message'], data=result['peers']) + return ResponseObject(status=status, message=message, data=addedPeers) except Exception as e: - app.logger.error("Add peers failed", data, exc_info=e) - return ResponseObject(False, "Add peers failed. Please see data for specific issue") + app.logger.error("Add peers failed", e) + return ResponseObject(False, + f"Add peers failed. Reason: {message}") return ResponseObject(False, "Configuration does not exist") diff --git a/src/modules/AmneziaWireguardConfiguration.py b/src/modules/AmneziaWireguardConfiguration.py index 8223d01f..bfc9b17b 100644 --- a/src/modules/AmneziaWireguardConfiguration.py +++ b/src/modules/AmneziaWireguardConfiguration.py @@ -248,7 +248,7 @@ class AmneziaWireguardConfiguration(WireguardConfiguration): for i in existingPeers: self.Peers.append(AmneziaWGPeer(i, self)) - def addPeers(self, peers: list) -> tuple[bool, dict]: + def addPeers(self, peers: list) -> tuple[bool, list, str]: result = { "message": None, "peers": [] @@ -305,10 +305,10 @@ class AmneziaWireguardConfiguration(WireguardConfiguration): "configuration": self.Name, "peers": list(map(lambda k : k['id'], peers)) }) - return True, result except Exception as e: - result['message'] = str(e) - return False, result + current_app.logger.error("Add peers error", e) + return False, [], str(e) + return True, result['peers'], "" def getRestrictedPeers(self): self.RestrictedPeers = [] diff --git a/src/modules/WireguardConfiguration.py b/src/modules/WireguardConfiguration.py index a58829ed..76da5f70 100644 --- a/src/modules/WireguardConfiguration.py +++ b/src/modules/WireguardConfiguration.py @@ -512,11 +512,8 @@ class WireguardConfiguration: "time": datetime.now() }) ) - - - - - def addPeers(self, peers: list) -> tuple[bool, dict]: + + def addPeers(self, peers: list) -> tuple[bool, list, str]: result = { "message": None, "peers": [] @@ -571,10 +568,10 @@ class WireguardConfiguration: "configuration": self.Name, "peers": list(map(lambda k : k['id'], peers)) }) - return True, result except Exception as e: - result['message'] = str(e) - return False, result + current_app.logger.error("Add peers error", e) + return False, [], str(e) + return True, result['peers'], "" def searchPeer(self, publicKey): for i in self.Peers: