use of com.emc.storageos.model.TaskResourceRep in project coprhd-controller by CoprHD.
the class InternalApiTest method testFSReleaseUsingInternalClient.
@Test
public void testFSReleaseUsingInternalClient() throws Exception {
// get tenant
TenantResponse tenant = rSys.path("/tenant").get(TenantResponse.class);
Assert.assertNotNull(tenant);
// create a project to host a normal file system
ProjectParam projectParam = new ProjectParam();
projectParam.setName("test-internalapi-" + System.currentTimeMillis());
ProjectElement projectResp = rSys.path("/tenants/" + tenant.getTenant().toString() + "/projects").post(ProjectElement.class, projectParam);
Assert.assertNotNull(projectResp);
// create a normal file system which we can then release
FileSystemParam fsparam = new FileSystemParam();
fsparam.setVpool(_cosId);
fsparam.setLabel("test-internalapi-" + System.currentTimeMillis());
fsparam.setVarray(_nhId);
fsparam.setSize("20971520");
TaskResourceRep taskResp = rSys.path("/file/filesystems").queryParam("project", projectResp.getId().toString()).post(TaskResourceRep.class, fsparam);
Assert.assertTrue(taskResp != null);
Assert.assertNotNull(taskResp.getOpId());
Assert.assertNotNull(taskResp.getResource());
URI fsId = taskResp.getResource().getId();
String opId = taskResp.getOpId();
// get the file system object we just created
ClientResponse response = rSys.path("/file/filesystems/" + fsId.toString()).get(ClientResponse.class);
Assert.assertTrue(response != null);
Assert.assertEquals(200, response.getStatus());
// wait for for the file system create to complete
int checkCount = 1200;
String status;
do {
// wait upto ~2 minute for fs creation
Thread.sleep(100);
taskResp = rSys.path("/file/filesystems/" + fsId + "/tasks/" + opId).get(TaskResourceRep.class);
status = taskResp.getState();
} while (status.equals("pending") && checkCount-- > 0);
if (!status.equals("ready")) {
Assert.assertTrue("Fileshare create timed out", false);
}
// a normal file system should be present in the bulk results
BulkIdParam bulkIds = rSys.path("/file/filesystems/bulk").get(BulkIdParam.class);
Assert.assertNotNull("bulk ids should not be null", bulkIds);
FileShareBulkRep bulkFileShares = rSys.path("/file/filesystems/bulk").post(FileShareBulkRep.class, bulkIds);
Assert.assertNotNull("bulk response should not be null", bulkFileShares);
boolean found = false;
for (FileShareRestRep fs : bulkFileShares.getFileShares()) {
if (fs.getId().equals(fsId)) {
found = true;
}
}
Assert.assertTrue("unable to find public FileShare in the bulk results", found);
// only token is used in release file system operation and hence
// setting dummy strings for username and tenant ID do not matter
StorageOSUser user = new StorageOSUser("dummyUserName", "dummyTeneatId");
user.setToken(_rootToken);
FileShareRestRep fileShareResponse = _internalFileClient.releaseFileSystem(fsId, user);
Assert.assertNotNull(fileShareResponse);
// after release, the file system should no longer be present in the bulk results
bulkFileShares = rSys.path("/file/filesystems/bulk").post(FileShareBulkRep.class, bulkIds);
Assert.assertNotNull("bulk response should not be null", bulkFileShares);
found = false;
for (FileShareRestRep fs : bulkFileShares.getFileShares()) {
if (fs.getId().equals(fsId)) {
found = true;
}
}
Assert.assertFalse("found internal FileShare in the bulk results", found);
// undo the release of the file system
fileShareResponse = _internalFileClient.undoReleaseFileSystem(fsId);
Assert.assertNotNull(fileShareResponse);
// release it again
fileShareResponse = _internalFileClient.releaseFileSystem(fsId, user);
Assert.assertNotNull(fileShareResponse);
// delete the file system via the internal api
FileSystemDeleteParam deleteParam = new FileSystemDeleteParam();
deleteParam.setForceDelete(false);
taskResp = _internalFileClient.deactivateFileSystem(fsId, _rootToken, deleteParam);
Assert.assertNotNull(taskResp);
}
use of com.emc.storageos.model.TaskResourceRep in project coprhd-controller by CoprHD.
the class ApiTestVcenter method createVcenterByTenantApi.
private URI createVcenterByTenantApi(BalancedWebResource user, URI tenantId, int expectedStatus) {
VcenterCreateParam param = new VcenterCreateParam();
param.setName(getDefaultVcenterName());
param.setIpAddress(getDefaultVcenterIp());
param.setUserName(getDefaultVcenterUser());
param.setPassword(getDefaultVcenterPassword());
param.setUseSsl(true);
ClientResponse clientResponse = user.path(getVcenterTenantApi(tenantId)).post(ClientResponse.class, param);
Assert.assertEquals(expectedStatus, clientResponse.getStatus());
if (expectedStatus != HttpStatus.SC_OK && expectedStatus != HttpStatus.SC_ACCEPTED) {
return NullColumnValueGetter.getNullURI();
}
TaskResourceRep taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
// Add the created tenant to cleanup list, so that at the end of this test
// the resource will be destroyed.
final String deleteObjectURL = getVcenterDeactivateApi(taskResourceRep.getResource().getId());
CleanupResource tenantToCleanup = new CleanupResource("post", deleteObjectURL, rSys, null, HttpStatus.SC_ACCEPTED);
registerResourceForCleanup(tenantToCleanup);
while (taskResourceRep.getState().equalsIgnoreCase(TASK_STATUS_PENDING)) {
clientResponse = user.path(getVdcTaskApi() + "/" + taskResourceRep.getId().toString()).get(ClientResponse.class);
Assert.assertEquals(HttpStatus.SC_OK, clientResponse.getStatus());
taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
}
List<URI> aclEntries = getVcenterAcls(user, taskResourceRep.getResource().getId(), HttpStatus.SC_OK);
Assert.assertTrue(aclEntries.contains(tenantId));
return taskResourceRep.getResource().getId();
}
use of com.emc.storageos.model.TaskResourceRep in project coprhd-controller by CoprHD.
the class ApiTestVcenter method addVcenterAcl.
private void addVcenterAcl(BalancedWebResource user, URI vCenterId, URI tenantId, int expectedStatus) {
ACLAssignmentChanges param = new ACLAssignmentChanges();
ACLEntry aclEntry = new ACLEntry();
aclEntry.getAces().add(ACL.USE.name());
aclEntry.setTenant(tenantId.toString());
param.getAdd().add(aclEntry);
ClientResponse clientResponse = user.path(getVcenterAclApi(vCenterId)).put(ClientResponse.class, param);
Assert.assertEquals(expectedStatus, clientResponse.getStatus());
if (expectedStatus == HttpStatus.SC_OK && expectedStatus != HttpStatus.SC_ACCEPTED) {
TaskResourceRep taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertEquals(vCenterId, taskResourceRep.getResource().getId());
clientResponse = user.path(getVcenterAclApi(vCenterId)).get(ClientResponse.class);
Assert.assertEquals(HttpStatus.SC_OK, clientResponse.getStatus());
ACLAssignments aclAssignments = clientResponse.getEntity(ACLAssignments.class);
Assert.assertNotNull(aclAssignments);
List<ACLEntry> aclEntries = aclAssignments.getAssignments();
Assert.assertFalse(CollectionUtils.isEmpty(aclEntries));
Assert.assertTrue(getTenantsFromAcls(aclEntries).contains(tenantId));
while (taskResourceRep.getState().equalsIgnoreCase(TASK_STATUS_PENDING)) {
clientResponse = user.path(getVdcTaskApi() + "/" + taskResourceRep.getId().toString()).get(ClientResponse.class);
Assert.assertEquals(HttpStatus.SC_OK, clientResponse.getStatus());
taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
}
}
}
use of com.emc.storageos.model.TaskResourceRep in project coprhd-controller by CoprHD.
the class ApiTestVcenter method changeVcenterCascadeTenancy.
private URI changeVcenterCascadeTenancy(BalancedWebResource user, URI vCenterId, int expectedStatus, boolean cascadeTenancy, boolean discoverVcenter) {
VcenterUpdateParam param = new VcenterUpdateParam();
param.setName(getDefaultVcenterName());
param.setIpAddress(getDefaultVcenterIp());
param.setUserName(getDefaultVcenterUser());
param.setPassword(getDefaultVcenterPassword());
param.setUseSsl(true);
param.setPortNumber(VCENTER_PORT);
param.setCascadeTenancy(cascadeTenancy);
ClientResponse clientResponse = user.path(getVcenterApiWithId(vCenterId)).queryParam(getDiscoverVcenterQueryParam(), new Boolean(discoverVcenter).toString()).put(ClientResponse.class, param);
Assert.assertEquals(expectedStatus, clientResponse.getStatus());
if (expectedStatus != HttpStatus.SC_OK && expectedStatus != HttpStatus.SC_ACCEPTED) {
return NullColumnValueGetter.getNullURI();
}
TaskResourceRep taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
while (taskResourceRep.getState().equalsIgnoreCase(TASK_STATUS_PENDING)) {
clientResponse = user.path(getVdcTaskApi() + "/" + taskResourceRep.getId().toString()).get(ClientResponse.class);
Assert.assertEquals(HttpStatus.SC_OK, clientResponse.getStatus());
taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
}
return taskResourceRep.getResource().getId();
}
use of com.emc.storageos.model.TaskResourceRep in project coprhd-controller by CoprHD.
the class ApiTestVcenter method editDefaultVcenter.
private URI editDefaultVcenter(BalancedWebResource user, URI vCenterId, int expectedStatus) {
VcenterUpdateParam param = new VcenterUpdateParam();
param.setName(getDefaultVcenterName());
param.setIpAddress(getDefaultVcenterIp());
param.setUserName(getDefaultVcenterUser());
param.setPassword(getDefaultVcenterPassword());
param.setUseSsl(true);
param.setPortNumber(VCENTER_PORT);
ClientResponse clientResponse = user.path(getVcenterApiWithId(vCenterId)).put(ClientResponse.class, param);
Assert.assertEquals(expectedStatus, clientResponse.getStatus());
if (expectedStatus != HttpStatus.SC_OK && expectedStatus != HttpStatus.SC_ACCEPTED) {
return NullColumnValueGetter.getNullURI();
}
TaskResourceRep taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
while (taskResourceRep.getState().equalsIgnoreCase(TASK_STATUS_PENDING)) {
clientResponse = user.path(getVdcTaskApi() + "/" + taskResourceRep.getId().toString()).get(ClientResponse.class);
Assert.assertEquals(HttpStatus.SC_OK, clientResponse.getStatus());
taskResourceRep = clientResponse.getEntity(TaskResourceRep.class);
Assert.assertNotNull(taskResourceRep.getResource().getId());
}
return taskResourceRep.getResource().getId();
}
Aggregations