-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathnode.py
More file actions
84 lines (64 loc) · 2.8 KB
/
node.py
File metadata and controls
84 lines (64 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import os
import sys
from framework.Container import Container
from NessKeys.exceptions.NodesFileDoesNotExist import NodesFileDoesNotExist
from NessKeys.exceptions.NodeNotFound import NodeNotFound
from NessKeys.exceptions.NodeError import NodeError
from NessKeys.exceptions.AuthError import AuthError
import requests
class Noder:
def __manual(self):
print("*** Node manipulation")
print("### USAGE:")
print("#### List all nodes (previously fetched from blockchain or remote node):")
print(" python node.py list")
print("#### Set current node (you will be registered in that node):")
print(" python node.py set <node-name>")
def process(self):
km = Container.KeyManager()
if len(sys.argv) == 2 and sys.argv[1].lower() == 'list':
try:
nodes = km.getNodesList()
current_node = km.getCurrentNodeName()
for node_name in nodes:
if current_node == node_name:
print ("### ==> " + node_name)
else:
print ("### " + node_name)
print(nodes[node_name])
except NodesFileDoesNotExist as e:
print("NODES LIST file not found.")
print("RUN python nodes-update.py node node-url")
elif len(sys.argv) == 3 and sys.argv[1].lower() == 'set':
try:
node_name = sys.argv[2]
if not km.isNodeInNodesList(node_name):
raise NodeNotFound(node_name)
ns = Container.NodeService()
shadowname = ns.joined(node_name)
if shadowname == False:
shadowname = ns.join(node_name)
if not km.hasMyNodes():
km.initMyNodes(node_name, shadowname)
else:
km.saveCurrentNode(node_name, shadowname)
km.changeCurrentNode(node_name)
except NodesFileDoesNotExist as e:
print("NODES LIST file not found.")
print("RUN python nodes-update.py node node-url")
except NodeNotFound as e:
print("NODE '{}' is not in nodes list".format(e.node))
except NodeError as e:
print("Error on remote node ")
except AuthError as e:
print("Responce verification error")
elif len(sys.argv) == 3 and sys.argv[1].lower() == 'info':
node_url = sys.argv[2]
ns = Container.NodeService()
print( ns.nodeInfo(node_url) )
elif len(sys.argv) == 2 and (sys.argv[1].lower() == 'help' or sys.argv[1].lower() == '-h'):
self.__manual()
else:
self.__manual()
upd = Noder()
upd.process()