Example #1
0
 def do_request(self, request):
     # TODO: reject if sender or command is malformed
     print 'REQUEST: namespace =', self.namespace, '; machine =', request[
         'machine']
     target = self.tracker.get_client_in_namespace(self.namespace,
                                                   request['machine'])
     if target is None:
         print "No machine named:", request['machine']
         msg = ResponseMessage.error(request.id,
                                     reason="No machine exists named %r" %
                                     request['machine'],
                                     code=ErrorCodes.UNKNOWN_MACHINE)
         yield gen.Task(self.stream.write, msg)
         raise StopIteration
     msg = InvocationMessage.create(request['command'])
     if not msg:
         print "bad message:", repr(msg)
         raise StopIteration
     msg.sender = self.machine
     print target.id, '<-', msg.name, '[forwarding]'
     response = yield gen.Task(target.request, msg)
     print '[forwarding]', target.id, '->', response
     response.sender = target.machine
     print self.id, '<-', response, '[forwarding]'
     yield gen.Task(self.stream.write, response)
Example #2
0
 def do_send(self, request, callback=None):
     # TODO: reject if sender or command is malformed
     target = self.tracker.get_client_in_namespace(self.namespace, request['machine'])
     if target is None:
         # absorb all invalid messages
         print "No machine named:", request['machine'], '... Ignoring message'
         raise StopIteration
     msg = InvocationMessage.create(request['command'])
     if not msg:
         print repr(request)
         print "bad message:", repr(msg)
         raise StopIteration
     msg.sender = self.machine
     print target.id, '<-', msg.name, '[forwarding]'
     yield gen.Task(target.stream.write, msg)
     if callable(callback):
         callback()
Example #3
0
 def do_send(self, request, callback=None):
     # TODO: reject if sender or command is malformed
     target = self.tracker.get_client_in_namespace(self.namespace,
                                                   request['machine'])
     if target is None:
         # absorb all invalid messages
         print "No machine named:", request[
             'machine'], '... Ignoring message'
         raise StopIteration
     msg = InvocationMessage.create(request['command'])
     if not msg:
         print repr(request)
         print "bad message:", repr(msg)
         raise StopIteration
     msg.sender = self.machine
     print target.id, '<-', msg.name, '[forwarding]'
     yield gen.Task(target.stream.write, msg)
     if callable(callback):
         callback()
Example #4
0
 def do_request(self, request):
     # TODO: reject if sender or command is malformed
     print 'REQUEST: namespace =', self.namespace, '; machine =', request['machine']
     target = self.tracker.get_client_in_namespace(self.namespace, request['machine'])
     if target is None:
         print "No machine named:", request['machine']
         msg = ResponseMessage.error(request.id,
                 reason="No machine exists named %r" % request['machine'],
                 code=ErrorCodes.UNKNOWN_MACHINE)
         yield gen.Task(self.stream.write, msg)
         raise StopIteration
     msg = InvocationMessage.create(request['command'])
     if not msg:
         print "bad message:", repr(msg)
         raise StopIteration
     msg.sender = self.machine
     print target.id, '<-', msg.name, '[forwarding]'
     response = yield gen.Task(target.request, msg)
     print '[forwarding]', target.id, '->', response
     response.sender = target.machine
     print self.id, '<-', response, '[forwarding]'
     yield gen.Task(self.stream.write, response)
Example #5
0
 def test_it_should_generate_new_ids(self):
     msg1 = InvocationMessage()
     msg2 = InvocationMessage()
     expect(msg1.id) != msg2