From 20b6b3630250ba2c37447c2e2afbd34f83498e80 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 26 Jul 2012 09:41:18 -0700 Subject: [PATCH] VPC: 1) CS-15692 - ipAddress is always null for NetworkACL rule 2) CS-15699 - redundant router = true when provider is VirtualRouter 3) CS-15701 - fixed error message --- awsapi.log.2012-07-25.gz | Bin 0 -> 1037 bytes .../network/element/VpcVirtualRouterElement.java | 6 ++++-- .../network/firewall/FirewallManagerImpl.java | 8 +++++--- .../VpcVirtualNetworkApplianceManagerImpl.java | 2 +- .../com/cloud/network/vpc/VpcManagerImpl.java | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 awsapi.log.2012-07-25.gz diff --git a/awsapi.log.2012-07-25.gz b/awsapi.log.2012-07-25.gz new file mode 100644 index 0000000000000000000000000000000000000000..02fd067aac27440bddde36bcfbd5b6f4fa32f732 GIT binary patch literal 1037 zcmV+o1oHbIiwFP!000000Nt8Rubeg%hWGsy-c(8?1OCLuyEJXpY?4Yzltq*Um+|DH zasdHz)8^OL3$L}AcyF=%#Z@cSO%vCla+L6~?*c!UEKDTWk@AdMt=@$%1C0K89% zys3&T)0JOS|Fy2}(?tJW75C{uS0BKWH@B6J4<5xTKV{id@ZcYyZi=$hhhNCoGF&kX zxkOWC?&37J3U6y|MvbfHRD!Z9N?kRnuE8 zfAC&H7WFFeziCbUgD$h;zdM~bz0mLHD-VUbt7-lbywf+J?*6Jk_q=sN{5YDaFX-N8NrY*x^fyBsW5^J zxeMp$F?0aV!3_%+gtJ%SX!CFmp^zQHiO(x1kI1rcVl%BV$fhsQE5O-%bfD%O-9&6r zI6Dv$|E2niM=S*kQ;p|id-uhO`7z*1BoU{#z zBZ#I`GY3xAF3<>>^vT_{cJN4Ds5u8Wa!!>#70zCTVt2MuW`H?_LEK7dXF|!&TefZ1 zbSaeP)=QvdLLp+NGj|(7qemCg*};umvP;{mNQYL;Sy0+A#`$#PPzpt;f%4J@&_z&k z)fVVxDx;H|z>f~)=rM8t%E8T|D`l_3$mX|BhEVo%=-?a@r7#rk=9i;KXQ(l5#G;*< zL1pvj=*Cd?bB>O;8;+m<8ImO>u#-y_pyPIc@9;F*_c5e8R8;*lYblolVb>KXQ z!mhkMvnrg7Da;|BUTe&Qv#m8L#M95xt^lX?IG!n66;A7BR<1D}&Q68k&F^Upq0n$Y zaB`*yhGc0td8iPE(ey^p3UFGF7&!r_bu()^n+~T{kvk{`+fWEZ$gS4tg>e24xY;De Hyfpv-f?WmO literal 0 HcmV?d00001 diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java index e6959b0f3ac..79795f25719 100644 --- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java @@ -288,11 +288,13 @@ public class VpcVirtualRouterElement extends VirtualRouterElement implements Vpc Map> capabilities = new HashMap>(); capabilities.putAll(VirtualRouterElement.capabilities); - Map sourceNatCapabilities = capabilities.get(Service.SourceNat); + Map sourceNatCapabilities = new HashMap(); + sourceNatCapabilities.putAll(capabilities.get(Service.SourceNat)); sourceNatCapabilities.put(Capability.RedundantRouter, "false"); capabilities.put(Service.SourceNat, sourceNatCapabilities); - Map vpnCapabilities = capabilities.get(Service.Vpn); + Map vpnCapabilities = new HashMap(); + vpnCapabilities.putAll(capabilities.get(Service.Vpn)); vpnCapabilities.put(Capability.VpnTypes, "s2svpn"); capabilities.put(Service.Vpn, vpnCapabilities); diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java index f80cc578913..21eb1740217 100644 --- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java @@ -462,9 +462,11 @@ public class FirewallManagerImpl implements FirewallService, FirewallManager, Ma //remove the rule _firewallDao.remove(rule.getId()); - //if the rule is the last one for the ip address assigned to VPC, unassign it from the network - IpAddress ip = _ipAddressDao.findById(rule.getSourceIpAddressId()); - _networkMgr.unassignIPFromVpcNetwork(ip.getId(), rule.getNetworkId()); + if (rule.getSourceIpAddressId() != null) { + //if the rule is the last one for the ip address assigned to VPC, unassign it from the network + IpAddress ip = _ipAddressDao.findById(rule.getSourceIpAddressId()); + _networkMgr.unassignIPFromVpcNetwork(ip.getId(), rule.getNetworkId()); + } } @Override diff --git a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java index 42a7a2df8b0..e2143a8817f 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -891,7 +891,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian super.finalizeNetworkRulesForNetwork(cmds, router, provider, guestNetworkId); - if (router.getVpcId() == null) { + if (router.getVpcId() != null) { if (_networkMgr.isProviderSupportServiceInNetwork(guestNetworkId, Service.NetworkACL, Provider.VPCVirtualRouter)) { List networkACLs = _networkACLMgr.listNetworkACLs(guestNetworkId); s_logger.debug("Found " + networkACLs.size() + " network ACLs to apply as a part of VPC VR " + router diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 201f24328d8..528f4b19185 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -917,7 +917,7 @@ public class VpcManagerImpl implements VpcManager, Manager{ && _ntwkMgr.areServicesSupportedByNetworkOffering(guestNtwkOff.getId(), Service.SourceNat))) { throw new InvalidParameterValueException("Only networks of type " + GuestType.Isolated + " with service " - + Service.SourceNat + + + Service.SourceNat.getName() + " can be added as a part of VPC", null); }