def __init__(self, *args, **kwargs): super(SouthboundListener, self).__init__(*args, **kwargs) self.igp_graph = IGPGraph() self.dirty = False self.json_proxy = SJMPClient(hostname=CFG.get(DEFAULTSECT, 'json_hostname'), port=CFG.getint(DEFAULTSECT, 'json_port'), target=self) self.quagga_manager = ProxyCloner(FakeNodeProxy, self.json_proxy)
def __init__(self, client, *args, **kwargs): Cmd.__init__(self, *args, **kwargs) self.client = client def do_add(self, line=''): self.client.add(('192.168.14.1', '192.168.23.2', 1, '3.3.3.0/24')) self.client.add((None, '192.168.23.2', 1, '4.4.4.0/24')) self.client.add([(None, '192.168.23.2', 1, '5.5.5.0/24'), (None, '192.168.14.1', 1, '5.5.5.0/24')]) def do_remove(self, line=''): self.client.remove(('192.168.14.1', '192.168.23.2', '3.3.3.0/24')) self.client.remove((None, '192.168.23.2', '4.4.4.0/24')) self.client.remove([(None, '192.168.23.2', '5.5.5.0/24'), (None, '192.168.14.1', '5.5.5.0/24')]) def do_exit(self, line): return True if __name__ == '__main__': log.setLevel(logging.DEBUG) shapeshifter = ShapeshifterProxyTest() c = SJMPClient("localhost", CFG.getint(DEFAULTSECT, "json_port"), target=shapeshifter) fakenode = ProxyCloner(FakeNodeProxy, c) Thread(target=c.communicate, name='client').start() TestCLI(fakenode).cmdloop() c.stop()
def do_exit(self, line): return True def do_info(self, line): # Query the remopte end for the supported methods/docs/args self.client.ask_info() def default(self, line): items = line.split(' ') self.client.execute(items[0], *items[1:]) if __name__ == '__main__': log.setLevel(logging.DEBUG) s = SJMPServer(H, P, target=EchoProxy()) c = SJMPClient(H, P) a = ProxyCloner(EchoProxy, c) log.debug(dir(a)) st = Thread(target=s.communicate, name='server') st.daemon = True st.start() log.debug('Started server') ct = Thread(target=c.communicate, name='client') ct.daemon = True ct.start() log.debug('Started client') a.echo('hello world') a.sum(1, 2) TestCLI(c).cmdloop() c.stop() s.stop()