Example #1
0
def main():
    set_context()
    host = create_host("http://127.0.0.1:12666")

    remote = host.lookup_url("http://127.0.0.1:12777", Host)
    print(remote)

    p1 = host.lookup_url("http://127.0.0.1:12777/1", Echo)
    p2 = remote.lookup('1')

    print("p1 =", id(p1))
    print("p2 =", id(p2))

    print(p1 == p2)
    print(p1 != p2)
    print(p1 is p2)

    s = set()
    s.add(p1)
    s.add(p2)
    print(len(s))

    print(p1)
    print(repr(p1))

    shutdown()
Example #2
0
def main():
    set_context()
    host = create_host('http://127.0.0.1:1679')

    remote = host.lookup_url('http://127.0.0.1:1277', Host)
    print remote

    p1 = host.lookup_url('http://127.0.0.1:1277/1', Echo)
    p2 = remote.lookup('1')

    print 'p1 =', id(p1)
    print 'p2 =', id(p2)

    print p1 == p2
    print p1 != p2
    print p1 is p2

    s = set()
    s.add(p1)
    s.add(p2)
    print len(s)

    print p1
    print repr(p1)

    shutdown()
Example #3
0
    def setUp(self):
        try:
            set_context()
        except:
            pass

        try:
            self.h = create_host()
        except:
            pass
Example #4
0
def create_local_host():
    global host
    try:
        set_context()
        host = create_host(settings.PYACTOR_URL)
        logger.info("Controller PyActor host created")
    except:
        pass

    return host
Example #5
0
 def setUp(self):
     unittest.TestCase.setUp(self)
     try:
         set_context()
     except:
         pass
     try:
         self.host = create_host()
     except:
         pass
    def run(self):
        """
        Method tu run MapReduce implementation
        """
        url_file = 'http://' + self.url_server + '/'
        ip = self.ip

        set_context()
        host = create_host('http://' + str(ip) + ':6002')

        registry = host.lookup_url('http://' + str(ip) + ':6000/regis',
                                   'Registry', 'Registry')

        list_workers = registry.get_all_names()
        print 'Workers registered in server: ' + str(list_workers)

        num_workers = len(list_workers)
        print 'Number of workers: ' + str(num_workers)

        print 'Start file splitter...'
        file_handler = FileHandler(self.input_file_path, self.output_dir)
        file_handler.split_file(num_workers)
        print 'Finish splitting...'

        # Create Timer Actor
        if not host.has_actor('timer'):
            timer = host.spawn('timer', 'Timer/Timer')
        else:
            timer = host.lookup('timer')

        # Create reducer
        if not host.has_actor('reducer'):
            reducer = host.spawn('reducer', self.reduce_impl)
        else:
            reducer = host.lookup('reducer')
        reducer.set_parameters(num_workers, file_handler, self.output_dir,
                               self.output_filename, timer)

        # Create mapper actors
        for i in range(num_workers):
            remote_host = registry.lookup(list_workers[i])
            # print remote_host
            if remote_host is not None:
                if not remote_host.has_actor('mapper'):
                    worker = remote_host.spawn('mapper', self.map_impl)
                else:
                    worker = remote_host.lookup('mapper')
                print "Mapper created in host -> " + list_workers[i]

                url_file_chank = url_file + "file_" + str(i) + '.txt'
                worker.start_map(url_file_chank, reducer, timer)

        serve_forever()
Example #7
0
    def setUp(self):
        # This is executed before each test.
        set_context()
        self.h = create_host()
        self.registry = self.h.spawn('Registry', Registry)
        self.reducer = self.h.spawn('Reducer', Reducer)
        self.mapper = self.h.spawn('Mapper', Mapper)
        self.timer = self.h.spawn('Timer', Timer)
        self.registry.bind('Reducer', self.reducer)
        self.registry.bind('Mapper', self.mapper)
        self.registry.bind('Timer', self.timer)
        self.url_server = '127.0.0.1'
        self.url_file = 'http://' + self.url_server + '/pg2000.txt'

        self.stdo = sys.stdout
        self.out = Outs()
        sys.stdout = self.out
Example #8
0
    def setUp(self):
        set_context()
        self.maxDiff = None
        self.h = create_host()
        self.registry = self.h.spawn('Registry', Registry)

        self.mapper = self.h.spawn('Map', Map)
        self.mapper.set_http_server('http://127.0.0.1')

        self.reduce = self.h.spawn('Reduce', Reduce)

        self.registry.bind('reducer', self.reduce)
        self.registry.bind('mapper', self.mapper)
        self.stdo = sys.stdout

        self.out = Outs()

        sys.stdout = self.out
Example #9
0
    def setUp(self):
        unittest.TestCase.setUp(self)
        set_context()

        #localhost ip
        self.LOCALHOST = "http://127.0.0.1"
        self.host = create_host(self.LOCALHOST + ":1679")

        #Create 3 hosts
        self.reducer_host = create_host(self.LOCALHOST + ":1277/")
        self.mapper1_host = create_host(self.LOCALHOST + ":1278/")
        self.mapper2_host = create_host(self.LOCALHOST + ":1279/")

        #Spawn 1 reducer and 2 mappers
        self.reducer = self.host.lookup_url(self.LOCALHOST + ":1277/",
                                            Host).spawn(1277, Reduce)
        self.mapper1 = self.host.lookup_url(self.LOCALHOST + ":1278/",
                                            Host).spawn(1278, Map)
        self.mapper2 = self.host.lookup_url(self.LOCALHOST + ":1279/",
                                            Host).spawn(1279, Map)
Example #10
0
    def test_tracker(self):
        try:
            set_context()
        except:
            pass

        try:
            host = create_host()
        except:
            pass

        # Spawn tracker and peers
        tracker = host.spawn('tracker', Tracker)
        p1 = host.spawn('peer1', Peer)
        p2 = host.spawn('peer2', Peer)
        p3 = host.spawn('peer3', Peer)
        # Attach tracker to peers
        p1.attach_tracker(tracker)
        p2.attach_tracker(tracker)
        p3.attach_tracker(tracker)

        # Start intervals
        tracker.init_start()

        p1.announce_me()
        sleep(0.5)
        self.assertEqual(['peer1'], tracker.get_peers("file", True))

        p2.announce_me()
        sleep(0.5)
        self.assertEqual(set(['peer1', 'peer2']),
                         set(tracker.get_peers("file", True)))

        p3.announce_me()
        sleep(0.5)
        self.assertEqual(set(['peer1', 'peer2', 'peer3']),
                         set(tracker.get_peers("file", True)))

        self.assertEqual([], tracker.get_peers("file1"))

        shutdown()
Example #11
0
def main():
    set_context()
    host = create_host()
    p1 = host.spawn('1', Echo)
    p2 = host.lookup('1')

    print 'p1 =', id(p1)
    print 'p2 =', id(p2)

    print p1 == p2
    print p1 != p2
    print p1 is p2

    s = set()
    s.add(p1)
    s.add(p2)
    print len(s)

    print p1
    print repr(p1)

    shutdown()
Example #12
0
def main():
    set_context()
    host = create_host("http://127.0.0.1:12777")
    p1 = host.spawn('1', Echo)
    p2 = host.lookup('1')

    print("p1 =", id(p1))
    print("p2 =", id(p2))

    print(p1 == p2)
    print(p1 != p2)
    print(p1 is p2)

    s = set()
    s.add(p1)
    s.add(p2)
    print(len(s))

    print(p1)
    print(repr(p1))

    serve_forever()
Example #13
0
def main():
    set_context()
    host = create_host('http://127.0.0.1:1277')
    p1 = host.spawn('1', Echo)
    p2 = host.lookup('1')

    print 'p1 =', id(p1)
    print 'p2 =', id(p2)

    print p1 == p2
    print p1 != p2
    print p1 is p2

    s = set()
    s.add(p1)
    s.add(p2)
    print len(s)

    print p1
    print repr(p1)

    serve_forever()
Example #14
0
from pyactor.context import set_context, create_host, sleep, shutdown


class Echo(object):
    _tell = ['echo', 'bye']
    _ask = ['say_something']

    def echo(self, msg):
        print msg

    def bye(self):
        print 'bye'

    def say_something(self):
        return 'something'


if __name__ == "__main__":
    set_context()
    h = create_host()
    e1 = h.spawn('echo1', Echo)

    e = h.lookup('echo1')
    print e.say_something()

    ee = h.lookup_url('local://local:6666/echo1', Echo)
    print ee.say_something()

    sleep(1)
    shutdown()
Example #15
0
        for i in range(10):
            try:
                print self.server.list_files(timeout=2)
            except TimeoutError as e:
                print i, e

    def remote_server(self, web_server):
        self.server = web_server

    def download(self):
        self.server.get_file('a1.txt', timeout=10)
        print 'download finished'


if __name__ == "__main__":
    set_context('green_thread')
    # set_context()

    host = create_host()

    f1 = host.spawn('file1', File)
    web = host.spawn('web1', Web)
    sleep(1)
    web.remote_server(f1)
    load = host.spawn('wl1', Workload)
    load.remote_server(web)
    load2 = host.spawn('wl2', Workload)
    load2.remote_server(web)

    load.launch()
    load2.download()
Example #16
0
    def is_finished(self):
        return self.cnt >= NUM_MSGS

    def init_token(self):
        self.next.take_token()

    def take_token(self):
        self.cnt += 1
        if not self.is_finished():
            self.next.take_token()


if __name__ == '__main__':
    # set_context('green_thread')
    set_context('thread')

    print(f"TEST {NUM_NODES} nodes and {NUM_MSGS} messages.")

    port = 1260
    host = [create_host(f"http://127.0.0.1:{port}/")]

    nf = host[0].spawn('ini', Node)

    np = nf
    for i in range(NUM_NODES - 2):
        port += 1
        host.append(create_host(f"http://127.0.0.1:{port}/"))
        ni = host[i+1].spawn(str(i), Node)
        ni.set_next(np)
        np = ni
Example #17
0
"""
Basic remote example sending tell messages. SERVER
@author: Daniel Barcelona Pons
"""
from pyactor.context import set_context, create_host, serve_forever


class Echo(object):
    _tell = {'echo'}

    def echo(self, msg):
        print(msg)


if __name__ == '__main__':
    set_context()
    host = create_host("http://127.0.0.1:1277/")

    e1 = host.spawn('echo1', Echo)
    serve_forever()
Example #18
0
        for i in range(10):
            try:
                print(self.server.list_files(timeout=2))
            except PyActorTimeoutError as e:
                print(i, e)

    def remote_server(self, web_server):
        self.server = web_server

    def download(self):
        self.server.get_file('a1.txt', timeout=10)
        print("download finished")


if __name__ == '__main__':
    set_context('green_thread')
    # set_context()

    host = create_host()

    f1 = host.spawn('file1', File)
    web = host.spawn('web1', Web)
    sleep(1)
    web.remote_server(f1)
    load = host.spawn('wl1', Workload)
    load.remote_server(web)
    load2 = host.spawn('wl2', Workload)
    load2.remote_server(web)

    load.launch()
    load2.download()
Example #19
0
 def setUp(self):
     set_context()
     self.h = create_host()