mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge branch '4.14'
This commit is contained in:
commit
fb1e903532
@ -175,6 +175,10 @@ public class NicProfile implements InternalIdentity, Serializable {
|
||||
this.deviceId = deviceId;
|
||||
}
|
||||
|
||||
public void setDeviceId(Integer deviceId) {
|
||||
this.deviceId = deviceId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -85,6 +85,7 @@ public class NicProfileHelperImpl implements NicProfileHelper {
|
||||
new NicProfile(privateNic, privateNetwork, privateNic.getBroadcastUri(), privateNic.getIsolationUri(), _networkModel.getNetworkRate(
|
||||
privateNetwork.getId(), router.getId()), _networkModel.isSecurityGroupSupportedInNetwork(privateNetwork), _networkModel.getNetworkTag(
|
||||
router.getHypervisorType(), privateNetwork));
|
||||
privateNicProfile.setDeviceId(null);
|
||||
|
||||
if (router.getIsRedundantRouter()) {
|
||||
String newMacAddress = NetUtils.long2Mac(NetUtils.createSequenceBasedMacAddress(ipVO.getMacAddress(), NetworkModel.MACIdentifier.value()));
|
||||
@ -137,4 +138,4 @@ public class NicProfileHelperImpl implements NicProfileHelper {
|
||||
return _ipAddrMgr.acquireGuestIpAddressByPlacement(network, null);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -314,6 +314,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
||||
// 2) FORM PLUG NIC COMMANDS
|
||||
final List<Pair<Nic, Network>> guestNics = new ArrayList<Pair<Nic, Network>>();
|
||||
final List<Pair<Nic, Network>> publicNics = new ArrayList<Pair<Nic, Network>>();
|
||||
final List<Pair<Nic, Network>> privateGatewayNics = new ArrayList<Pair<Nic, Network>>();
|
||||
final Map<String, String> vlanMacAddress = new HashMap<String, String>();
|
||||
|
||||
final List<? extends Nic> routerNics = _nicDao.listByVmIdOrderByDeviceId(profile.getId());
|
||||
@ -321,7 +322,11 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
||||
final Network network = _networkModel.getNetwork(routerNic.getNetworkId());
|
||||
if (network.getTrafficType() == TrafficType.Guest) {
|
||||
final Pair<Nic, Network> guestNic = new Pair<Nic, Network>(routerNic, network);
|
||||
guestNics.add(guestNic);
|
||||
if (_networkModel.isPrivateGateway(routerNic.getNetworkId())) {
|
||||
privateGatewayNics.add(guestNic);
|
||||
} else {
|
||||
guestNics.add(guestNic);
|
||||
}
|
||||
} else if (network.getTrafficType() == TrafficType.Public) {
|
||||
final Pair<Nic, Network> publicNic = new Pair<Nic, Network>(routerNic, network);
|
||||
publicNics.add(publicNic);
|
||||
@ -375,6 +380,36 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
||||
_commandSetupHelper.createVpcAssociatePublicIPCommands(domainRouterVO, sourceNat, cmds, vlanMacAddress);
|
||||
}
|
||||
|
||||
// add VPC router to private gateway networks
|
||||
for (final Pair<Nic, Network> nicNtwk : privateGatewayNics) {
|
||||
final Nic guestNic = updateNicWithDeviceId(nicNtwk.first().getId(), deviceId);
|
||||
deviceId ++;
|
||||
// plug guest nic
|
||||
final PlugNicCommand plugNicCmd = new PlugNicCommand(_nwHelper.getNicTO(domainRouterVO, guestNic.getNetworkId(), null), domainRouterVO.getInstanceName(), domainRouterVO.getType(), details);
|
||||
cmds.addCommand(plugNicCmd);
|
||||
// set private network
|
||||
final PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(guestNic.getNetworkId(), guestNic.getIPv4Address());
|
||||
final Network network = _networkDao.findById(guestNic.getNetworkId());
|
||||
BroadcastDomainType.getValue(network.getBroadcastUri());
|
||||
final String netmask = NetUtils.getCidrNetmask(network.getCidr());
|
||||
final PrivateIpAddress ip = new PrivateIpAddress(ipVO, network.getBroadcastUri().toString(), network.getGateway(), netmask, guestNic.getMacAddress());
|
||||
|
||||
final List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
|
||||
privateIps.add(ip);
|
||||
_commandSetupHelper.createVpcAssociatePrivateIPCommands(domainRouterVO, privateIps, cmds, true);
|
||||
|
||||
final Long privateGwAclId = _vpcGatewayDao.getNetworkAclIdForPrivateIp(ipVO.getVpcId(), ipVO.getNetworkId(), ipVO.getIpAddress());
|
||||
|
||||
if (privateGwAclId != null) {
|
||||
// set network acl on private gateway
|
||||
final List<NetworkACLItemVO> networkACLs = _networkACLItemDao.listByACL(privateGwAclId);
|
||||
s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + domainRouterVO + " start for private gateway ip = "
|
||||
+ ipVO.getIpAddress());
|
||||
|
||||
_commandSetupHelper.createNetworkACLsCommands(networkACLs, domainRouterVO, cmds, ipVO.getNetworkId(), true);
|
||||
}
|
||||
}
|
||||
|
||||
// add VPC router to guest networks
|
||||
for (final Pair<Nic, Network> nicNtwk : guestNics) {
|
||||
final Nic guestNic = updateNicWithDeviceId(nicNtwk.first().getId(), deviceId);
|
||||
@ -382,36 +417,11 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian
|
||||
// plug guest nic
|
||||
final PlugNicCommand plugNicCmd = new PlugNicCommand(_nwHelper.getNicTO(domainRouterVO, guestNic.getNetworkId(), null), domainRouterVO.getInstanceName(), domainRouterVO.getType(), details);
|
||||
cmds.addCommand(plugNicCmd);
|
||||
if (!_networkModel.isPrivateGateway(guestNic.getNetworkId())) {
|
||||
// set guest network
|
||||
final VirtualMachine vm = _vmDao.findById(domainRouterVO.getId());
|
||||
final NicProfile nicProfile = _networkModel.getNicProfile(vm, guestNic.getNetworkId(), null);
|
||||
final SetupGuestNetworkCommand setupCmd = _commandSetupHelper.createSetupGuestNetworkCommand(domainRouterVO, true, nicProfile);
|
||||
cmds.addCommand(setupCmd);
|
||||
} else {
|
||||
|
||||
// set private network
|
||||
final PrivateIpVO ipVO = _privateIpDao.findByIpAndSourceNetworkId(guestNic.getNetworkId(), guestNic.getIPv4Address());
|
||||
final Network network = _networkDao.findById(guestNic.getNetworkId());
|
||||
BroadcastDomainType.getValue(network.getBroadcastUri());
|
||||
final String netmask = NetUtils.getCidrNetmask(network.getCidr());
|
||||
final PrivateIpAddress ip = new PrivateIpAddress(ipVO, network.getBroadcastUri().toString(), network.getGateway(), netmask, guestNic.getMacAddress());
|
||||
|
||||
final List<PrivateIpAddress> privateIps = new ArrayList<PrivateIpAddress>(1);
|
||||
privateIps.add(ip);
|
||||
_commandSetupHelper.createVpcAssociatePrivateIPCommands(domainRouterVO, privateIps, cmds, true);
|
||||
|
||||
final Long privateGwAclId = _vpcGatewayDao.getNetworkAclIdForPrivateIp(ipVO.getVpcId(), ipVO.getNetworkId(), ipVO.getIpAddress());
|
||||
|
||||
if (privateGwAclId != null) {
|
||||
// set network acl on private gateway
|
||||
final List<NetworkACLItemVO> networkACLs = _networkACLItemDao.listByACL(privateGwAclId);
|
||||
s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + domainRouterVO + " start for private gateway ip = "
|
||||
+ ipVO.getIpAddress());
|
||||
|
||||
_commandSetupHelper.createNetworkACLsCommands(networkACLs, domainRouterVO, cmds, ipVO.getNetworkId(), true);
|
||||
}
|
||||
}
|
||||
// set guest network
|
||||
final VirtualMachine vm = _vmDao.findById(domainRouterVO.getId());
|
||||
final NicProfile nicProfile = _networkModel.getNicProfile(vm, guestNic.getNetworkId(), null);
|
||||
final SetupGuestNetworkCommand setupCmd = _commandSetupHelper.createSetupGuestNetworkCommand(domainRouterVO, true, nicProfile);
|
||||
cmds.addCommand(setupCmd);
|
||||
}
|
||||
} catch (final Exception ex) {
|
||||
s_logger.warn("Failed to add router " + domainRouterVO + " to network due to exception ", ex);
|
||||
|
||||
@ -429,7 +429,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 6. create new public ip range 1
|
||||
self.services["publiciprange"]["zoneid"] = self.zone.id
|
||||
self.services["publiciprange"]["forvirtualnetwork"] = "true"
|
||||
random_subnet_number = random.randrange(10,20)
|
||||
random_subnet_number = random.randrange(10,50)
|
||||
self.services["publiciprange"]["vlan"] = get_free_vlan(
|
||||
self.apiclient,
|
||||
self.zone.id)[1]
|
||||
@ -753,7 +753,8 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 20. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,"
|
||||
# verify the IPs in VR. eth0 -> guest nic, eth2 -> source nat IP, eth3 -> new ip 6
|
||||
for router in routers:
|
||||
if len(routers) > 0:
|
||||
router = routers[0]
|
||||
cmd = rebootRouter.rebootRouterCmd()
|
||||
cmd.id = router.id
|
||||
self.apiclient.rebootRouter(cmd)
|
||||
|
||||
@ -429,7 +429,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 6. create new public ip range 1
|
||||
self.services["publiciprange"]["zoneid"] = self.zone.id
|
||||
self.services["publiciprange"]["forvirtualnetwork"] = "true"
|
||||
random_subnet_number = random.randrange(10,20)
|
||||
random_subnet_number = random.randrange(10,50)
|
||||
self.services["publiciprange"]["vlan"] = get_free_vlan(
|
||||
self.apiclient,
|
||||
self.zone.id)[1]
|
||||
@ -753,7 +753,8 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 20. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,"
|
||||
# verify the IPs in VR. eth0 -> guest nic, eth2 -> source nat IP, eth3 -> new ip 6
|
||||
for router in routers:
|
||||
if len(routers) > 0:
|
||||
router = routers[0]
|
||||
cmd = rebootRouter.rebootRouterCmd()
|
||||
cmd.id = router.id
|
||||
self.apiclient.rebootRouter(cmd)
|
||||
|
||||
@ -328,13 +328,13 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> tier 1, eth4 -> tier 2, eth5 -> new ip 6, eth3-> private gateway
|
||||
# 24. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
# 25. restart VPC with cleanup
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
# 26. restart VPC with cleanup, makeredundant=true
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
"""
|
||||
|
||||
# Create new domain1
|
||||
@ -479,7 +479,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 6. create new public ip range 1
|
||||
self.services["publiciprange"]["zoneid"] = self.zone.id
|
||||
self.services["publiciprange"]["forvirtualnetwork"] = "true"
|
||||
random_subnet_number = random.randrange(10,20)
|
||||
random_subnet_number = random.randrange(10,50)
|
||||
self.services["publiciprange"]["vlan"] = get_free_vlan(
|
||||
self.apiclient,
|
||||
self.zone.id)[1]
|
||||
@ -900,9 +900,10 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
|
||||
# 24. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
if len(routers) > 0:
|
||||
router = routers[0]
|
||||
cmd = rebootRouter.rebootRouterCmd()
|
||||
cmd.id = router.id
|
||||
self.apiclient.rebootRouter(cmd)
|
||||
@ -913,14 +914,14 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
# 25. restart VPC with cleanup
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
self.vpc1.restart(self.apiclient, cleanup=True)
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
@ -930,14 +931,14 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
# 26. restart VPC with cleanup, makeredundant=true
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
self.vpc1.restart(self.apiclient, cleanup=True, makeredundant=True)
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
@ -947,7 +948,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
@ -328,13 +328,13 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> tier 1, eth4 -> tier 2, eth5 -> new ip 6, eth3-> private gateway
|
||||
# 24. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
# 25. restart VPC with cleanup
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
# 26. restart VPC with cleanup, makeredundant=true
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
"""
|
||||
|
||||
# Create new domain1
|
||||
@ -479,7 +479,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
# 6. create new public ip range 1
|
||||
self.services["publiciprange"]["zoneid"] = self.zone.id
|
||||
self.services["publiciprange"]["forvirtualnetwork"] = "true"
|
||||
random_subnet_number = random.randrange(10,20)
|
||||
random_subnet_number = random.randrange(10,50)
|
||||
self.services["publiciprange"]["vlan"] = get_free_vlan(
|
||||
self.apiclient,
|
||||
self.zone.id)[1]
|
||||
@ -900,9 +900,10 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
|
||||
# 24. reboot router
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
if len(routers) > 0:
|
||||
router = routers[0]
|
||||
cmd = rebootRouter.rebootRouterCmd()
|
||||
cmd.id = router.id
|
||||
self.apiclient.rebootRouter(cmd)
|
||||
@ -913,14 +914,14 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
# 25. restart VPC with cleanup
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
self.vpc1.restart(self.apiclient, cleanup=True)
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
@ -930,14 +931,14 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
# 26. restart VPC with cleanup, makeredundant=true
|
||||
# verify the available nics in VR should be "eth0,eth1,eth2,eth3,eth4,eth5,"
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> tier 1, eth4 -> private gateway, eth5 -> tier 2
|
||||
# verify the IPs in VR. eth1 -> source nat IP, eth2 -> new ip 6, eth3 -> private gateway, eth4 -> tier 1, eth5 -> tier 2
|
||||
self.vpc1.restart(self.apiclient, cleanup=True, makeredundant=True)
|
||||
routers = self.get_vpc_routers(self.vpc1.id)
|
||||
for router in routers:
|
||||
@ -947,7 +948,7 @@ class TestMultiplePublicIpSubnets(cloudstackTestCase):
|
||||
self.verify_ip_address_in_router(router, host, controlIp, "eth0", True)
|
||||
self.verify_ip_address_in_router(router, host, sourcenatIp, "eth1", True)
|
||||
self.verify_ip_address_in_router(router, host, ipaddress_6.ipaddress.ipaddress, "eth2", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, private_gateway_ip, "eth3", True)
|
||||
self.verify_ip_address_in_router(router, host, tier1_Ip, "eth4", True)
|
||||
self.verify_ip_address_in_router(router, host, tier2_Ip, "eth5", True)
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth4")
|
||||
self.verify_router_publicnic_state(router, host, "eth1|eth2|eth3")
|
||||
|
||||
@ -1144,6 +1144,11 @@ def get_free_vlan(apiclient, zoneid):
|
||||
usedVlanIds = [int(nw.vlan)
|
||||
for nw in networks if (nw.vlan and str(nw.vlan).lower() != "untagged")]
|
||||
|
||||
ipranges = list_vlan_ipranges(apiclient, zoneid=zoneid)
|
||||
if isinstance(ipranges, list) and len(ipranges) > 0:
|
||||
usedVlanIds += [int(iprange.vlan.split("/")[-1])
|
||||
for iprange in ipranges if (iprange.vlan and iprange.vlan.split("/")[-1].lower() != "untagged")]
|
||||
|
||||
if not hasattr(physical_network, "vlan"):
|
||||
while True:
|
||||
shared_ntwk_vlan = random.randrange(1, 4095)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user