Search in sources :

Example 51 with Query

use of com.vmware.xenon.services.common.QueryTask.Query in project photon-model by vmware.

the class TestVSphereOvfImport method importOvfAsDescriptions.

@Test
public void importOvfAsDescriptions() throws Throwable {
    this.resourcePool = createResourcePool();
    this.auth = createAuth();
    this.computeHostDescription = createComputeDescription();
    createComputeHost();
    ComputeDescription computeDesc = new ComputeDescription();
    computeDesc.supportedChildren = new ArrayList<>();
    computeDesc.instanceAdapterReference = UriUtils.buildUri(this.host, VSphereUriPaths.INSTANCE_SERVICE);
    computeDesc.authCredentialsLink = this.auth.documentSelfLink;
    computeDesc.name = computeDesc.id;
    computeDesc.dataStoreId = this.dataStoreId;
    ImportOvfRequest req = new ImportOvfRequest();
    req.ovfUri = new File("src/test/resources/vcenter.ovf").toURI();
    req.template = computeDesc;
    Operation op = Operation.createPatch(this.host, OvfImporterService.SELF_LINK).setBody(req).setReferer(this.host.getPublicUri());
    op = this.host.waitForResponse(op);
    assertEquals(Operation.STATUS_CODE_OK, op.getStatusCode());
    Query q = Query.Builder.create().addFieldClause(ComputeState.FIELD_NAME_ID, "ovf-", MatchType.PREFIX).build();
    QueryTask task = QueryTask.Builder.createDirectTask().setQuery(q).build();
    QueryUtils.createQueryTaskOperation(this.host, task, ServiceTypeCluster.INVENTORY_SERVICE);
    task = this.host.waitForResponse(op).getBody(QueryTask.class);
    assertTrue(task.results.documentLinks.size() > 5);
    snapshotFactoryState("ovf", ComputeDescriptionService.class);
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) ComputeDescription(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription) ImportOvfRequest(com.vmware.photon.controller.model.adapters.vsphere.ovf.ImportOvfRequest) Operation(com.vmware.xenon.common.Operation) File(java.io.File) Test(org.junit.Test)

Example 52 with Query

use of com.vmware.xenon.services.common.QueryTask.Query in project photon-model by vmware.

the class TestVSphereEnumerationTask method findRandomHost.

private ComputeState findRandomHost() throws InterruptedException, TimeoutException, ExecutionException {
    Query q = Query.Builder.create().addCompositeFieldClause(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, CustomProperties.TYPE, VimNames.TYPE_HOST).addKindFieldClause(ComputeState.class).build();
    QueryTask qt = QueryTask.Builder.createDirectTask().setQuery(q).addOption(QueryOption.EXPAND_CONTENT).build();
    Operation op = QueryUtils.createQueryTaskOperation(this.host, qt, ServiceTypeCluster.INVENTORY_SERVICE);
    QueryTask result = this.host.waitForResponse(op).getBody(QueryTask.class);
    Object firstResult = result.results.documents.values().iterator().next();
    return Utils.fromJson(firstResult, ComputeState.class);
}
Also used : ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) Operation(com.vmware.xenon.common.Operation)

Example 53 with Query

use of com.vmware.xenon.services.common.QueryTask.Query in project photon-model by vmware.

the class TestVSphereEnumerationTask method findRandomVm.

private ComputeState findRandomVm() throws InterruptedException, TimeoutException, ExecutionException {
    Query q = Query.Builder.create().addCompositeFieldClause(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, CustomProperties.TYPE, VimNames.TYPE_VM).addKindFieldClause(ComputeState.class).build();
    QueryTask qt = QueryTask.Builder.createDirectTask().setQuery(q).addOption(QueryOption.EXPAND_CONTENT).build();
    Operation op = QueryUtils.createQueryTaskOperation(this.host, qt, ServiceTypeCluster.INVENTORY_SERVICE);
    QueryTask result = this.host.waitForResponse(op).getBody(QueryTask.class);
    Object firstResult = result.results.documents.values().iterator().next();
    return Utils.fromJson(firstResult, ComputeState.class);
}
Also used : ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) Operation(com.vmware.xenon.common.Operation)

Example 54 with Query

use of com.vmware.xenon.services.common.QueryTask.Query in project photon-model by vmware.

the class ResourceGroomerTaskServiceTest method getComputeCount.

/**
 * Query count of computes with all given endpointLinks in a set and tenantLink.
 */
public long getComputeCount(Set<String> endpointLinks, String tenantLink) {
    Query.Builder query = Query.Builder.create().addCollectionItemClause(ResourceState.FIELD_NAME_TENANT_LINKS, tenantLink);
    for (String endpointLink : endpointLinks) {
        query.addCollectionItemClause(ResourceState.FIELD_NAME_ENDPOINT_LINKS, endpointLink);
    }
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query.build()).addOption(QueryOption.COUNT).build();
    Operation postQuery = Operation.createPost(UriUtils.buildUri(this.host, ServiceUriPaths.CORE_LOCAL_QUERY_TASKS)).setBody(queryTask).setReferer(this.host.getUri());
    Operation queryResponse = this.host.waitForResponse(postQuery);
    if (queryResponse.getStatusCode() != 200) {
        return -1;
    }
    QueryTask response = queryResponse.getBody(QueryTask.class);
    return response.results.documentCount;
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) Operation(com.vmware.xenon.common.Operation)

Example 55 with Query

use of com.vmware.xenon.services.common.QueryTask.Query in project photon-model by vmware.

the class ResourceGroomerTaskServiceTest method getComputeCount.

/**
 * Query count of computes with all given endpointLinks in a set and tenantLink.
 */
public long getComputeCount(String endpointLink, String tenantLink) {
    Query.Builder query = Query.Builder.create().addFieldClause(ResourceState.FIELD_NAME_ENDPOINT_LINK, endpointLink).addCollectionItemClause(ResourceState.FIELD_NAME_TENANT_LINKS, tenantLink);
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query.build()).addOption(QueryOption.COUNT).build();
    Operation postQuery = Operation.createPost(UriUtils.buildUri(this.host, ServiceUriPaths.CORE_LOCAL_QUERY_TASKS)).setBody(queryTask).setReferer(this.host.getUri());
    Operation queryResponse = this.host.waitForResponse(postQuery);
    if (queryResponse.getStatusCode() != 200) {
        return -1;
    }
    QueryTask response = queryResponse.getBody(QueryTask.class);
    return response.results.documentCount;
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) Operation(com.vmware.xenon.common.Operation)

Aggregations

Query (com.vmware.xenon.services.common.QueryTask.Query)81 QueryTask (com.vmware.xenon.services.common.QueryTask)50 Operation (com.vmware.xenon.common.Operation)39 ArrayList (java.util.ArrayList)29 HashMap (java.util.HashMap)26 ComputeState (com.vmware.photon.controller.model.resources.ComputeService.ComputeState)25 Utils (com.vmware.xenon.common.Utils)22 List (java.util.List)21 Map (java.util.Map)21 QueryUtils (com.vmware.photon.controller.model.query.QueryUtils)20 UriUtils (com.vmware.xenon.common.UriUtils)20 HashSet (java.util.HashSet)20 QueryByPages (com.vmware.photon.controller.model.query.QueryUtils.QueryByPages)19 ServiceTypeCluster (com.vmware.photon.controller.model.util.ClusterUtil.ServiceTypeCluster)18 Set (java.util.Set)18 URI (java.net.URI)17 OperationJoin (com.vmware.xenon.common.OperationJoin)16 StatelessService (com.vmware.xenon.common.StatelessService)16 Collections (java.util.Collections)15 Collectors (java.util.stream.Collectors)15