Просмотр исходного кода

bin/deg: remove JsonRPC class to actually use src/rpc.py and handle its connection errors

dasman 2 лет назад
Родитель
Сommit
528e03302a
1 измененных файлов с 4 добавлено и 62 удалено
  1. 4 62
      bin/deg/deg

+ 4 - 62
bin/deg/deg

@@ -23,70 +23,13 @@ import urwid as u
 import networkx as nx
 from datetime import datetime
 # import matplotlib.pyplot as plt
+import src.rpc
 import src.util
 
 from os.path import join
 
 resolved = True
 
-class JsonRpc:
-
-    async def start(self, server, port):
-        reader, writer = await asyncio.open_connection(server, port, limit=1024 * 128)
-        self.reader = reader
-        self.writer = writer
-
-    async def stop(self):
-        self.writer.close()
-        await self.writer.wait_closed()
-
-    async def _make_request(self, method, params):
-        ident = random.randint(0, 2**16)
-        #print(ident)
-        request = {
-            "jsonrpc": "2.0",
-            "method": method,
-            "params": params,
-            "id": ident,
-        }
-
-        message = json.dumps(request) + "\n"
-        self.writer.write(message.encode())
-        await self.writer.drain()
-
-        data = await self.reader.readline()
-        message = data.decode().strip()
-        response = json.loads(message)
-        #print(response)
-        return response
-
-    async def _subscribe(self, method, params):
-        ident = random.randint(0, 2**16)
-        request = {
-            "jsonrpc": "2.0",
-            "method": method,
-            "params": params,
-            "id": ident,
-        }
-
-        message = json.dumps(request) + "\n"
-        self.writer.write(message.encode())
-        await self.writer.drain()
-        #print("Subscribed")
-
-    async def ping(self):
-        return await self._make_request("ping", [])
-
-    async def dnet_switch(self, state):
-        return await self._make_request("dnet.switch", [state])
-
-    async def dnet_subscribe_events(self):
-        return await self._subscribe("dnet.subscribe_events", [])
-    
-    async def deg_switch(self, state):
-        return await self._make_request("deg.switch", [state])
-
-
 def check_multi_ev_in_layer(dag_dict, dag):
     gen = list(nx.topological_generations(dag))
     for i in gen:
@@ -99,8 +42,6 @@ def check_multi_ev_in_layer(dag_dict, dag):
             else:
                 return i[1]
 
-
-
 def graph(event, dag, x):
     global resolved
     merge = len(list(dag.predecessors(event['hash']))) > 1
@@ -284,13 +225,14 @@ class App(object):
 async def recreate_dag(config):
     host = config['host']
     port = config['port']
-    rpc = JsonRpc()
+    rpc = src.rpc.JsonRpc()
     while True:
         try:
             await rpc.start(host, port)
             break
         except OSError:
-            pass
+            print(f"Error: Connection Refused to '{host}:{port}', Either because the daemon is down, is currently syncing or wrong url.")
+            sys.exit(-1)
 
     await rpc.deg_switch(True)
     await rpc.deg_switch(False)