当前位置: 首页>>代码示例>>Java>>正文


Java ExcludeList.getHostsToAvoid方法代码示例

本文整理汇总了Java中com.cloud.deploy.DeploymentPlanner.ExcludeList.getHostsToAvoid方法的典型用法代码示例。如果您正苦于以下问题:Java ExcludeList.getHostsToAvoid方法的具体用法?Java ExcludeList.getHostsToAvoid怎么用?Java ExcludeList.getHostsToAvoid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.cloud.deploy.DeploymentPlanner.ExcludeList的用法示例。


在下文中一共展示了ExcludeList.getHostsToAvoid方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: select

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Override
public List<StoragePool> select(final DiskProfile dskCh, final VirtualMachineProfile vmProfile, final DeploymentPlan plan, final ExcludeList avoid, final int returnUpTo) {
    s_logger.debug("GarbageCollectingStoragePoolAllocator looking for storage pool");
    if (!_storagePoolCleanupEnabled) {
        s_logger.debug("Storage pool cleanup is not enabled, so GarbageCollectingStoragePoolAllocator is being skipped.");
        return null;
    }

    // Clean up all storage pools
    storageMgr.cleanupStorage(false);
    // Determine what allocator to use
    final StoragePoolAllocator allocator;
    if (dskCh.useLocalStorage()) {
        allocator = _localStoragePoolAllocator;
    } else {
        allocator = _firstFitStoragePoolAllocator;
    }

    // Try to find a storage pool after cleanup
    final ExcludeList myAvoids =
            new ExcludeList(avoid.getZonesToAvoid(), avoid.getPodsToAvoid(), avoid.getClustersToAvoid(), avoid.getHostsToAvoid(), avoid.getPoolsToAvoid());

    return allocator.allocateToPool(dskCh, vmProfile, plan, myAvoids, returnUpTo);
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:25,代码来源:GarbageCollectingStoragePoolAllocator.java

示例2: resetAvoidSet

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
private void resetAvoidSet(final ExcludeList avoidSet, final ExcludeList removeSet) {
    if (avoidSet.getZonesToAvoid() != null && removeSet.getZonesToAvoid() != null) {
        avoidSet.getZonesToAvoid().removeAll(removeSet.getZonesToAvoid());
    }
    if (avoidSet.getPodsToAvoid() != null && removeSet.getPodsToAvoid() != null) {
        avoidSet.getPodsToAvoid().removeAll(removeSet.getPodsToAvoid());
    }
    if (avoidSet.getClustersToAvoid() != null && removeSet.getClustersToAvoid() != null) {
        avoidSet.getClustersToAvoid().removeAll(removeSet.getClustersToAvoid());
    }
    if (avoidSet.getHostsToAvoid() != null && removeSet.getHostsToAvoid() != null) {
        avoidSet.getHostsToAvoid().removeAll(removeSet.getHostsToAvoid());
    }
    if (avoidSet.getPoolsToAvoid() != null && removeSet.getPoolsToAvoid() != null) {
        avoidSet.getPoolsToAvoid().removeAll(removeSet.getPoolsToAvoid());
    }
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:18,代码来源:DeploymentPlanningManagerImpl.java

示例3: select

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Override
public List<StoragePool> select(DiskProfile dskCh, VirtualMachineProfile vmProfile, DeploymentPlan plan, ExcludeList avoid, int returnUpTo) {
    s_logger.debug("GarbageCollectingStoragePoolAllocator looking for storage pool");
    if (!_storagePoolCleanupEnabled) {
        s_logger.debug("Storage pool cleanup is not enabled, so GarbageCollectingStoragePoolAllocator is being skipped.");
        return null;
    }

    // Clean up all storage pools
    storageMgr.cleanupStorage(false);
    // Determine what allocator to use
    StoragePoolAllocator allocator;
    if (dskCh.useLocalStorage()) {
        allocator = _localStoragePoolAllocator;
    } else {
        allocator = _firstFitStoragePoolAllocator;
    }

    // Try to find a storage pool after cleanup
    ExcludeList myAvoids =
        new ExcludeList(avoid.getDataCentersToAvoid(), avoid.getPodsToAvoid(), avoid.getClustersToAvoid(), avoid.getHostsToAvoid(), avoid.getPoolsToAvoid());

    return allocator.allocateToPool(dskCh, vmProfile, plan, myAvoids, returnUpTo);
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:25,代码来源:GarbageCollectingStoragePoolAllocator.java

示例4: resetAvoidSet

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
private void resetAvoidSet(ExcludeList avoidSet, ExcludeList removeSet) {
    if (avoidSet.getDataCentersToAvoid() != null && removeSet.getDataCentersToAvoid() != null) {
        avoidSet.getDataCentersToAvoid().removeAll(removeSet.getDataCentersToAvoid());
    }
    if (avoidSet.getPodsToAvoid() != null && removeSet.getPodsToAvoid() != null) {
        avoidSet.getPodsToAvoid().removeAll(removeSet.getPodsToAvoid());
    }
    if (avoidSet.getClustersToAvoid() != null && removeSet.getClustersToAvoid() != null) {
        avoidSet.getClustersToAvoid().removeAll(removeSet.getClustersToAvoid());
    }
    if (avoidSet.getHostsToAvoid() != null && removeSet.getHostsToAvoid() != null) {
        avoidSet.getHostsToAvoid().removeAll(removeSet.getHostsToAvoid());
    }
    if (avoidSet.getPoolsToAvoid() != null && removeSet.getPoolsToAvoid() != null) {
        avoidSet.getPoolsToAvoid().removeAll(removeSet.getPoolsToAvoid());
    }
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:18,代码来源:DeploymentPlanningManagerImpl.java

示例5: checkStrictModeWithCurrentAccountVmsPresent

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkStrictModeWithCurrentAccountVmsPresent() throws InsufficientServerCapacityException {
    final VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    final DataCenterDeployment plan = mock(DataCenterDeployment.class);
    final ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(false);

    final List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 2 and 3 are not in the cluster list.
    // Host 6 and 7 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (final Long cluster : clusterList) {
        if (cluster != 1) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 1 in the list. It should have been present", foundNeededCluster);

    final Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 5 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(5L));
    final Set<Long> hostsThatShouldBeInAvoidList = new HashSet<>();
    hostsThatShouldBeInAvoidList.add(6L);
    hostsThatShouldBeInAvoidList.add(7L);
    assertTrue("Hosts 6 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:34,代码来源:ImplicitPlannerTest.java

示例6: checkStrictModeHostWithCurrentAccountVmsFull

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkStrictModeHostWithCurrentAccountVmsFull() throws InsufficientServerCapacityException {
    final VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    final DataCenterDeployment plan = mock(DataCenterDeployment.class);
    final ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(false);

    // Mark the host 5 with current account vms to be in avoid list.
    avoids.addHost(5L);
    final List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 1 and 3 are not in the cluster list.
    // Host 5 and 7 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (final Long cluster : clusterList) {
        if (cluster != 2) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 2 in the list. It should have been present", foundNeededCluster);

    final Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 6 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(6L));
    final Set<Long> hostsThatShouldBeInAvoidList = new HashSet<>();
    hostsThatShouldBeInAvoidList.add(5L);
    hostsThatShouldBeInAvoidList.add(7L);
    assertTrue("Hosts 5 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:36,代码来源:ImplicitPlannerTest.java

示例7: checkPreferredModePreferredHostAvailable

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkPreferredModePreferredHostAvailable() throws InsufficientServerCapacityException {
    final VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    final DataCenterDeployment plan = mock(DataCenterDeployment.class);
    final ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(true);

    // Mark the host 5 and 6 to be in avoid list.
    avoids.addHost(5L);
    avoids.addHost(6L);
    final List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 1 and 2 are not in the cluster list.
    // Host 5 and 6 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (final Long cluster : clusterList) {
        if (cluster != 3) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 3 in the list. It should have been present", foundNeededCluster);

    final Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 7 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(7L));
    final Set<Long> hostsThatShouldBeInAvoidList = new HashSet<>();
    hostsThatShouldBeInAvoidList.add(5L);
    hostsThatShouldBeInAvoidList.add(6L);
    assertTrue("Hosts 5 and 6 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:37,代码来源:ImplicitPlannerTest.java

示例8: checkStrictModeWithCurrentAccountVmsPresent

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkStrictModeWithCurrentAccountVmsPresent() throws InsufficientServerCapacityException {
    VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    DataCenterDeployment plan = mock(DataCenterDeployment.class);
    ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(false);

    List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 2 and 3 are not in the cluster list.
    // Host 6 and 7 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (Long cluster : clusterList) {
        if (cluster != 1) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 1 in the list. It should have been present", foundNeededCluster);

    Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 5 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(5L));
    Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>();
    hostsThatShouldBeInAvoidList.add(6L);
    hostsThatShouldBeInAvoidList.add(7L);
    assertTrue("Hosts 6 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:34,代码来源:ImplicitPlannerTest.java

示例9: checkStrictModeHostWithCurrentAccountVmsFull

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkStrictModeHostWithCurrentAccountVmsFull() throws InsufficientServerCapacityException {
    @SuppressWarnings("unchecked")
    VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    DataCenterDeployment plan = mock(DataCenterDeployment.class);
    ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(false);

    // Mark the host 5 with current account vms to be in avoid list.
    avoids.addHost(5L);
    List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 1 and 3 are not in the cluster list.
    // Host 5 and 7 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (Long cluster : clusterList) {
        if (cluster != 2) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 2 in the list. It should have been present", foundNeededCluster);

    Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 6 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(6L));
    Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>();
    hostsThatShouldBeInAvoidList.add(5L);
    hostsThatShouldBeInAvoidList.add(7L);
    assertTrue("Hosts 5 and 7 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:37,代码来源:ImplicitPlannerTest.java

示例10: checkPreferredModePreferredHostAvailable

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Test
public void checkPreferredModePreferredHostAvailable() throws InsufficientServerCapacityException {
    @SuppressWarnings("unchecked")
    VirtualMachineProfileImpl vmProfile = mock(VirtualMachineProfileImpl.class);
    DataCenterDeployment plan = mock(DataCenterDeployment.class);
    ExcludeList avoids = new ExcludeList();

    initializeForTest(vmProfile, plan);

    initializeForImplicitPlannerTest(true);

    // Mark the host 5 and 6 to be in avoid list.
    avoids.addHost(5L);
    avoids.addHost(6L);
    List<Long> clusterList = planner.orderClusters(vmProfile, plan, avoids);

    // Validations.
    // Check cluster 1 and 2 are not in the cluster list.
    // Host 5 and 6 should also be in avoid list.
    assertFalse("Cluster list should not be null/empty", (clusterList == null || clusterList.isEmpty()));
    boolean foundNeededCluster = false;
    for (Long cluster : clusterList) {
        if (cluster != 3) {
            fail("Found a cluster that shouldn't have been present, cluster id : " + cluster);
        } else {
            foundNeededCluster = true;
        }
    }
    assertTrue("Didn't find cluster 3 in the list. It should have been present", foundNeededCluster);

    Set<Long> hostsInAvoidList = avoids.getHostsToAvoid();
    assertFalse("Host 7 shouldn't have be in the avoid list, but it is present", hostsInAvoidList.contains(7L));
    Set<Long> hostsThatShouldBeInAvoidList = new HashSet<Long>();
    hostsThatShouldBeInAvoidList.add(5L);
    hostsThatShouldBeInAvoidList.add(6L);
    assertTrue("Hosts 5 and 6 that should have been present were not found in avoid list", hostsInAvoidList.containsAll(hostsThatShouldBeInAvoidList));
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:38,代码来源:ImplicitPlannerTest.java

示例11: allocateTo

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Override
public List<Host> allocateTo(final VirtualMachineProfile vm, final DeploymentPlan plan, final Type type, final ExcludeList avoid, final int returnUpTo) {

    List<Host> hosts = super.allocateTo(vm, plan, type, avoid, returnUpTo);
    if (hosts != null && !hosts.isEmpty()) {
        return hosts;
    }

    s_logger.debug("First fit was unable to find a host");
    final VirtualMachine.Type vmType = vm.getType();
    if (vmType == VirtualMachine.Type.User) {
        s_logger.debug("vm is not a system vm so let's just return empty list");
        return new ArrayList<>();
    }

    final DataCenter dc = _dcDao.findById(plan.getDataCenterId());
    final List<PodCluster> pcs = _resourceMgr.listByDataCenter(dc.getId());
    //getting rid of direct.attached.untagged.vlan.enabled config param: Bug 7204
    //basic network type for zone maps to direct untagged case
    if (dc.getNetworkType().equals(NetworkType.Basic)) {
        s_logger.debug("Direct Networking mode so we can only allow the host to be allocated in the same pod due to public ip address cannot change");
        final List<VolumeVO> vols = _volsDao.findByInstance(vm.getId());
        final VolumeVO vol = vols.get(0);
        final long podId = vol.getPodId();
        s_logger.debug("Pod id determined from volume " + vol.getId() + " is " + podId);
        final Iterator<PodCluster> it = pcs.iterator();
        while (it.hasNext()) {
            final PodCluster pc = it.next();
            if (pc.getPod().getId() != podId) {
                it.remove();
            }
        }
    }
    final Set<Pair<Long, Long>> avoidPcs = new HashSet<>();
    final Set<Long> hostIdsToAvoid = avoid.getHostsToAvoid();
    if (hostIdsToAvoid != null) {
        for (final Long hostId : hostIdsToAvoid) {
            final Host h = _hostDao.findById(hostId);
            if (h != null) {
                avoidPcs.add(new Pair<>(h.getPodId(), h.getClusterId()));
            }
        }
    }

    for (final Pair<Long, Long> pcId : avoidPcs) {
        s_logger.debug("Removing " + pcId + " from the list of available pods");
        pcs.remove(new PodCluster(new HostPodVO(pcId.first()), pcId.second() != null ? new ClusterVO(pcId.second()) : null));
    }

    for (final PodCluster p : pcs) {
        if (p.getPod().getAllocationState() != AllocationState.Enabled) {
            if (s_logger.isDebugEnabled()) {
                s_logger.debug("Pod name: " + p.getPod().getName() + ", podId: " + p.getPod().getId() + " is in " + p.getPod().getAllocationState().name() +
                        " state, skipping this and trying other pods");
            }
            continue;
        }
        final Long clusterId = p.getCluster() == null ? null : p.getCluster().getId();
        if (p.getCluster() != null && p.getCluster().getAllocationState() != AllocationState.Enabled) {
            if (s_logger.isDebugEnabled()) {
                s_logger.debug("Cluster name: " + p.getCluster().getName() + ", clusterId: " + clusterId + " is in " + p.getCluster().getAllocationState().name() +
                        " state, skipping this and trying other pod-clusters");
            }
            continue;
        }
        final DataCenterDeployment newPlan = new DataCenterDeployment(plan.getDataCenterId(), p.getPod().getId(), clusterId, null, null, null);
        hosts = super.allocateTo(vm, newPlan, type, avoid, returnUpTo);
        if (hosts != null && !hosts.isEmpty()) {
            return hosts;
        }
    }

    s_logger.debug("Unable to find any available pods at all!");
    return new ArrayList<>();
}
 
开发者ID:MissionCriticalCloud,项目名称:cosmic,代码行数:76,代码来源:RecreateHostAllocator.java

示例12: allocateTo

import com.cloud.deploy.DeploymentPlanner.ExcludeList; //导入方法依赖的package包/类
@Override
public List<Host> allocateTo(VirtualMachineProfile vm, DeploymentPlan plan, Type type, ExcludeList avoid, int returnUpTo) {

    List<Host> hosts = super.allocateTo(vm, plan, type, avoid, returnUpTo);
    if (hosts != null && !hosts.isEmpty()) {
        return hosts;
    }

    s_logger.debug("First fit was unable to find a host");
    VirtualMachine.Type vmType = vm.getType();
    if (vmType == VirtualMachine.Type.User) {
        s_logger.debug("vm is not a system vm so let's just return empty list");
        return new ArrayList<Host>();
    }

    DataCenter dc = _dcDao.findById(plan.getDataCenterId());
    List<PodCluster> pcs = _resourceMgr.listByDataCenter(dc.getId());
    //getting rid of direct.attached.untagged.vlan.enabled config param: Bug 7204
    //basic network type for zone maps to direct untagged case
    if (dc.getNetworkType().equals(NetworkType.Basic)) {
        s_logger.debug("Direct Networking mode so we can only allow the host to be allocated in the same pod due to public ip address cannot change");
        List<VolumeVO> vols = _volsDao.findByInstance(vm.getId());
        VolumeVO vol = vols.get(0);
        long podId = vol.getPodId();
        s_logger.debug("Pod id determined from volume " + vol.getId() + " is " + podId);
        Iterator<PodCluster> it = pcs.iterator();
        while (it.hasNext()) {
            PodCluster pc = it.next();
            if (pc.getPod().getId() != podId) {
                it.remove();
            }
        }
    }
    Set<Pair<Long, Long>> avoidPcs = new HashSet<Pair<Long, Long>>();
    Set<Long> hostIdsToAvoid = avoid.getHostsToAvoid();
    if (hostIdsToAvoid != null) {
        for (Long hostId : hostIdsToAvoid) {
            Host h = _hostDao.findById(hostId);
            if (h != null) {
                avoidPcs.add(new Pair<Long, Long>(h.getPodId(), h.getClusterId()));
            }
        }
    }

    for (Pair<Long, Long> pcId : avoidPcs) {
        s_logger.debug("Removing " + pcId + " from the list of available pods");
        pcs.remove(new PodCluster(new HostPodVO(pcId.first()), pcId.second() != null ? new ClusterVO(pcId.second()) : null));
    }

    for (PodCluster p : pcs) {
        if (p.getPod().getAllocationState() != Grouping.AllocationState.Enabled) {
            if (s_logger.isDebugEnabled()) {
                s_logger.debug("Pod name: " + p.getPod().getName() + ", podId: " + p.getPod().getId() + " is in " + p.getPod().getAllocationState().name() +
                    " state, skipping this and trying other pods");
            }
            continue;
        }
        Long clusterId = p.getCluster() == null ? null : p.getCluster().getId();
        if (p.getCluster() != null && p.getCluster().getAllocationState() != Grouping.AllocationState.Enabled) {
            if (s_logger.isDebugEnabled()) {
                s_logger.debug("Cluster name: " + p.getCluster().getName() + ", clusterId: " + clusterId + " is in " + p.getCluster().getAllocationState().name() +
                    " state, skipping this and trying other pod-clusters");
            }
            continue;
        }
        DataCenterDeployment newPlan = new DataCenterDeployment(plan.getDataCenterId(), p.getPod().getId(), clusterId, null, null, null);
        hosts = super.allocateTo(vm, newPlan, type, avoid, returnUpTo);
        if (hosts != null && !hosts.isEmpty()) {
            return hosts;
        }

    }

    s_logger.debug("Unable to find any available pods at all!");
    return new ArrayList<Host>();
}
 
开发者ID:apache,项目名称:cloudstack,代码行数:77,代码来源:RecreateHostAllocator.java


注:本文中的com.cloud.deploy.DeploymentPlanner.ExcludeList.getHostsToAvoid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。