From a5248f1cfc20faab30c6a6b02f55d9b697ffbe1d Mon Sep 17 00:00:00 2001 From: Jayapal Date: Wed, 22 Aug 2012 16:45:23 +0530 Subject: [PATCH] Fix for dns issue in multiple pods Signed-off-by: Abhinandan Prateek --- .../router/VirtualNetworkApplianceManagerImpl.java | 2 +- server/src/com/cloud/vm/dao/NicDao.java | 2 ++ server/src/com/cloud/vm/dao/NicDaoImpl.java | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 730ce28053a..5528f792759 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2414,7 +2414,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } //find domR's nic in the network - NicVO domrDefaultNic = _nicDao.findByNetworkIdAndType(defaultNic.getNetworkId(), VirtualMachine.Type.DomainRouter); + NicVO domrDefaultNic = _nicDao.findByNetworkIdTypeAndGateway(defaultNic.getNetworkId(), VirtualMachine.Type.DomainRouter, defaultNic.getGateway()); return domrDefaultNic.getIp4Address(); } diff --git a/server/src/com/cloud/vm/dao/NicDao.java b/server/src/com/cloud/vm/dao/NicDao.java index 53ece751ac1..762048b65bf 100644 --- a/server/src/com/cloud/vm/dao/NicDao.java +++ b/server/src/com/cloud/vm/dao/NicDao.java @@ -33,6 +33,8 @@ public interface NicDao extends GenericDao { NicVO findByInstanceIdAndNetworkId(long networkId, long instanceId); NicVO findByInstanceIdAndNetworkIdIncludingRemoved(long networkId, long instanceId); + + NicVO findByNetworkIdTypeAndGateway(long networkId, VirtualMachine.Type vmType, String gateway); void removeNicsForInstance(long instanceId); diff --git a/server/src/com/cloud/vm/dao/NicDaoImpl.java b/server/src/com/cloud/vm/dao/NicDaoImpl.java index 30f885524ec..3cd7fa6b488 100644 --- a/server/src/com/cloud/vm/dao/NicDaoImpl.java +++ b/server/src/com/cloud/vm/dao/NicDaoImpl.java @@ -45,6 +45,7 @@ public class NicDaoImpl extends GenericDaoBase implements NicDao { AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("instance", AllFieldsSearch.entity().getInstanceId(), Op.EQ); AllFieldsSearch.and("network", AllFieldsSearch.entity().getNetworkId(), Op.EQ); + AllFieldsSearch.and("gateway", AllFieldsSearch.entity().getGateway(), Op.EQ); AllFieldsSearch.and("vmType", AllFieldsSearch.entity().getVmType(), Op.EQ); AllFieldsSearch.and("address", AllFieldsSearch.entity().getIp4Address(), Op.EQ); AllFieldsSearch.and("isDefault", AllFieldsSearch.entity().isDefaultNic(), Op.EQ); @@ -130,6 +131,15 @@ public class NicDaoImpl extends GenericDaoBase implements NicDao { return findOneBy(sc); } + @Override + public NicVO findByNetworkIdTypeAndGateway(long networkId, VirtualMachine.Type vmType, String gateway) { + SearchCriteria sc = AllFieldsSearch.create(); + sc.setParameters("network", networkId); + sc.setParameters("vmType", vmType); + sc.setParameters("gateway", gateway); + return findOneBy(sc); + } + @Override public NicVO findByIp4AddressAndNetworkId(String ip4Address, long networkId) { SearchCriteria sc = AllFieldsSearch.create();