Merge branch 'rpc-to-manager' into develop
This commit is contained in:
commit
88e9cf87cf
@ -156,22 +156,26 @@ class ServerManager(LoggedClass):
|
|||||||
return self.irc.peers
|
return self.irc.peers
|
||||||
|
|
||||||
def session_count(self):
|
def session_count(self):
|
||||||
return len(self.sessions)
|
'''Returns a dictionary.'''
|
||||||
|
active = len(s for s in self.sessions if s.send_count)
|
||||||
|
total = len(self.sessions)
|
||||||
|
return {'active': active, 'inert': total - active, 'total': total}
|
||||||
|
|
||||||
def info(self):
|
def address_count(self):
|
||||||
'''Returned in the RPC 'getinfo' call.'''
|
return sum(len(session.hash168s) for session in self.sessions
|
||||||
address_count = sum(len(session.hash168s)
|
if isinstance(session, ElectrumX))
|
||||||
for session in self.sessions
|
|
||||||
if isinstance(session, ElectrumX))
|
async def rpc_getinfo(self, params):
|
||||||
|
'''The RPC 'getinfo' call.'''
|
||||||
return {
|
return {
|
||||||
'blocks': self.bp.height,
|
'blocks': self.bp.height,
|
||||||
'peers': len(self.irc_peers()),
|
'peers': len(self.irc.peers),
|
||||||
'sessions': self.session_count(),
|
'sessions': self.session_count(),
|
||||||
'watched': address_count,
|
'watched': self.address_count(),
|
||||||
'cached': 0,
|
'cached': 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def sessions_info(self):
|
async def rpc_sessions(self, params):
|
||||||
'''Returned to the RPC 'sessions' call.'''
|
'''Returned to the RPC 'sessions' call.'''
|
||||||
now = time.time()
|
now = time.time()
|
||||||
return [(session.kind,
|
return [(session.kind,
|
||||||
@ -184,6 +188,15 @@ class ServerManager(LoggedClass):
|
|||||||
now - session.start)
|
now - session.start)
|
||||||
for session in self.sessions]
|
for session in self.sessions]
|
||||||
|
|
||||||
|
async def rpc_numsessions(self, params):
|
||||||
|
return self.session_count()
|
||||||
|
|
||||||
|
async def rpc_peers(self, params):
|
||||||
|
return self.irc.peers
|
||||||
|
|
||||||
|
async def rpc_numpeers(self, params):
|
||||||
|
return len(self.irc.peers)
|
||||||
|
|
||||||
|
|
||||||
class Session(JSONRPC):
|
class Session(JSONRPC):
|
||||||
'''Base class of ElectrumX JSON session protocols.'''
|
'''Base class of ElectrumX JSON session protocols.'''
|
||||||
@ -572,19 +585,5 @@ class LocalRPC(Session):
|
|||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
super().__init__(*args)
|
super().__init__(*args)
|
||||||
cmds = 'getinfo sessions numsessions peers numpeers'.split()
|
cmds = 'getinfo sessions numsessions peers numpeers'.split()
|
||||||
self.handlers = {cmd: getattr(self, cmd) for cmd in cmds}
|
self.handlers = {cmd: getattr(self.manager, 'rpc_{}'.format(cmd))
|
||||||
|
for cmd in cmds}
|
||||||
async def getinfo(self, params):
|
|
||||||
return self.manager.info()
|
|
||||||
|
|
||||||
async def sessions(self, params):
|
|
||||||
return self.manager.sessions_info()
|
|
||||||
|
|
||||||
async def numsessions(self, params):
|
|
||||||
return self.manager.session_count()
|
|
||||||
|
|
||||||
async def peers(self, params):
|
|
||||||
return self.manager.irc_peers()
|
|
||||||
|
|
||||||
async def numpeers(self, params):
|
|
||||||
return len(self.manager.irc_peers())
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user