commit 384834d0c1b45b5e3ca932f5ebbfff39de3855b6
parent 6bc1968fad359c6b9ddd2e904ec0cbd84ea0da79
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Wed, 10 Jul 2024 22:13:05 +0200
Replace some REST calls with CLI calls
Diffstat:
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/ascension/ascension.py b/ascension/ascension.py
@@ -452,8 +452,8 @@ def main():
return 0
# Checks if GNUnet REST API is running
- if not ascender.session.is_running():
- ascender.logger.critical('GNUnet REST API is not reachable!')
+ #if not ascender.session.is_running():
+ # ascender.logger.critical('GNUnet REST API is not reachable!')
# Set defaults to use before we get a SOA for the first time
retry = 300
diff --git a/ascension/util/classes.py b/ascension/util/classes.py
@@ -25,6 +25,7 @@ import logging
import ipaddress
import json
import re
+import subprocess
import dns.rdatatype
import dns.resolver
@@ -86,14 +87,11 @@ class GNSZone():
"""
Creates the zone in gnunet
"""
- data = json.dumps(dict({"name": self.domain, "type": "EDDSA"}))
- response = self.gnunet_rest.post("/identity",
- data=data)
- if response.status_code == 409:
- self.logger.warning("Identity %s already exists", self.domain)
- else:
- self.logger.info("Created identity %s", self.domain)
-
+ res = subprocess.run(["gnunet-identity", "-X", "-C", self.domain])
+ if res.returncode == 201:
+ self.logger.info("Identity %s already exists", self.domain)
+ elif res.returncode != 0:
+ self.logger.error("Failed to create identity %s", self.domain)
def get_gns_zone_serial(self) -> int:
"""
@@ -129,17 +127,19 @@ class GNSZone():
:returns: str of pubkey of created or existing GNUnet zone
"""
# This is needed including the argument for subzones
- data = json.dumps(dict({"name": zonename, "type": "EDDSA"}))
- response = self.gnunet_rest.post("/identity",
- data=data)
- if response.status_code == 409:
- self.logger.warning("Identity %s already exists", zonename)
+ res = subprocess.run(["gnunet-identity", "-X", "-C", zonename])
+ if res.returncode == 201:
+ self.logger.error("Identity %s already exists", zonename)
+ elif res.returncode != 0:
+ self.logger.error("Failed to create identity %s", zonename)
+ return None
else:
self.logger.info("Created identity %s", zonename)
- response = self.gnunet_rest.get(f"/identity/name/{zonename}")
- if response.status_code == 200:
- pubkey = response.json()['pubkey']
- return pubkey
+ res = subprocess.run(["gnunet-identity", "-q", "-d", "-e", zonename], text=True)
+ if res.returncode != 0:
+ self.logger.error("Failed to read identity key for `%s'", zonename)
+ return None
+ return res.stdout.rstrip()
class DNSZone: