|
29 | 29 | import javax.annotation.PostConstruct; |
30 | 30 | import javax.inject.Inject; |
31 | 31 |
|
| 32 | +import com.cloud.network.Network; |
| 33 | +import com.cloud.network.dao.NetworkDao; |
| 34 | +import com.cloud.network.dao.NetworkVO; |
32 | 35 | import org.apache.log4j.Logger; |
33 | 36 |
|
34 | 37 | import com.cloud.server.ResourceTag.ResourceObjectType; |
@@ -77,6 +80,8 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use |
77 | 80 | // ResourceTagsDaoImpl _tagsDao = ComponentLocator.inject(ResourceTagsDaoImpl.class); |
78 | 81 | @Inject |
79 | 82 | ResourceTagDao _tagsDao; |
| 83 | + @Inject |
| 84 | + NetworkDao networkDao; |
80 | 85 |
|
81 | 86 | private static final String LIST_PODS_HAVING_VMS_FOR_ACCOUNT = |
82 | 87 | "SELECT pod_id FROM cloud.vm_instance WHERE data_center_id = ? AND account_id = ? AND pod_id IS NOT NULL AND (state = 'Running' OR state = 'Stopped') " |
@@ -301,13 +306,16 @@ public List<UserVmVO> listVirtualNetworkInstancesByAcctAndNetwork(long accountId |
301 | 306 |
|
302 | 307 | @Override |
303 | 308 | public List<UserVmVO> listByNetworkIdAndStates(long networkId, State... states) { |
304 | | - if (UserVmSearch == null) { |
| 309 | + NetworkVO network = networkDao.findById(networkId); |
| 310 | + if (UserVmSearch == null && network != null) { |
305 | 311 | SearchBuilder<NicVO> nicSearch = _nicDao.createSearchBuilder(); |
306 | 312 | nicSearch.and("networkId", nicSearch.entity().getNetworkId(), SearchCriteria.Op.EQ); |
307 | 313 | nicSearch.and("removed", nicSearch.entity().getRemoved(), SearchCriteria.Op.NULL); |
308 | | - nicSearch.and().op("ip4Address", nicSearch.entity().getIPv4Address(), SearchCriteria.Op.NNULL); |
309 | | - nicSearch.or("ip6Address", nicSearch.entity().getIPv6Address(), SearchCriteria.Op.NNULL); |
310 | | - nicSearch.cp(); |
| 314 | + if (!network.getGuestType().equals(Network.GuestType.L2)) { |
| 315 | + nicSearch.and().op("ip4Address", nicSearch.entity().getIPv4Address(), SearchCriteria.Op.NNULL); |
| 316 | + nicSearch.or("ip6Address", nicSearch.entity().getIPv6Address(), SearchCriteria.Op.NNULL); |
| 317 | + nicSearch.cp(); |
| 318 | + } |
311 | 319 |
|
312 | 320 | UserVmSearch = createSearchBuilder(); |
313 | 321 | UserVmSearch.and("states", UserVmSearch.entity().getState(), SearchCriteria.Op.IN); |
|
0 commit comments