@Override public List<PodCluster> listByDataCenter(final long dcId) { final List<HostPodVO> pods = _podDao.listByDataCenterId(dcId); final ArrayList<PodCluster> pcs = new ArrayList<PodCluster>(); for (final HostPodVO pod : pods) { final List<ClusterVO> clusters = _clusterDao.listByPodId(pod.getId()); if (clusters.size() == 0) { pcs.add(new PodCluster(pod, null)); } else { for (final ClusterVO cluster : clusters) { pcs.add(new PodCluster(pod, cluster)); } } } return pcs; }
private void checkOverlapPrivateIpRange(final Long zoneId, final String startIp, final String endIp) { final List<HostPodVO> podsInZone = _podDao.listByDataCenterId(zoneId); for (final HostPodVO hostPod : podsInZone) { final String[] existingPodIpRanges = hostPod.getDescription().split(","); for(String podIpRange: existingPodIpRanges) { final String[] existingPodIpRange = podIpRange.split("-"); if (existingPodIpRange.length > 1) { if (!NetUtils.isValidIp4(existingPodIpRange[0]) || !NetUtils.isValidIp4(existingPodIpRange[1])) { continue; } if (NetUtils.ipRangesOverlap(startIp, endIp, existingPodIpRange[0], existingPodIpRange[1])) { throw new InvalidParameterValueException("The Start IP and EndIP address range overlap with private IP :" + existingPodIpRange[0] + ":" + existingPodIpRange[1]); } } } } }
private HostPodVO findPod(StartupCommand startup, long zoneId, Host.Type type) { HostPodVO pod = null; List<HostPodVO> podsInZone = _podDao.listByDataCenterId(zoneId); for (HostPodVO hostPod : podsInZone) { if (checkCIDR(type, hostPod, startup.getPrivateIpAddress(), startup.getPrivateNetmask())) { pod = hostPod; //found the default POD having the same subnet. updatePodNetmaskIfNeeded(pod, startup.getPrivateNetmask()); break; } } return pod; }
@Override public Pair<Pod, Long> allocateTo(VirtualMachineTemplate template, ServiceOffering offering, DataCenter zone, long accountId, Set<Long> avoids) { long zoneId = zone.getId(); List<HostPodVO> podsInZone = _podDao.listByDataCenterId(zoneId);
if (!_podDao.listByDataCenterId(zoneId).isEmpty()) { throw new CloudRuntimeException(errorMsg + "there are pods in this zone.");
List<HostPodVO> pods = _podDao.listByDataCenterId(dc.getId()); List<DedicatedResourceVO> podsToRelease = new ArrayList<DedicatedResourceVO>(); List<DedicatedResourceVO> clustersToRelease = new ArrayList<DedicatedResourceVO>();
includeList.addDataCenter(dr.getDataCenterId()); List<HostPodVO> podList = _podDao.listByDataCenterId(dr.getDataCenterId()); for (HostPodVO pod : podList) { DedicatedResourceVO dPod = _dedicatedDao.findByPodId(pod.getId()); List<HostPodVO> pods = _podDao.listByDataCenterId(dc.getId()); List<ClusterVO> clusters = _clusterDao.listClustersByDcId(dc.getId()); List<HostVO> hosts = _hostDao.listByDataCenterId(dc.getId());