Source code for sesf.objtransfer.test_node

# sesf module: objtransfer.test_node

import Pyro4, argparse, time, importlib
from sesf.util.pyro import (start_pyrodaemon)
from threading import Thread


[docs]@Pyro4.expose class TestNode(): def __init__(self, myid, use): self.myid = myid self.use = use self.pyrodaemon = None self.ot_node = None self.pyrodaemon_thread = Thread( target=start_pyrodaemon, args=(self, "ot_test_node_"+str(myid))) self.pyrodaemon_thread.start() def start_testnode(self): tp = Pyro4.Proxy("PYRONAME:objtransfer_tester") print("got testerproxy", tp, flush=True) imp_nodemodule = importlib.import_module(self.use[0]) print("creating node from module", imp_nodemodule) self.ot_node = imp_nodemodule.Node(self.use, tp) return def acq(self): return self.ot_node.acq() def rel(self, oval): return self.ot_node.rel(oval) def recvreq(self): return self.ot_node.recvreq() def end(self): self.ot_node.end() @Pyro4.oneway def end_pyrodaemon(self): self.pyrodaemon.shutdown()
# def get_testerproxy(self): # print('getting testerproxy', flush=True) # self.ot_node.testerproxy = Pyro4.Proxy("PYRONAME:objtransfer_tester") ########### END class ObjtransferTestwrap ############################ if __name__ == '__main__': # eg: python test_node.py --use otnodemodule n myid init_owner args # --use mtnodemodule n myid args parser = argparse.ArgumentParser() parser.add_argument("n", type=int, help="number of nodes: at least 2") parser.add_argument("myid", type=int, help="id of this user system: in 0..n-1") parser.add_argument("--use", nargs=argparse.REMAINDER, help="one or more '--use node_argv'") args = parser.parse_args() print("args", args) testnode = TestNode(args.myid, args.use) testnode.pyrodaemon_thread.join() time.sleep(10)