Пример #1
0
    def test_bytes_convert(self):
        illegal_var = '01:02:03:192.168.0.1:0a:0b:'
        try:
            Convert.bytes_to_mac_str(illegal_var)
        except TypeError:
            pass
        else:
            self.fail('illegal mac been converted')

        try:
            Convert.bytes_to_ipv4_str(illegal_var)
        except TypeError:
            pass
        else:
            self.fail('illegal ipv4 been converted')

        try:
            Convert.bytes_to_ipv6_str(illegal_var)
        except TypeError:
            pass
        else:
            self.fail('illegal ipv6 been converted')

        try:
            Convert.bytes_to_ip_addr(illegal_var)
        except TypeError:
            pass
        else:
            self.fail('illegal ip been converted')

        # try:
        ret = Convert.mac_to_tuple_of_bytes('-1:-2:-3:-4:-5')
        # except ValueError:
        #    pass
        # else:
        #    self.fail('illegal mac been converted: %s' % ret)
        self.assertIsNone(ret, 'illegal mac been converted: %s' % ret)

        self.assertFalse(Convert.is_valid_ipv4_address('a.b.c.d'))
Пример #2
0
    def test_02_basic_redirect(self):
        self.logger.info("Starting ServiceSuite VMs")
        serv1 = self.topology.create_vm_service_suite("ServiceSuite1", False)
        serv2 = self.topology.create_vm_service_suite("ServiceSuite2", False)
        self.topology.start_and_wait_for_all()

        # Configure ServiceSuite1
        self.logger.info("Configuring ServiceSuite1 VM")
        msg = serv1.prepare_config_message(dhcpv4=True, dhcpv6=True, tps=True,
                                           ccapv6=True)
        msg.ServiceConfigureMessage.CcapCoreV6.IPv6Address = \
            serv1.ipv6_addresses[1]
        self.logger.debug("Setting CCAP IPv6: %s", serv1.ipv6_addresses[1])
        scenario = msg.ServiceConfigureMessage.CcapCoreV6.ClientScenarios.add()
        scenario.ScenarioType = scenario.SCENARIO_REDIRECT
        scenario.redirect_ip_addr = serv2.ipv6_addresses[1]

        reply = serv1.vm_command(msg)
        self.logger.debug("Received reply to service configuration:")
        self.logger.debug("%s", reply)
        self.assertIsNotNone(reply, "Not any reply message received from RPD")
        self.assertEqual(reply.MessageResult,
                         reply.IT_API_SERVICE_SUITE_RESULT_OK,
                         "Unexpected configuration result: {}".format(
                             reply.MessageResult))

        # Configure ServiceSuite 2
        self.logger.info("Configuring ServiceSuite2 VM")
        msg = serv2.prepare_config_message(dhcpv4=False, dhcpv6=False,
                                           tps=False, ccapv6=True)
        msg.ServiceConfigureMessage.CcapCoreV6.IPv6Address = \
            serv2.ipv6_addresses[1]
        self.logger.debug("Setting CCAP IPv6: %s", serv2.ipv6_addresses[1])
        reply = serv2.vm_command(msg)
        self.logger.debug("Received reply to service configuration:")
        self.logger.debug("%s", reply)
        self.assertIsNotNone(reply, "Not any reply message received from RPD")
        self.assertEqual(reply.MessageResult,
                         reply.IT_API_SERVICE_SUITE_RESULT_OK,
                         "Unexpected configuration result: {}".format(
                             reply.MessageResult))

        self.logger.info("Starting RPD VM")
        rpd1 = self.topology.create_vm_open_rpd("RPD1")

        self.poll_result(self.check_session, [rpd1], 30,
                         "Ccap core capabilities not set")

        msg = t_ItApiRpdMessage()
        msg.ItApiRpdMessageType = msg.IT_API_RPD_GET
        ret = rpd1.vm_command(msg)
        self.logger.info("Received DatabaseContent:")
        self.logger.info("%s", ret)
        self.assertIsNotNone(reply, "Not any reply message received from RPD")

        expected_ccap_ip = Convert.ipaddr_to_tuple_of_bytes(
            serv2.ipv6_addresses[1])
        expected_ccap_ip = Convert.bytes_to_ipv6_str(expected_ccap_ip)
        received_ccap_ip = \
            ret.DatabaseContent.cfg.CcapCoreIdentification[0].CoreIpAddress
        self.logger.info("Comparing CCAP IPs: received: %s, expected: %s",
                         received_ccap_ip, expected_ccap_ip)
        self.assertEqual(expected_ccap_ip,
                         received_ccap_ip,
                         "Invalid CcapCore IP address: {}, "
                         "expected: {}".format(received_ccap_ip,
                                               expected_ccap_ip))
Пример #3
0
 def _expand_ip_addr(addr):
     # 'fd00:dead:0001:0000:0000:0000:0000:0009'
     expanded = Convert.bytes_to_ipv6_str(
         Convert.ipaddr_to_tuple_of_bytes(addr)).lower()
     # 'fd00::1' -> 'fd:00:00:00:...:00:00:00:09'
     return ':'.join(x[:2] + ':' + x[2:] for x in expanded.split(':'))