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'))
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))
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(':'))