@Test public void testClusterAllocatorMultiplePools() { Long newStorageId = null; try { createDb(); DataStoreProvider provider = providerMgr.getDataStoreProvider("ancient primary data store provider"); storage = new StoragePoolVO(); storage.setDataCenterId(dcId); storage.setPodId(podId); storage.setPoolType(StoragePoolType.NetworkFilesystem); storage.setClusterId(clusterId); storage.setStatus(StoragePoolStatus.Up); storage.setScope(ScopeType.CLUSTER); storage.setAvailableBytes(1000); storage.setCapacityBytes(20000); storage.setHostAddress(UUID.randomUUID().toString()); storage.setPath(UUID.randomUUID().toString()); storage.setStorageProviderName(provider.getName()); StoragePoolVO newStorage = storagePoolDao.persist(storage); newStorageId = newStorage.getId(); DiskProfile profile = new DiskProfile(volume, diskOffering, 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.size(), 1); foundAcct++; } } if (foundAcct > 1 || foundAcct == 0) { Assert.fail(); } } catch (Exception e) { cleanDb(); if (newStorageId != null) { storagePoolDao.remove(newStorageId); } Assert.fail(); } }
public DataStore createPrimaryDataStore() { try { String uuid = UUID.nameUUIDFromBytes(this.getPrimaryStorageUrl().getBytes()).toString(); List<StoragePoolVO> pools = primaryDataStoreDao.findPoolByName(this.primaryName); if (pools.size() > 0) { return this.dataStoreMgr.getPrimaryDataStore(pools.get(0).getId()); } /* * DataStoreProvider provider = * dataStoreProviderMgr.getDataStoreProvider * ("cloudstack primary data store provider"); Map<String, Object> * params = new HashMap<String, Object>(); URI uri = new * URI(this.getPrimaryStorageUrl()); params.put("url", * this.getPrimaryStorageUrl()); params.put("server", * uri.getHost()); params.put("path", uri.getPath()); * params.put("protocol", * Storage.StoragePoolType.NetworkFilesystem); params.put("zoneId", * dcId); params.put("clusterId", clusterId); params.put("name", * this.primaryName); params.put("port", 1); params.put("podId", * this.podId); params.put("roles", * DataStoreRole.Primary.toString()); params.put("uuid", uuid); * params.put("providerName", String.valueOf(provider.getName())); * * DataStoreLifeCycle lifeCycle = provider.getDataStoreLifeCycle(); * DataStore store = lifeCycle.initialize(params); ClusterScope * scope = new ClusterScope(clusterId, podId, dcId); * lifeCycle.attachCluster(store, scope); */ StoragePoolVO pool = new StoragePoolVO(); pool.setClusterId(clusterId); pool.setDataCenterId(dcId); URI uri = new URI(this.getPrimaryStorageUrl()); pool.setHostAddress(uri.getHost()); pool.setPath(uri.getPath()); pool.setPort(0); pool.setName(this.primaryName); pool.setUuid(this.getPrimaryStorageUuid()); pool.setStatus(StoragePoolStatus.Up); pool.setPoolType(StoragePoolType.VMFS); pool.setPodId(podId); pool.setScope(ScopeType.CLUSTER); pool.setStorageProviderName("cloudstack primary data store provider"); pool = this.primaryStoreDao.persist(pool); DataStore store = this.dataStoreMgr.getPrimaryDataStore(pool.getId()); return store; } catch (Exception e) { return null; } }
protected void createDb() { DataCenterVO dc = new DataCenterVO( UUID.randomUUID().toString(), "test", "8.8.8.8", null, "10.0.0.1", null, "10.0.0.1/24", null, null, NetworkType.Basic, null, null, true, true, null, null); dc = dcDao.persist(dc); dcId = dc.getId(); HostPodVO pod = new HostPodVO(UUID.randomUUID().toString(), dc.getId(), "255.255.255.255", "", 8, "test"); pod = podDao.persist(pod); podId = pod.getId(); ClusterVO cluster = new ClusterVO(dc.getId(), pod.getId(), "devcloud cluster"); cluster.setHypervisorType(HypervisorType.XenServer.toString()); cluster.setClusterType(ClusterType.CloudManaged); cluster.setManagedState(ManagedState.Managed); cluster = clusterDao.persist(cluster); clusterId = cluster.getId(); DataStoreProvider provider = providerMgr.getDataStoreProvider("ancient primary data store provider"); storage = new StoragePoolVO(); storage.setDataCenterId(dcId); storage.setPodId(podId); storage.setPoolType(StoragePoolType.NetworkFilesystem); storage.setClusterId(clusterId); storage.setStatus(StoragePoolStatus.Up); storage.setScope(ScopeType.CLUSTER); storage.setAvailableBytes(1000); storage.setCapacityBytes(20000); storage.setHostAddress(UUID.randomUUID().toString()); storage.setPath(UUID.randomUUID().toString()); storage.setStorageProviderName(provider.getName()); storage = storagePoolDao.persist(storage); storagePoolId = storage.getId(); storageMgr.createCapacityEntry(storage.getId()); diskOffering = new DiskOfferingVO(); diskOffering.setDiskSize(500); diskOffering.setName("test-disk"); diskOffering.setSystemUse(false); diskOffering.setUseLocalStorage(false); diskOffering.setCustomized(false); diskOffering.setRecreatable(false); diskOffering = diskOfferingDao.persist(diskOffering); diskOfferingId = diskOffering.getId(); volume = new VolumeVO( Volume.Type.ROOT, "volume", dcId, 1, 1, diskOffering.getId(), diskOffering.getDiskSize()); volume = volumeDao.persist(volume); volumeId = volume.getId(); }