def main(): n = Node(cert='serverside.pem') im = Instamaster() ref = n.register(im, 'im') n._on('connection', im.on_new_conn) n.listen(port=20001) print 'Instamaster at', n.refurl(ref) loop() return 0
def main(): n = Node(cert='serverside.pem') im = Instamaster() ref = n.register(im, 'im') n._on('connection', im.on_new_conn) n.listen(port=20001) print 'Instamaster at', n.refurl(ref) loop() return 0
def main(): global SDIR SDIR = sys.argv[1] secret = sys.argv[2] if not (os.path.exists(SDIR) and os.path.isdir(SDIR)): os.mkdir(SDIR) n = Node(cert=None) n.listen(port=PORT) gs = Fileserver() ref = n.register(gs, cap=secret) logging.info('gs at {0}'.format(n.refurl(ref))) loop() return 0
def main(): global SDIR SDIR = sys.argv[1] secret = sys.argv[2] if not (os.path.exists(SDIR) and os.path.isdir(SDIR)): os.mkdir(SDIR) n = Node(cert=None) n.listen(port=PORT) gs = Fileserver() ref = n.register(gs, cap=secret) logging.info('gs at {0}'.format(n.refurl(ref))) loop() return 0
class Master(object): def __init__(self): self.n = Node(cert='serverside.pem') self.n.listen(port=10002) ref = self.n.register(self) print 'Master at', self.n.refurl(ref) self.slaves = {} later(5.0, self.process) def process(self): slaves = self.slaves.values() if not slaves: later(5.0, self.process) print 'process, but no slaves' return somerand = random.randint(10, 200) data = range(somerand * 720, (somerand + 1) * 720) pr = Processround(slaves, data, 'procfunc', sum) p = pr.run() p._except(self.roundfailed) p._when(self.roundresult, sum(data)) def roundresult(self, r, should): print 'roundresult, shouldbe:', r, should, r == should later(5.0, self.process) def roundfailed(self, e): print 'processround failed:', e later(5.0, self.process) @expose def addslave(self, slave, conn): self.slaves[conn] = slave def connclosed(reason): sl = self.slaves.pop(conn, None) print 'slave {0} gone, as conn {1} is closed.'.format(sl, conn) conn._on('close', connclosed) return True
def list(self): return dict([(k, [v.fpath, v.modname, str(v.ref)]) for k,v in self.apps.items()]) @expose def get(self, appid): a = self.apps.get(appid, None) if a == None: raise NodeException('Nonexisting app.') return a.ref @expose def restart(self, appid): a = self.apps.get(appid, None) if a == None: raise NodeException('Nonexisting app.') nmod, nref = load_pwrobj(a.fpath, a.modname) a.modref = nmod a.ref = nref return nref if __name__ == '__main__': n = Node(cert=CERT) n.listen(port=PORT) appsrvobj = Appserver() ref = n.register(appsrvobj) print 'appserver at', n.refurl(ref) loop()
print url self.obj = n.establish(url) r = self.obj.call("add", 10, 31) r._when(self.done) return self.donaterunpromise def done(self, r): print "done using the object, result:", r self.donaterunpromise._resolve("Thanks, i am done!.") later(3, self.retry) def works(self, r): print "reusing worked, result:", r later(3, self.retry) def err(self, e): print "reusing error, e:", e def retry(self): if self.obj: r = self.obj.call("add", 40, 31) r._when(self.works) r._except(self.err) ref = n.register(Giftreceiver(), cap="giftreceive") n.listen(port=10001) print "giftreceiver ready at", n.refurl(ref) loop()
self.obj = n.establish(url) r = self.obj.call('add', 10, 31) r._when(self.done) return self.donaterunpromise def done(self, r): print 'done using the object, result:', r self.donaterunpromise._resolve('Thanks, i am done!.') later(3, self.retry) def works(self, r): print 'reusing worked, result:', r later(3, self.retry) def err(self, e): print 'reusing error, e:', e def retry(self): if self.obj: r = self.obj.call('add', 40, 31) r._when(self.works) r._except(self.err) ref = n.register(Giftreceiver(), cap='giftreceive') n.listen(port=10001) print 'giftreceiver ready at', n.refurl(ref) loop()
import logging logging.basicConfig(level=logging.DEBUG) from pwrcall import loop, unloop, Node, expose import pyev import evnet class Math(object): @expose def add(self, a, b): return a + b @expose def mul(self, a, b): return a * b n = Node(cert='cert.pem') ref = n.register_object(Math()) n.listen(port=10000) print 'math obj ready at', n.refurl(ref) loop()
def list(self): return dict([(k, [v.fpath, v.modname, str(v.ref)]) for k, v in self.apps.items()]) @expose def get(self, appid): a = self.apps.get(appid, None) if a == None: raise NodeException('Nonexisting app.') return a.ref @expose def restart(self, appid): a = self.apps.get(appid, None) if a == None: raise NodeException('Nonexisting app.') nmod, nref = load_pwrobj(a.fpath, a.modname) a.modref = nmod a.ref = nref return nref if __name__ == '__main__': n = Node(cert=CERT) n.listen(port=PORT) appsrvobj = Appserver() ref = n.register(appsrvobj) print 'appserver at', n.refurl(ref) loop()
import logging logging.basicConfig(level=logging.DEBUG) from pwrcall import loop, unloop, Node, expose import pyev import evnet class Math(object): @expose def add(self, a, b): return a+b @expose def mul(self, a, b): return a*b n = Node(cert='cert.pem') ref = n.register_object(Math()) n.listen(port=10000) print 'math obj ready at', n.refurl(ref) loop()