@Test public void testLocalStorageAllocator() { try { createDb(); StoragePoolVO pool = storagePoolDao.findById(storagePoolId); pool.setScope(ScopeType.HOST); storagePoolDao.update(pool.getId(), pool); DiskOfferingVO diskOff = diskOfferingDao.findById(diskOfferingId); diskOff.setUseLocalStorage(true); diskOfferingDao.update(diskOfferingId, diskOff); DiskProfile profile = new DiskProfile(volume, diskOff, HypervisorType.XenServer); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); Mockito.when( storageMgr.storagePoolHasEnoughSpace( Mockito.anyListOf(Volume.class), Mockito.any(StoragePool.class))) .thenReturn(true); DeploymentPlan plan = new DataCenterDeployment(dcId, podId, clusterId, null, null, null); int foundAcct = 0; for (StoragePoolAllocator allocator : allocators) { List<StoragePool> pools = allocator.allocateToPool(profile, vmProfile, plan, new ExcludeList(), 1); if (!pools.isEmpty()) { Assert.assertEquals(pools.get(0).getId(), storage.getId()); foundAcct++; } } if (foundAcct > 1 || foundAcct == 0) { Assert.fail(); } } catch (Exception e) { cleanDb(); Assert.fail(); } }
@Test public void testClusterAllocatorWithTags() { try { createDb(); StoragePoolDetailVO detailVO = new StoragePoolDetailVO(this.storagePoolId, "high", "true"); poolDetailsDao.persist(detailVO); DiskOfferingVO diskOff = this.diskOfferingDao.findById(diskOffering.getId()); List<String> tags = new ArrayList<String>(); tags.add("high"); diskOff.setTagsArray(tags); diskOfferingDao.update(diskOff.getId(), diskOff); DiskProfile profile = new DiskProfile(volume, diskOff, HypervisorType.XenServer); VirtualMachineProfile vmProfile = Mockito.mock(VirtualMachineProfile.class); Mockito.when( storageMgr.storagePoolHasEnoughSpace( Mockito.anyListOf(Volume.class), Mockito.any(StoragePool.class))) .thenReturn(true); DeploymentPlan plan = new DataCenterDeployment(dcId, podId, clusterId, null, null, null); int foundAcct = 0; for (StoragePoolAllocator allocator : allocators) { List<StoragePool> pools = allocator.allocateToPool(profile, vmProfile, plan, new ExcludeList(), 1); if (!pools.isEmpty()) { Assert.assertEquals(pools.get(0).getId(), storage.getId()); foundAcct++; } } if (foundAcct > 1 || foundAcct == 0) { Assert.fail(); } } catch (Exception e) { cleanDb(); Assert.fail(); } }