Exemplo n.º 1
0
 def tick(self, now):
     self._expire_hellos(now)
     if now - self.last_hello_time >= self.hello_interval:
         self.last_hello_time = now
         msg = MessageHELLO(None, self.id, self.hellos.keys(),
                            self.container.instance)
         self.container.send('amqp:/_local/qdhello', msg)
         self.container.log_hello(LOG_TRACE, "SENT: %r" % msg)
Exemplo n.º 2
0
 def test_hello_message(self):
   msg1 = MessageHELLO(None, 'R1', 'area', ['R2', 'R3', 'R4'])
   self.assertEqual(msg1.get_opcode(), "HELLO")
   self.assertEqual(msg1.id, 'R1')
   self.assertEqual(msg1.area, 'area')
   self.assertEqual(msg1.seen_peers, ['R2', 'R3', 'R4'])
   encoded = msg1.to_dict()
   msg2 = MessageHELLO(encoded)
   self.assertEqual(msg2.get_opcode(), "HELLO")
   self.assertEqual(msg2.id, 'R1')
   self.assertEqual(msg2.area, 'area')
   self.assertEqual(msg2.seen_peers, ['R2', 'R3', 'R4'])
   self.assertTrue(msg2.is_seen('R3'))
   self.assertFalse(msg2.is_seen('R9'))
Exemplo n.º 3
0
    def handleControlMessage(self, opcode, body, link_id):
        """
        """
        try:
            now = time.time()
            if opcode == 'HELLO':
                msg = MessageHELLO(body)
                self.log_hello(LOG_TRACE, "RCVD: %r" % msg)
                self.hello_protocol.handle_hello(msg, now, link_id)

            elif opcode == 'RA':
                msg = MessageRA(body)
                self.log_ls(LOG_TRACE, "RCVD: %r" % msg)
                self.link_state_engine.handle_ra(msg, now)

            elif opcode == 'LSU':
                msg = MessageLSU(body)
                self.log_ls(LOG_TRACE, "RCVD: %r" % msg)
                self.link_state_engine.handle_lsu(msg, now)

            elif opcode == 'LSR':
                msg = MessageLSR(body)
                self.log_ls(LOG_TRACE, "RCVD: %r" % msg)
                self.link_state_engine.handle_lsr(msg, now)

            elif opcode == 'MAU':
                msg = MessageMAU(body)
                self.log_ma(LOG_TRACE, "RCVD: %r" % msg)
                self.mobile_address_engine.handle_mau(msg, now)

            elif opcode == 'MAR':
                msg = MessageMAR(body)
                self.log_ma(LOG_TRACE, "RCVD: %r" % msg)
                self.mobile_address_engine.handle_mar(msg, now)

        except Exception:
            self.log(
                LOG_ERROR, "Control message error: opcode=%s body=%r\n%s" %
                (opcode, body, format_exc(LOG_STACK_LIMIT)))