示例#1
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
示例#2
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
示例#3
0
文件: fserver.py 项目: rep/pwrfs
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
示例#4
0
文件: fserver.py 项目: rep/pwrfs
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
示例#5
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
示例#6
0
文件: pwr.py 项目: rep/pwrcall
	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()

示例#7
0
        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()
示例#8
0
		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()

示例#9
0
    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()
示例#10
0
import sys
import logging
logging.basicConfig(level=logging.DEBUG)

from pwrcall import loop, unloop, Node, expose


class Math(object):
    @expose
    def add(self, a, b):
        return a + b


n = Node(cert='serverside.pem')
m = Math()
if len(sys.argv) > 1:
    ref = n.register(m, cap=sys.argv[1])
else:
    ref = n.register(m)
n.listen(port=10000)
print 'math obj ready at', n.refurl(ref)

loop()
示例#11
0
文件: mathsrv.py 项目: rep/pwrcall
import sys
import logging
logging.basicConfig(level=logging.DEBUG)

from pwrcall import loop, unloop, Node, expose

class Math(object):
	@expose
	def add(self, a, b):
		return a+b

n = Node(cert='serverside.pem')
m = Math()
if len(sys.argv) > 1:
	ref = n.register(m, cap=sys.argv[1])
else:
	ref = n.register(m)
n.listen(port=10000)
print 'math obj ready at', n.refurl(ref)

loop()