def create_vpc_private_gateway(self, apiclient, vpc, vlan_id, associated_network=None, expected=True): self.services["private_gateway"][ "name"] = "Test Network Isolated - " + random_gen() associated_network_id = None if associated_network: associated_network_id = associated_network.id private_gateway = None try: private_gateway = PrivateGateway.create( apiclient, vpcid=vpc.id, gateway=self.services["private_gateway"]["gateway"], ipaddress=self.services["private_gateway"]["ipaddress"], netmask=self.services["private_gateway"]["netmask"], vlan=vlan_id, associatednetworkid=associated_network_id) except Exception as ex: private_gateway = None if expected: self.fail( f"Failed to create private gateway, but expected to succeed : {ex}" ) if private_gateway and not expected: self.fail( "private gateway is created successfully, but expected to fail" ) return private_gateway
def deploy_privategateway(self, privategateway_data, vpc): self.logger.debug('>>> PRIVATE GATEWAY => Creating "%s"...', privategateway_data['ip']) private_gateway = PrivateGateway.create( api_client=self.api_client, data=privategateway_data, vpc=vpc ) self.logger.debug('>>> PRIVATE GATEWAY => ID: %s => IP: %s => CIDR: %s => State: %s ' '=> Source NAT: %s => ACL: %s => Network: %s => VPC: %s => Domain: %s', private_gateway.id, private_gateway.ipaddress, private_gateway.cidr, private_gateway.state, private_gateway.sourcenatsupported, private_gateway.aclid, private_gateway.networkid, private_gateway.vpcid, private_gateway.domainid) self.deploy_staticroutes(privategateway_data['staticroutes'], vpc)
def deploy_privategateway(self, privategateway_data, vpc): self.logger.debug('>>> PRIVATE GATEWAY => Creating "%s"...', privategateway_data['ip']) private_gateway = PrivateGateway.create(api_client=self.api_client, data=privategateway_data, vpc=vpc) self.logger.debug( '>>> PRIVATE GATEWAY => ID: %s => IP: %s => CIDR: %s => State: %s ' '=> Source NAT: %s => ACL: %s => Network: %s => VPC: %s => Domain: %s', private_gateway.id, private_gateway.ipaddress, private_gateway.cidr, private_gateway.state, private_gateway.sourcenatsupported, private_gateway.aclid, private_gateway.networkid, private_gateway.vpcid, private_gateway.domainid) self.deploy_staticroutes(privategateway_data['staticroutes'], vpc)
def create_private_gateway(self, vpc, ip_address, gateway, aclId, vlan): self.logger.debug('::: Creating private gateway in vpc %s with ip %s :::' % (vpc.id, ip_address)) private_gateway = PrivateGateway.create( self.api_client, gateway, ip_address, "255.255.255.0", vlan, vpc.id, self.physical_network_id, aclId, "false", networkofferingid=self.private_network_offering.id ) self.logger.debug("Created private gateway with ID: %s" % private_gateway.id) self.test_cleanup.append(private_gateway) return private_gateway
def create_private_gateway(self, vpc, ip_address, gateway, aclId, vlan): self.logger.debug( '::: Creating private gateway in vpc %s with ip %s :::' % (vpc.id, ip_address)) private_gateway = PrivateGateway.create( self.api_client, gateway, ip_address, "255.255.255.0", vlan, vpc.id, self.physical_network_id, aclId, "false", networkofferingid=self.private_network_offering.id) self.logger.debug("Created private gateway with ID: %s" % private_gateway.id) self.test_cleanup.append(private_gateway) return private_gateway
def setup_infra(cls, redundant=False): if len(cls.class_cleanup) > 0: cleanup_resources(cls.api_client, cls.class_cleanup, cls.logger) cls.class_cleanup = [] cls.zone = get_zone(cls.api_client, cls.test_client.getZoneForTests()) cls.logger.debug("Zone '%s' selected" % cls.zone.name) cls.domain = get_domain(cls.api_client) cls.logger.debug("Domain '%s' selected" % cls.domain.name) cls.template = get_template( cls.api_client, cls.zone.id) cls.logger.debug("Template '%s' selected" % cls.template.name) cls.account = Account.create( cls.api_client, cls.attributes['account'], admin=True, domainid=cls.domain.id) cls.class_cleanup += [cls.account] cls.logger.debug("Account '%s' created", cls.account.name) cls.vpc_offering = get_default_redundant_vpc_offering(cls.api_client) if redundant else get_default_vpc_offering(cls.api_client) cls.logger.debug("VPC Offering '%s' selected", cls.vpc_offering.name) cls.network_offering = get_default_network_offering(cls.api_client) cls.logger.debug("Network Offering '%s' selected", cls.network_offering.name) cls.virtual_machine_offering = get_default_virtual_machine_offering(cls.api_client) cls.logger.debug("Virtual Machine Offering '%s' selected", cls.virtual_machine_offering.name) cls.private_network_offering = get_default_private_network_offering(cls.api_client) cls.logger.debug("Private Network Offering '%s' selected", cls.private_network_offering.name) cls.default_allow_acl = get_network_acl(cls.api_client, 'default_allow') cls.logger.debug("ACL '%s' selected", cls.default_allow_acl.name) cls.vpc1 = VPC.create(cls.api_client, cls.attributes['vpcs']['vpc1'], vpcofferingid=cls.vpc_offering.id, zoneid=cls.zone.id, domainid=cls.domain.id, account=cls.account.name) cls.logger.debug("VPC '%s' created, CIDR: %s", cls.vpc1.name, cls.vpc1.cidr) cls.network1 = Network.create(cls.api_client, cls.attributes['networks']['network1'], networkofferingid=cls.network_offering.id, aclid=cls.default_allow_acl.id, vpcid=cls.vpc1.id, zoneid=cls.zone.id, domainid=cls.domain.id, accountid=cls.account.name) cls.logger.debug("Network '%s' created, CIDR: %s, Gateway: %s", cls.network1.name, cls.network1.cidr, cls.network1.gateway) cls.vm1 = VirtualMachine.create(cls.api_client, cls.attributes['vms']['vm1'], templateid=cls.template.id, serviceofferingid=cls.virtual_machine_offering.id, networkids=[cls.network1.id], zoneid=cls.zone.id, domainid=cls.domain.id, accountid=cls.account.name) cls.logger.debug("VM '%s' created, Network: %s, IP %s", cls.vm1.name, cls.network1.name, cls.vm1.nic[0].ipaddress) cls.public_ip1 = PublicIPAddress.create(cls.api_client, zoneid=cls.zone.id, domainid=cls.account.domainid, accountid=cls.account.name, vpcid=cls.vpc1.id, networkid=cls.network1.id) cls.logger.debug("Public IP '%s' acquired, VPC: %s, Network: %s", cls.public_ip1.ipaddress.ipaddress, cls.vpc1.name, cls.network1.name) cls.nat_rule1 = NATRule.create(cls.api_client, cls.vm1, cls.attributes['nat_rule'], vpcid=cls.vpc1.id, networkid=cls.network1.id, ipaddressid=cls.public_ip1.ipaddress.id) cls.logger.debug("Port Forwarding Rule '%s (%s) %s => %s' created", cls.nat_rule1.ipaddress, cls.nat_rule1.protocol, cls.nat_rule1.publicport, cls.nat_rule1.privateport) cls.vpc2 = VPC.create(cls.api_client, cls.attributes['vpcs']['vpc2'], vpcofferingid=cls.vpc_offering.id, zoneid=cls.zone.id, domainid=cls.domain.id, account=cls.account.name) cls.logger.debug("VPC '%s' created, CIDR: %s", cls.vpc2.name, cls.vpc2.cidr) cls.network2 = Network.create(cls.api_client, cls.attributes['networks']['network3'], networkofferingid=cls.network_offering.id, aclid=cls.default_allow_acl.id, vpcid=cls.vpc2.id, zoneid=cls.zone.id, domainid=cls.domain.id, accountid=cls.account.name) cls.logger.debug("Network '%s' created, CIDR: %s, Gateway: %s", cls.network2.name, cls.network2.cidr, cls.network2.gateway) cls.vm2 = VirtualMachine.create(cls.api_client, cls.attributes['vms']['vm2'], templateid=cls.template.id, serviceofferingid=cls.virtual_machine_offering.id, networkids=[cls.network2.id], zoneid=cls.zone.id, domainid=cls.domain.id, accountid=cls.account.name) cls.logger.debug("VM '%s' created, Network: %s, IP: %s", cls.vm2.name, cls.network2.name, cls.vm2.nic[0].ipaddress) cls.public_ip2 = PublicIPAddress.create(cls.api_client, zoneid=cls.zone.id, domainid=cls.account.domainid, accountid=cls.account.name, vpcid=cls.vpc2.id, networkid=cls.network2.id) cls.logger.debug("Public IP '%s' acquired, VPC: %s, Network: %s", cls.public_ip2.ipaddress.ipaddress, cls.vpc2.name, cls.network2.name) cls.nat_rule2 = NATRule.create(cls.api_client, cls.vm2, cls.attributes['nat_rule'], vpcid=cls.vpc2.id, networkid=cls.network2.id, ipaddressid=cls.public_ip2.ipaddress.id) cls.logger.debug("Port Forwarding Rule '%s (%s) %s => %s' created", cls.nat_rule2.ipaddress, cls.nat_rule2.protocol, cls.nat_rule2.publicport, cls.nat_rule2.privateport) cls.private_gateways_network = Network.create(cls.api_client, cls.attributes['networks']['private_gateways_network'], networkofferingid=cls.private_network_offering.id, aclid=cls.default_allow_acl.id, zoneid=cls.zone.id, domainid=cls.domain.id, accountid=cls.account.name) cls.logger.debug("Network '%s' created, CIDR: %s", cls.private_gateways_network.name, cls.private_gateways_network.cidr) cls.private_gateway1 = PrivateGateway.create(cls.api_client, ipaddress=cls.attributes['private_gateways']['private_gateway1'], networkid=cls.private_gateways_network.id, aclid=cls.default_allow_acl.id, vpcid=cls.vpc1.id) cls.logger.debug("Private Gateway '%s' created, Network: %s, VPC: %s", cls.private_gateway1.ipaddress, cls.private_gateways_network.name, cls.vpc1.name) cls.static_route1 = StaticRoute.create(cls.api_client, cls.attributes['static_routes']['static_route1'], vpcid=cls.vpc1.id) cls.logger.debug("Static Route '%s => %s' created, VPC: %s", cls.static_route1.cidr, cls.static_route1.nexthop, cls.vpc1.name) cls.private_gateway2 = PrivateGateway.create(cls.api_client, ipaddress=cls.attributes['private_gateways']['private_gateway2'], networkid=cls.private_gateways_network.id, aclid=cls.default_allow_acl.id, vpcid=cls.vpc2.id) cls.logger.debug("Private Gateway '%s' created, Network: %s, VPC: %s", cls.private_gateway2.ipaddress, cls.private_gateways_network.name, cls.vpc2.name) cls.static_route2 = StaticRoute.create(cls.api_client, cls.attributes['static_routes']['static_route2'], vpcid=cls.vpc2.id) cls.logger.debug("Static Route '%s => %s' created, VPC: %s", cls.static_route2.cidr, cls.static_route2.nexthop, cls.vpc2.name)
def setUpClass(cls): cls._cleanup = [] cls.testClient = super(TestVPCRouterOneNetwork, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() cls.hypervisor = cls.testClient.getHypervisorInfo() cls.vpcSupported = True cls._cleanup = [] cls.services = Services().services # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template( cls.api_client, cls.zone.id, cls.services["ostype"] ) cls.services["virtual_machine"]["zoneid"] = cls.zone.id cls.services["virtual_machine"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, cls.services["service_offering"] ) cls._cleanup.append(cls.service_offering) cls.vpc_off = VpcOffering.create( cls.api_client, cls.services["vpc_offering"] ) cls.vpc_off.update(cls.api_client, state='Enabled') cls._cleanup.append(cls.vpc_off) cls.account = Account.create( cls.api_client, cls.services["account"], admin=True, domainid=cls.domain.id ) cls._cleanup.insert(0, cls.account) cls.services["vpc"]["cidr"] = '10.1.1.1/16' cls.vpc = VPC.create( cls.api_client, cls.services["vpc"], vpcofferingid=cls.vpc_off.id, zoneid=cls.zone.id, account=cls.account.name, domainid=cls.account.domainid ) private_gateway = PrivateGateway.create( cls.api_client, gateway='10.1.3.1', ipaddress='10.1.3.100', netmask='255.255.255.0', vlan=678, vpcid=cls.vpc.id ) cls.gateways = PrivateGateway.list( cls.api_client, id=private_gateway.id, listall=True ) static_route = StaticRoute.create( cls.api_client, cidr='11.1.1.1/24', gatewayid=private_gateway.id ) cls.static_routes = StaticRoute.list( cls.api_client, id=static_route.id, listall=True ) cls.nw_off = NetworkOffering.create( cls.api_client, cls.services["network_offering"], conservemode=False ) # Enable Network offering cls.nw_off.update(cls.api_client, state='Enabled') cls._cleanup.append(cls.nw_off) # Creating network using the network offering created cls.network_1 = Network.create( cls.api_client, cls.services["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.nw_off.id, zoneid=cls.zone.id, gateway='10.1.1.1', vpcid=cls.vpc.id ) # Spawn an instance in that network vm_1 = VirtualMachine.create( cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)] ) vm_2 = VirtualMachine.create( cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)] ) # Spawn an instance in that network vm_3 = VirtualMachine.create( cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)] ) VirtualMachine.list( cls.api_client, account=cls.account.name, domainid=cls.account.domainid, listall=True ) public_ip_1 = PublicIPAddress.create( cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id ) NATRule.create( cls.api_client, vm_1, cls.services["natrule"], ipaddressid=public_ip_1.ipaddress.id, openfirewall=False, networkid=cls.network_1.id, vpcid=cls.vpc.id ) NetworkACL.create( cls.api_client, networkid=cls.network_1.id, services=cls.services["natrule"], traffictype='Ingress' ) public_ip_2 = PublicIPAddress.create( cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id ) try: StaticNATRule.enable( cls.api_client, ipaddressid=public_ip_2.ipaddress.id, virtualmachineid=vm_2.id, networkid=cls.network_1.id ) except Exception as e: cls.fail("Failed to enable static NAT on IP: %s - %s" % ( public_ip_2.ipaddress.ipaddress, e)) PublicIPAddress.list( cls.api_client, networkid=cls.network_1.id, listall=True, isstaticnat=True, account=cls.account.name, domainid=cls.account.domainid ) public_ip_3 = PublicIPAddress.create( cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id ) lb_rule = LoadBalancerRule.create( cls.api_client, cls.services["lbrule"], ipaddressid=public_ip_3.ipaddress.id, accountid=cls.account.name, networkid=cls.network_1.id, vpcid=cls.vpc.id, domainid=cls.account.domainid ) lb_rule.assign(cls.api_client, [vm_3]) NetworkACL.create( cls.api_client, networkid=cls.network_1.id, services=cls.services["lbrule"], traffictype='Ingress' ) NetworkACL.create( cls.api_client, networkid=cls.network_1.id, services=cls.services["http_rule"], traffictype='Egress' )
def setUpClass(cls): cls._cleanup = [] cls.testClient = super(TestVPCRouterOneNetwork, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() cls.hypervisor = cls.testClient.getHypervisorInfo() cls.vpcSupported = True cls._cleanup = [] cls.services = Services().services # Get Zone, Domain and templates cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) cls.template = get_template(cls.api_client, cls.zone.id, cls.services["ostype"]) cls.services["virtual_machine"]["zoneid"] = cls.zone.id cls.services["virtual_machine"]["template"] = cls.template.id cls.service_offering = ServiceOffering.create( cls.api_client, cls.services["service_offering"]) cls._cleanup.append(cls.service_offering) cls.vpc_off = VpcOffering.create(cls.api_client, cls.services["vpc_offering"]) cls.vpc_off.update(cls.api_client, state='Enabled') cls._cleanup.append(cls.vpc_off) cls.account = Account.create(cls.api_client, cls.services["account"], admin=True, domainid=cls.domain.id) cls._cleanup.insert(0, cls.account) cls.services["vpc"]["cidr"] = '10.1.1.1/16' cls.vpc = VPC.create(cls.api_client, cls.services["vpc"], vpcofferingid=cls.vpc_off.id, zoneid=cls.zone.id, account=cls.account.name, domainid=cls.account.domainid) private_gateway = PrivateGateway.create(cls.api_client, gateway='10.1.3.1', ipaddress='10.1.3.100', netmask='255.255.255.0', vlan=678, vpcid=cls.vpc.id) cls.gateways = PrivateGateway.list(cls.api_client, id=private_gateway.id, listall=True) static_route = StaticRoute.create(cls.api_client, cidr='11.1.1.1/24', gatewayid=private_gateway.id) cls.static_routes = StaticRoute.list(cls.api_client, id=static_route.id, listall=True) cls.nw_off = NetworkOffering.create(cls.api_client, cls.services["network_offering"], conservemode=False) # Enable Network offering cls.nw_off.update(cls.api_client, state='Enabled') cls._cleanup.append(cls.nw_off) # Creating network using the network offering created cls.network_1 = Network.create(cls.api_client, cls.services["network"], accountid=cls.account.name, domainid=cls.account.domainid, networkofferingid=cls.nw_off.id, zoneid=cls.zone.id, gateway='10.1.1.1', vpcid=cls.vpc.id) # Spawn an instance in that network vm_1 = VirtualMachine.create(cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)]) vm_2 = VirtualMachine.create(cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)]) # Spawn an instance in that network vm_3 = VirtualMachine.create(cls.api_client, cls.services["virtual_machine"], accountid=cls.account.name, domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id, networkids=[str(cls.network_1.id)]) VirtualMachine.list(cls.api_client, account=cls.account.name, domainid=cls.account.domainid, listall=True) public_ip_1 = PublicIPAddress.create(cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id) NATRule.create(cls.api_client, vm_1, cls.services["natrule"], ipaddressid=public_ip_1.ipaddress.id, openfirewall=False, networkid=cls.network_1.id, vpcid=cls.vpc.id) NetworkACL.create(cls.api_client, networkid=cls.network_1.id, services=cls.services["natrule"], traffictype='Ingress') public_ip_2 = PublicIPAddress.create(cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id) try: StaticNATRule.enable(cls.api_client, ipaddressid=public_ip_2.ipaddress.id, virtualmachineid=vm_2.id, networkid=cls.network_1.id) except Exception as e: cls.fail("Failed to enable static NAT on IP: %s - %s" % (public_ip_2.ipaddress.ipaddress, e)) PublicIPAddress.list(cls.api_client, networkid=cls.network_1.id, listall=True, isstaticnat=True, account=cls.account.name, domainid=cls.account.domainid) public_ip_3 = PublicIPAddress.create(cls.api_client, accountid=cls.account.name, zoneid=cls.zone.id, domainid=cls.account.domainid, networkid=cls.network_1.id, vpcid=cls.vpc.id) lb_rule = LoadBalancerRule.create(cls.api_client, cls.services["lbrule"], ipaddressid=public_ip_3.ipaddress.id, accountid=cls.account.name, networkid=cls.network_1.id, vpcid=cls.vpc.id, domainid=cls.account.domainid) lb_rule.assign(cls.api_client, [vm_3]) NetworkACL.create(cls.api_client, networkid=cls.network_1.id, services=cls.services["lbrule"], traffictype='Ingress') NetworkACL.create(cls.api_client, networkid=cls.network_1.id, services=cls.services["http_rule"], traffictype='Egress')