Search in sources :

Example 41 with TaskResourceRep

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);
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) FileSystemParam(com.emc.storageos.model.file.FileSystemParam) ProjectParam(com.emc.storageos.model.project.ProjectParam) BulkIdParam(com.emc.storageos.model.BulkIdParam) FileShareBulkRep(com.emc.storageos.model.file.FileShareBulkRep) TaskResourceRep(com.emc.storageos.model.TaskResourceRep) FileShareRestRep(com.emc.storageos.model.file.FileShareRestRep) FileSystemDeleteParam(com.emc.storageos.model.file.FileSystemDeleteParam) URI(java.net.URI) ProjectElement(com.emc.storageos.model.project.ProjectElement) StorageOSUser(com.emc.storageos.security.authentication.StorageOSUser) TenantResponse(com.emc.storageos.model.tenant.TenantResponse) Test(org.junit.Test)

Example 42 with TaskResourceRep

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();
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) TaskResourceRep(com.emc.storageos.model.TaskResourceRep) URI(java.net.URI)

Example 43 with TaskResourceRep

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());
        }
    }
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) TaskResourceRep(com.emc.storageos.model.TaskResourceRep)

Example 44 with TaskResourceRep

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();
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) TaskResourceRep(com.emc.storageos.model.TaskResourceRep)

Example 45 with TaskResourceRep

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();
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) TaskResourceRep(com.emc.storageos.model.TaskResourceRep)

Aggregations

TaskResourceRep (com.emc.storageos.model.TaskResourceRep)160 URI (java.net.URI)85 TaskList (com.emc.storageos.model.TaskList)82 Operation (com.emc.storageos.db.client.model.Operation)68 Produces (javax.ws.rs.Produces)59 ArrayList (java.util.ArrayList)56 Volume (com.emc.storageos.db.client.model.Volume)55 Path (javax.ws.rs.Path)54 CheckPermission (com.emc.storageos.security.authorization.CheckPermission)53 POST (javax.ws.rs.POST)50 InternalException (com.emc.storageos.svcs.errorhandling.resources.InternalException)49 Consumes (javax.ws.rs.Consumes)36 APIException (com.emc.storageos.svcs.errorhandling.resources.APIException)35 StorageSystem (com.emc.storageos.db.client.model.StorageSystem)32 NamedURI (com.emc.storageos.db.client.model.NamedURI)30 NullColumnValueGetter.isNullURI (com.emc.storageos.db.client.util.NullColumnValueGetter.isNullURI)23 Project (com.emc.storageos.db.client.model.Project)20 URIQueryResultList (com.emc.storageos.db.client.constraint.URIQueryResultList)18 VirtualPool (com.emc.storageos.db.client.model.VirtualPool)17 Copy (com.emc.storageos.model.block.Copy)17