From f383e5a37dfe2be7810abd30efd565005eb137c7 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Thu, 24 Feb 2011 19:58:13 -0500 Subject: [PATCH] security group is per vm per nic --- server/src/com/cloud/vm/UserVmManagerImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 4ba008d1cd5..68e71237ddc 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -104,7 +104,6 @@ import com.cloud.ha.HighAvailabilityManager; import com.cloud.host.HostVO; import com.cloud.host.dao.DetailsDao; import com.cloud.host.dao.HostDao; -import com.cloud.hypervisor.Hypervisor; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.IPAddressVO; import com.cloud.network.Network; @@ -2707,13 +2706,14 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager @Override public boolean isVmSecurityGroupEnabled(Long vmId) { - UserVmVO userVM = _vmDao.findById(vmId); - if (userVM != null) { - DataCenterVO dataCenter = _dcDao.findById(userVM.getDataCenterId()); - if (dataCenter != null && dataCenter.isSecurityGroupEnabled() && userVM.getHypervisorType() != Hypervisor.HypervisorType.VMware) { - return true; - } - } + List nics = _nicDao.listByVmId(vmId); + UserVmVO vm = _vmDao.findById(vmId); + for (NicVO nic : nics) { + Network network = _networkDao.findById(nic.getNetworkId()); + if (network != null && network.isSecurityGroupEnabled() && vm.getHypervisorType() != HypervisorType.VMware) { + return true; + } + } return false; } }