示例#1
0
    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)
示例#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
文件: instashare.py 项目: rep/pwrcall
def main(options, action, args):
    n = Node(cert=CERTPATH)

    if action == 'listen':
        ic = Instaclient(n)
        loop()
    elif action == 'send':
        targetcap, fp = args

        if not (os.path.exists(fp) and os.path.isfile(fp)):
            print fp, 'not a file'
            return 1

        im = n.establish(MASTERURL)

        def established(rim):
            p = rim.call('open', targetcap)

            def donecb(r):
                print 'done:', r
                n.shutdown()
                unloop()

            def prsink(r):
                print 'sink:', r
                r.notify('init', os.path.basename(fp))
                fs = Filestreamer(open(fp, 'rb'), r, rim.conn)
                fs.p._when(donecb)
                fs.p._except(donecb)

            def prexcept(e):
                print 'Error:', e
                n.shutdown()
                unloop()

            p._when(prsink)
            p._except(prexcept)

        im._when(established)
        loop()

    return 0
示例#5
0
 def __init__(self):
     self.n = Node(cert=CERT)
     self.rpcconn = None
     self.connect()
示例#6
0
 def __init__(self, mountdir):
     self.mountdir = mountdir
     self.n = Node(cert=None)
     self.fuse = None
     later(0.0, self.connect)
示例#7
0
import logging
logging.basicConfig(level=logging.DEBUG)

from pwrcall import loop, unloop, Node, expose, Promise
from evnet import later

n = Node(cert='serverside2.pem')

class Giftreceiver(object):
	def __init__(self):
		self.donaterunpromise = Promise()
		self.obj = None

	@expose
	def donate(self, url):
		#print obj, obj.conn, obj.functions
		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)
示例#8
0
文件: mathcli.py 项目: rep/pwrcall
import sys
from pwrcall import loop, unloop, Node, expose
import logging
logging.basicConfig(level=logging.DEBUG)

n = Node(cert='clientside.pem')
math = n.establish(sys.argv[1])
#math2 = n.connect('127.0.0.1', 10000).rootobj().call('get', sys.argv[1].split('/')[-1])

def printexception(r):
	print 'exc:', r
	n.shutdown()
	unloop()

math._except(printexception)
p = math.call('add', 11, 17)

def printresult(result):
	print 'printresult:', result
	n.shutdown()
	unloop()

p._when(printresult)

loop()

示例#9
0
import sys
from IPython.Shell import IPShellEmbed
from evnet import pyevThread
from pwrcall import Node, expose, loop, unloop
from pwrcall.util import NodeException, parse_url

CERT = 'clientside.pem'
t = pyevThread()
t.start()
n = Node(cert=CERT)
ipshell = IPShellEmbed()


def establish(pwrurl):
    return t.blockingCall(n.establish, pwrurl)


def pwrcall(obj, fn, *args):
    return t.blockingCall(obj.call, fn, *args)


if __name__ == '__main__':
    ipshell.set_banner('''pwrcall Interactive Shell
-------------------------
starts up a evnet loop and pwrcall Node
use the Node through the t.blockingCall function''')
    ipshell.set_exit_msg('Exit.')
    ipshell()
    sys.exit(0)
示例#10
0
文件: server.py 项目: rep/pwrcall
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()
示例#11
0
文件: client.py 项目: rep/pwrcall
        n.shutdown()
        unloop()

    c += 1
    ctime = time.time()

    if c % 1000 == 0:
        print int(ctime * 1000), c

    if ctime - starttime < 60.0:
        startcall()
    else:
        print int(ctime * 1000), c
        n.shutdown()
        unloop()


n = Node(cert='cert2.pem')
math = n.establish(sys.argv[1])
math._except(printexception)

c = 0
starttime = time.time()
ctime = time.time()
print int(ctime * 1000), c

for i in range(10):
    startcall()

loop()