def test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL(self): """ Create a redundant VPC with two networks with two VMs in each network """ self.logger.debug( "Starting test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL") self.query_routers() net_off = get_default_network_offering(self.apiclient) self.networks.append(self.create_network(net_off, "10.1.1.1")) net_off_no_lb = get_default_network_offering_no_load_balancer( self.apiclient) self.networks.append(self.create_network(net_off_no_lb, "10.1.2.1")) self.check_routers_state() self.add_nat_rules() self.do_vpc_test(False) self.stop_router_by_type("MASTER") self.check_routers_state(1) self.do_vpc_test(False) self.delete_nat_rules() self.check_routers_state(count=1) self.do_vpc_test(True) self.delete_public_ip() self.start_routers() self.add_nat_rules() self.check_routers_state() self.do_vpc_test(False)
def _test_04_rvpc_multi_tiers(self): """ Create a redundant VPC with 3 Tiers, 3 VMs, 3 PF rules""" self.logger.debug("Starting test_04_rvpc_multi_tiers") self.query_routers() net_off = get_default_network_offering(self.apiclient) network1 = self.create_network(net_off, "10.1.1.1", nr_vms=1) self.networks.append(network1) net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.networks.append(self.create_network(net_off_no_lb, "10.1.2.1", nr_vms=1)) network2 = self.create_network(net_off_no_lb, "10.1.3.1", nr_vms=1) self.networks.append(network2) self.check_routers_state() self.add_nat_rules() self.do_vpc_test(False) self.destroy_vm(network1) network1.get_net().delete(self.apiclient) self.networks.remove(network1) self.check_routers_state(status_to_check="MASTER") self.do_vpc_test(False) self.destroy_vm(network2) network2.get_net().delete(self.apiclient) self.networks.remove(network2) self.check_routers_state(status_to_check="MASTER") self.do_vpc_test(False)
def test_04_rvpc_multi_tiers(self): """ Create a redundant VPC with 3 Tiers, 3 VMs, 3 PF rules""" self.logger.debug("Starting test_05_rvpc_multi_tiers") self.query_routers() net_off = get_default_network_offering(self.apiclient) network1 = self.create_network(net_off, "10.1.1.1", nr_vms=1) self.networks.append(network1) net_off_no_lb = get_default_network_offering_no_load_balancer( self.apiclient) self.networks.append( self.create_network(net_off_no_lb, "10.1.2.1", nr_vms=1)) network2 = self.create_network(net_off_no_lb, "10.1.3.1", nr_vms=1) self.networks.append(network2) self.check_routers_state() self.add_nat_rules() self.do_vpc_test(False) self.destroy_vm(network1) network1.get_net().delete(self.apiclient) self.networks.remove(network1) self.check_routers_state(status_to_check="MASTER") self.do_vpc_test(False) self.destroy_vm(network2) network2.get_net().delete(self.apiclient) self.networks.remove(network2) self.check_routers_state(status_to_check="MASTER") self.do_vpc_test(False)
def test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL(self): """ Create a redundant VPC with two networks with two VMs in each network """ self.logger.debug("Starting test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL") self.query_routers() net_off = get_default_network_offering(self.apiclient) self.networks.append(self.create_network(net_off, "10.1.1.1")) net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.networks.append(self.create_network(net_off_no_lb, "10.1.2.1")) self.check_routers_state() self.add_nat_rules() self.do_vpc_test(False) self.stop_router_by_type("MASTER") self.check_routers_state(1) self.do_vpc_test(False) self.delete_nat_rules() self.check_routers_state(count=1) self.do_vpc_test(True) self.delete_public_ip() self.start_routers() self.add_nat_rules() self.check_routers_state() self.do_vpc_test(False)
def test_01_VPC_nics_after_destroy(self): """ Create a VPC with two networks with one VM in each network and test nics after destroy""" self.logger.debug("Starting test_01_VPC_nics_after_destroy") self.query_routers() net_off = get_default_network_offering(self.apiclient) net1 = self.create_network(net_off, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer( self.apiclient) net2 = self.create_network(net_off_no_lb, "10.1.2.1") self.networks.append(net1) self.networks.append(net2) self.add_nat_rules() self.check_ssh_into_vm() self.destroy_routers() time.sleep(30) net1.add_vm(self.deployvm_in_network(net1.get_net())) self.query_routers() self.add_nat_rules() self.check_ssh_into_vm()
def test_01_single_VPC_iptables_policies(self): """ Test iptables default INPUT/FORWARD policies on VPC router """ self.logger.debug("Starting test_01_single_VPC_iptables_policies") routers = self.entity_manager.query_routers() self.assertEqual( isinstance(routers, list), True, "Check for list routers response return valid data") net_off = get_default_network_offering(self.apiclient) self.entity_manager.create_network(net_off, self.vpc.id, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.entity_manager.create_network(net_off_no_lb, self.vpc.id, "10.1.2.1") self.entity_manager.add_nat_rules(self.vpc.id) self.entity_manager.do_vpc_test() for router in routers: if not router.isredundantrouter and router.vpcid: hosts = list_hosts( self.apiclient, id=router.hostid) self.assertEqual( isinstance(hosts, list), True, "Check for list hosts response return valid data") host = hosts[0] host.user = self.services["configurableData"]["host"]["username"] host.passwd = self.services["configurableData"]["host"]["password"] host.port = self.services["configurableData"]["host"]["port"] tables = [self.services["configurableData"]["input"], self.services["configurableData"]["forward"]] for table in tables: try: result = get_process_status( host.ipaddress, host.port, host.user, host.passwd, router.linklocalip, 'iptables -L %s' % table) except KeyError: self.skipTest( "Provide a marvin config file with host\ credentials to run %s" % self._testMethodName) self.logger.debug("iptables -L %s: %s" % (table, result)) res = str(result) self.assertEqual( res.count("policy DROP"), 1, "%s Default Policy should be DROP" % table)
def test_01_single_VPC_iptables_policies(self): """ Test iptables default INPUT/FORWARD policies on VPC router """ self.logger.debug("Starting test_01_single_VPC_iptables_policies") routers = self.entity_manager.query_routers() self.assertEqual( isinstance(routers, list), True, "Check for list routers response return valid data") net_off = get_default_network_offering(self.apiclient) self.entity_manager.create_network(net_off, self.vpc.id, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.entity_manager.create_network(net_off_no_lb, self.vpc.id, "10.1.2.1") self.entity_manager.add_nat_rules(self.vpc.id) self.entity_manager.do_vpc_test() for router in routers: if not router.isredundantrouter and router.vpcid: hosts = list_hosts( self.apiclient, id=router.hostid) self.assertEqual( isinstance(hosts, list), True, "Check for list hosts response return valid data") host = hosts[0] host.user = self.services["configurableData"]["host"]["username"] host.passwd = self.services["configurableData"]["host"]["password"] host.port = self.services["configurableData"]["host"]["port"] tables = [self.services["configurableData"]["input"], self.services["configurableData"]["forward"]] for table in tables: try: result = get_process_status( host.ipaddress, host.port, host.user, host.passwd, router.linklocalip, 'iptables -L %s' % table) except KeyError: self.skipTest( "Provide a marvin config file with host\ credentials to run %s" % self._testMethodName) self.logger.debug("iptables -L %s: %s" % (table, result)) res = str(result) self.assertEqual( res.count("DROP"), 1, "%s Default Policy should be DROP" % table)
def _test_02_redundant_VPC_default_routes(self): """ Create a redundant VPC with two networks with two VMs in each network and check default routes""" self.logger.debug("Starting test_02_redundant_VPC_default_routes") self.query_routers() net_off = get_default_network_offering(self.apiclient) self.networks.append(self.create_network(net_off, "10.1.1.1")) net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.networks.append(self.create_network(net_off_no_lb, "10.1.2.1")) self.check_routers_state() self.add_nat_rules() self.do_default_routes_test()
def test_02_redundant_VPC_default_routes(self): """ Create a redundant VPC with two networks with two VMs in each network and check default routes""" self.logger.debug("Starting test_02_redundant_VPC_default_routes") self.query_routers() net_off = get_default_network_offering(self.apiclient) self.networks.append(self.create_network(net_off, "10.1.1.1")) net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) self.networks.append(self.create_network(net_off_no_lb, "10.1.2.1")) self.check_routers_state() self.add_nat_rules() self.do_default_routes_test()
def test_02_VPC_default_routes(self): """ Create a VPC with two networks with one VM in each network and test default routes""" self.logger.debug("Starting test_02_VPC_default_routes") self.query_routers() net_off = get_default_network_offering(self.apiclient) net1 = self.create_network(net_off, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) net2 = self.create_network(net_off_no_lb, "10.1.2.1") self.networks.append(net1) self.networks.append(net2) self.add_nat_rules() self.do_default_routes_test()
def test_02_VPC_default_routes(self): """ Create a VPC with two networks with one VM in each network and test default routes""" self.logger.debug("Starting test_02_VPC_default_routes") self.query_routers() net_off = get_default_network_offering(self.apiclient) net1 = self.create_network(net_off, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer( self.apiclient) net2 = self.create_network(net_off_no_lb, "10.1.2.1") self.networks.append(net1) self.networks.append(net2) self.add_nat_rules() self.do_default_routes_test()
def test_01_VPC_nics_after_destroy(self): """ Create a VPC with two networks with one VM in each network and test nics after destroy""" self.logger.debug("Starting test_01_VPC_nics_after_destroy") self.query_routers() net_off = get_default_network_offering(self.apiclient) net1 = self.create_network(net_off, "10.1.1.1") net_off_no_lb = get_default_network_offering_no_load_balancer(self.apiclient) net2 = self.create_network(net_off_no_lb, "10.1.2.1") self.networks.append(net1) self.networks.append(net2) self.add_nat_rules() self.check_ssh_into_vm() self.destroy_routers() time.sleep(30) net1.add_vm(self.deployvm_in_network(net1.get_net())) self.query_routers() self.add_nat_rules() self.check_ssh_into_vm()