use of com.emc.storageos.model.vpool.ComputeVirtualPoolList in project coprhd-controller by CoprHD.
the class ComputeVirtualPoolTest method testComputeVirtualPoolCrud.
// @Test
// public void testComputeVirtualPoolGet() throws Exception {
//
// // long timestamp = System.currentTimeMillis();
//
// System.out.println("-Running testComputeVirtualPoolGet");
//
// ComputeVirtualPoolList cvpResp = rSys.path("/compute/vpools")
// .get(ComputeVirtualPoolList.class);
// List<NamedRelatedResourceRep> cvpList = cvpResp.getComputeVirtualPool();
// Assert.assertTrue(cvpList.size() > 0);
//
// }
@Test
public void testComputeVirtualPoolCrud() throws Exception {
long timestamp = System.currentTimeMillis();
System.out.println("-Running testComputeVirtualPool");
// Create vArray (neighborhood) for test
VirtualArrayCreateParam neighborhoodParam = new VirtualArrayCreateParam();
neighborhoodParam.setLabel("nb1-temp" + String.valueOf(timestamp));
// VirtualArrayRestRep n1 =
// rSys.path("/vdc/varrays").header(RequestProcessingUtils.AUTH_TOKEN_HEADER,
// _rootToken).post(VirtualArrayRestRep.class, neighborhoodParam);
VirtualArrayRestRep n1 = rSys.path("/vdc/varrays").post(VirtualArrayRestRep.class, neighborhoodParam);
Assert.assertNotNull(n1.getId());
System.out.println("-Newly created vArray id - " + n1.getId().toString());
// Create Compute Virtual Pool
ComputeVirtualPoolCreateParam createParams = new ComputeVirtualPoolCreateParam();
createParams.setDescription("VCP created by Unit Test");
createParams.setName("VCP-Unit-Test-1");
createParams.setSystemType("Cisco_UCSM");
createParams.setMinCpuSpeed(2500);
createParams.setMaxCpuSpeed(8000);
createParams.setMinTotalCores(1);
Integer newMaxCores = 8;
createParams.setMaxTotalCores(newMaxCores);
Set<String> vArrays = new HashSet<String>();
vArrays.add(n1.getId().toString());
createParams.setVarrays(vArrays);
ComputeVirtualPoolRestRep cvpCreateResp = rSys.path("/compute/vpools").post(ComputeVirtualPoolRestRep.class, createParams);
URI newId = cvpCreateResp.getId();
Assert.assertNotNull(newId);
System.out.println("-Newly created Compute Virtual Pool id - " + newId.toString());
System.out.println("---max cores - " + cvpCreateResp.getMaxTotalCores());
Assert.assertTrue(cvpCreateResp.getMaxTotalCores() == newMaxCores);
// Get list of virtual pools
ComputeVirtualPoolList cvpResp = rSys.path("/compute/vpools").get(ComputeVirtualPoolList.class);
List<NamedRelatedResourceRep> cvpList = cvpResp.getComputeVirtualPool();
Assert.assertTrue(!cvpList.isEmpty());
// Get details of newly created Compute Virtual Pool
ComputeVirtualPoolRestRep cvpGetResp = rSys.path("/compute/vpools/" + newId.toString()).get(ComputeVirtualPoolRestRep.class);
Assert.assertNotNull(cvpGetResp.getId());
System.out.println("id - " + cvpGetResp.getId().toString());
System.out.println("name - " + cvpGetResp.getName());
System.out.println("description - " + cvpGetResp.getDescription());
List<RelatedResourceRep> vArrayResp = cvpGetResp.getVirtualArrays();
Assert.assertTrue(!vArrayResp.isEmpty());
// Get Matching Compute Elements
ClientResponse ceResp = rSys.path("/compute/vpools/" + newId.toString() + "/matched-compute-elements").get(ClientResponse.class);
// List<ComputeElementRestRep> ceList = ceResp.getList();
Assert.assertTrue(ceResp.getStatus() == 200);
// Update CVP
System.out.println("- Updating - " + newId.toString());
ComputeVirtualPoolUpdateParam updParams = new ComputeVirtualPoolUpdateParam();
Integer updMaxCores = 4;
updParams.setMaxTotalCores(updMaxCores);
ComputeVirtualPoolRestRep updateResp = rSys.path("/compute/vpools/" + newId.toString()).put(ComputeVirtualPoolRestRep.class, updParams);
System.out.println("---max cores - " + updateResp.getMaxTotalCores());
Assert.assertTrue(updateResp.getMaxTotalCores() == updMaxCores);
// Delete CVP
ClientResponse delCvpResp = rSys.path("/compute/vpools/" + newId.toString() + "/deactivate").post(ClientResponse.class);
Assert.assertTrue(delCvpResp != null);
Assert.assertTrue(delCvpResp.getStatus() == 200);
// Delete vArray
ClientResponse deleteResp = rSys.path("/vdc/varrays/" + n1.getId().toString() + "/deactivate").post(ClientResponse.class);
Assert.assertTrue(deleteResp != null);
Assert.assertTrue(deleteResp.getStatus() == 200);
}
use of com.emc.storageos.model.vpool.ComputeVirtualPoolList in project coprhd-controller by CoprHD.
the class ComputeVirtualPoolService method getComputeVirtualPool.
/**
* Get all compute virtual pools
*
* @brief Get all compute virtual pools
* @return ComputeVirtualPoolList representations of Compute Virtual Pools
*/
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public ComputeVirtualPoolList getComputeVirtualPool(@DefaultValue("") @QueryParam(TENANT_ID_QUERY_PARAM) String tenantId) {
List<URI> ids = _dbClient.queryByType(ComputeVirtualPool.class, true);
ComputeVirtualPoolList list = new ComputeVirtualPoolList();
// if input tenant is not empty, but user have no access to it, an exception will be thrown.
TenantOrg tenant_input = null;
if (!StringUtils.isEmpty(tenantId)) {
tenant_input = getTenantIfHaveAccess(tenantId);
}
StorageOSUser user = getUserFromContext();
Iterator<ComputeVirtualPool> iter = _dbClient.queryIterativeObjects(ComputeVirtualPool.class, ids);
List<ComputeVirtualPool> vpoolObjects = new ArrayList<>();
while (iter.hasNext()) {
vpoolObjects.add(iter.next());
}
// else only return the list, which input tenant has access.
if (_permissionsHelper.userHasGivenRole(user, null, Role.SYSTEM_ADMIN, Role.SYSTEM_MONITOR)) {
for (ComputeVirtualPool virtualPool : vpoolObjects) {
if (tenant_input == null || _permissionsHelper.tenantHasUsageACL(tenant_input.getId(), virtualPool)) {
list.getComputeVirtualPool().add(toNamedRelatedResource(virtualPool));
}
}
} else {
// otherwise, filter by only authorized to use
URI tenant = null;
if (tenant_input == null) {
tenant = URI.create(user.getTenantId());
} else {
tenant = tenant_input.getId();
}
Set<ComputeVirtualPool> vpoolSet = new HashSet<ComputeVirtualPool>();
for (ComputeVirtualPool virtualPool : vpoolObjects) {
if (_permissionsHelper.tenantHasUsageACL(tenant, virtualPool)) {
vpoolSet.add(virtualPool);
}
}
// if no tenant specified in request, also adding vpools which sub-tenants of the user have access to.
if (tenant_input == null) {
List<URI> subtenants = _permissionsHelper.getSubtenantsWithRoles(user);
for (ComputeVirtualPool virtualPool : vpoolObjects) {
if (_permissionsHelper.tenantHasUsageACL(subtenants, virtualPool)) {
vpoolSet.add(virtualPool);
}
}
}
for (ComputeVirtualPool virtualPool : vpoolSet) {
list.getComputeVirtualPool().add(toNamedRelatedResource(virtualPool));
}
}
return list;
}
Aggregations