def test_crypto_rc4(self): link1 = s_link.chopLinkUrl('tcp://127.0.0.1:0?rc4key=asdfasdf') data = {} def wootmesg(sock, mesg): data['foo'] = mesg[1].get('foo') return ('woot2', {}) daemon = s_daemon.Daemon() daemon.setMesgMethod('woot1', wootmesg) daemon.runLinkServer(link1) relay = s_link.initLinkRelay(link1) client = relay.initLinkClient() repl = client.sendAndRecv('woot1', foo=2) self.assertEqual(repl[0], 'woot2') self.assertEqual(data.get('foo'), 2) client.fini() daemon.fini()
def test_link_tcp_client(self): data = {'count':0} def sockinit(event): data['count'] += 1 mesgs = [] def wootmesg(sock,mesg): mesgs.append(mesg) return tufo('woot',foo=mesg[1].get('id')) link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?zerosig=1') #link = tufo('tcp',host='127.0.0.1',port=0) daemon = s_daemon.Daemon() daemon.on('link:sock:init',sockinit) daemon.setMesgMethod('woot',wootmesg) daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) link[1]['trans'] = True client = relay.initLinkClient() reply = client.sendAndRecv('woot',id=1) self.assertEqual( reply[1].get('foo'), 1 ) reply = client.sendAndRecv('woot',id=2) self.assertEqual( reply[1].get('foo'), 2 ) self.assertEqual( data.get('count'), 3) client.fini() daemon.fini()
def __init__(self, link): EventBus.__init__(self) self.link = link self.relay = s_link.initLinkRelay(link) self.client = self._init_client() self._tele_with = {} # tid:client for with blocks # objname is path minus leading "/" self.objname = link[1].get('path')[1:]
def runLinkPeer(self, link): ''' Run and manage a new LinkPeer. ''' relay = s_link.initLinkRelay(link) peer = relay.initLinkPeer() peer.on('link:sock:mesg', self.dist) peer.on('link:sock:init', self.dist) peer.on('link:sock:fini', self.dist) self.onfini(peer.fini) return peer.runLinkPeer()
def test_daemon_timeout(self): link = tufo('tcp',host='127.0.0.1',port=0,timeout=0.1) daemon = s_daemon.Daemon() daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) sock = relay.initClientSock() self.assertEqual( sock.recvobj(),None) sock.fini() daemon.fini()
def runLinkPeer(self, link): ''' Run and manage a new LinkPeer. ''' relay = s_link.initLinkRelay(link) peer = relay.initLinkPeer() peer.on('link:sock:mesg',self.dist) peer.on('link:sock:init',self.dist) peer.on('link:sock:fini',self.dist) self.onfini(peer.fini) return peer.runLinkPeer()
def test_daemon_timeout(self): link = tufo('tcp', host='127.0.0.1', port=0, timeout=0.1) daemon = s_daemon.Daemon() daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) sock = relay.initClientSock() self.assertEqual(sock.recvobj(), None) sock.fini() daemon.fini()
def test_link_client_retry(self): link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?retry=2') daemon = s_daemon.Daemon() daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) client = relay.initLinkClient() daemon.fini() self.assertRaises( s_link.RetryExceeded, client.sendAndRecv, 'woot' ) client.fini()
def test_link_client_retry(self): link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?retry=2') daemon = s_daemon.Daemon() daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) client = relay.initLinkClient() daemon.fini() self.assertRaises(s_link.RetryExceeded, client.sendAndRecv, 'woot') client.fini()
def runLinkServer(self, link): ''' Run and manage a new LinkServer. Example: link = tufo('tcp',host='0.0.0.0',port=80) daemon.runLinkServer(link) ''' relay = s_link.initLinkRelay(link) server = relay.initLinkServer() server.on('link:sock:mesg', self.dist) server.on('link:sock:init', self.dist) server.on('link:sock:fini', self.dist) self.onfini(server.fini) return server.runLinkServer()
def runLinkServer(self, link): ''' Run and manage a new LinkServer. Example: link = tufo('tcp',host='0.0.0.0',port=80) daemon.runLinkServer(link) ''' relay = s_link.initLinkRelay( link ) server = relay.initLinkServer() server.on('link:sock:mesg',self.dist) server.on('link:sock:init',self.dist) server.on('link:sock:fini',self.dist) self.onfini(server.fini) return server.runLinkServer()
def test_daemon_extend(self): def onwoot(sock, mesg): sock.sendobj(('woot', {'foo': 'bar'})) daemon = s_daemon.Daemon() daemon.setMesgMethod('woot', onwoot) link = tufo('tcp', host='127.0.0.1', port=0) daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) sock = relay.initClientSock() self.assertIsNotNone(sock) sock.sendobj(('woot', {})) mesg = sock.recvobj() self.assertEqual(mesg[0], 'woot') self.assertEqual(mesg[1].get('foo'), 'bar') sock.fini() daemon.fini()
def test_link_tcp_client(self): data = {'count': 0} def sockinit(event): data['count'] += 1 mesgs = [] def wootmesg(sock, mesg): mesgs.append(mesg) return tufo('woot', foo=mesg[1].get('id')) link = s_link.chopLinkUrl('tcp://127.0.0.1:0/?zerosig=1') #link = tufo('tcp',host='127.0.0.1',port=0) daemon = s_daemon.Daemon() daemon.on('link:sock:init', sockinit) daemon.setMesgMethod('woot', wootmesg) daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) link[1]['trans'] = True client = relay.initLinkClient() reply = client.sendAndRecv('woot', id=1) self.assertEqual(reply[1].get('foo'), 1) reply = client.sendAndRecv('woot', id=2) self.assertEqual(reply[1].get('foo'), 2) self.assertEqual(data.get('count'), 3) client.fini() daemon.fini()
def test_daemon_extend(self): def onwoot(sock,mesg): sock.sendobj( ('woot',{'foo':'bar'}) ) daemon = s_daemon.Daemon() daemon.setMesgMethod('woot',onwoot) link = tufo('tcp',host='127.0.0.1',port=0) daemon.runLinkServer(link) relay = s_link.initLinkRelay(link) sock = relay.initClientSock() self.assertIsNotNone(sock) sock.sendobj( ('woot',{}) ) mesg = sock.recvobj() self.assertEqual( mesg[0], 'woot' ) self.assertEqual( mesg[1].get('foo'), 'bar' ) sock.fini() daemon.fini()
def test_crypto_rc4(self): link1 = s_link.chopLinkUrl('tcp://127.0.0.1:0?rc4key=asdfasdf') data = {} def wootmesg(sock,mesg): data['foo'] = mesg[1].get('foo') return ('woot2',{}) daemon = s_daemon.Daemon() daemon.setMesgMethod('woot1',wootmesg) daemon.runLinkServer(link1) relay = s_link.initLinkRelay(link1) client = relay.initLinkClient() repl = client.sendAndRecv('woot1',foo=2) self.assertEqual( repl[0], 'woot2' ) self.assertEqual( data.get('foo'), 2) client.fini() daemon.fini()