From 522f4ebac2bc14e17cdf4a62dd2af47a8457361c Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 10 Nov 2020 20:32:33 +0000 Subject: [PATCH 1/3] vpc: fix ips on wrong interfaces after rebooting vpc vrs --- ...VpcVirtualNetworkApplianceManagerImpl.java | 14 ++++++-- .../debian/opt/cloud/bin/setup/bootstrap.sh | 3 ++ ...st_multiple_subnets_in_isolated_network.py | 34 +++++++++++++++++++ ...ultiple_subnets_in_isolated_network_rvr.py | 34 +++++++++++++++++++ .../component/test_multiple_subnets_in_vpc.py | 33 ++++++++++++++++++ .../test_multiple_subnets_in_vpc_rvr.py | 33 ++++++++++++++++++ 6 files changed, 149 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index e9d32a2152b1..995eb7af451f 100644 --- a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -339,6 +339,7 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine vlanMacAddress.put(vlanTag, routerNic.getMacAddress()); } } + int deviceId = 1; //Public and Guest networks start from device_id = 1 final List usageCmds = new ArrayList(); @@ -347,7 +348,8 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine // add VPC router to public networks final List sourceNat = new ArrayList(1); for (final Pair nicNtwk : publicNics) { - final Nic publicNic = nicNtwk.first(); + final Nic publicNic = getNicWithUpdatedDeviceId(nicNtwk.first().getId(), deviceId); + deviceId ++; final Network publicNtwk = nicNtwk.second(); final IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(publicNtwk.getId(), publicNic.getIPv4Address()); @@ -385,7 +387,8 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine // add VPC router to guest networks for (final Pair nicNtwk : guestNics) { - final Nic guestNic = nicNtwk.first(); + final Nic guestNic = getNicWithUpdatedDeviceId(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); @@ -834,4 +837,11 @@ public boolean postStateTransitionEvent(final StateMachine2.Transition Date: Fri, 13 Nov 2020 12:42:52 +0000 Subject: [PATCH 2/3] #4467: Rename to updateNicWithDeviceId --- .../router/VpcVirtualNetworkApplianceManagerImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 995eb7af451f..556fe18388f1 100644 --- a/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -348,7 +348,7 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine // add VPC router to public networks final List sourceNat = new ArrayList(1); for (final Pair nicNtwk : publicNics) { - final Nic publicNic = getNicWithUpdatedDeviceId(nicNtwk.first().getId(), deviceId); + final Nic publicNic = updateNicWithDeviceId(nicNtwk.first().getId(), deviceId); deviceId ++; final Network publicNtwk = nicNtwk.second(); final IPAddressVO userIp = _ipAddressDao.findByIpAndSourceNetworkId(publicNtwk.getId(), publicNic.getIPv4Address()); @@ -387,7 +387,7 @@ public boolean finalizeCommandsOnStart(final Commands cmds, final VirtualMachine // add VPC router to guest networks for (final Pair nicNtwk : guestNics) { - final Nic guestNic = getNicWithUpdatedDeviceId(nicNtwk.first().getId(), deviceId); + 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); @@ -838,7 +838,7 @@ public boolean postStateTransitionEvent(final StateMachine2.Transition Date: Tue, 17 Nov 2020 20:26:46 +0000 Subject: [PATCH 3/3] CLSTACK-8923 vr: Force a restart of keepalived if conntrackd is not running or configuration has changed --- systemvm/debian/opt/cloud/bin/cs/CsRedundant.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py b/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py index cefedbfe84f1..190de1ab82e2 100755 --- a/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py +++ b/systemvm/debian/opt/cloud/bin/cs/CsRedundant.py @@ -173,7 +173,7 @@ def _redundant_on(self): force_keepalived_restart = False proc = CsProcess(['/etc/conntrackd/conntrackd.conf']) - if not proc.find() and not is_equals: + if not proc.find() or not is_equals: CsHelper.copy(conntrackd_template_conf, self.CONNTRACKD_CONF) CsHelper.service("conntrackd", "restart") force_keepalived_restart = True