Search in sources :

Example 66 with Query

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

the class TestAWSEnumerationTask method getComputeStateFromId.

private ComputeState getComputeStateFromId(String instanceId) {
    Query query = Query.Builder.create().addKindFieldClause(ComputeState.class).addFieldClause(ComputeState.FIELD_NAME_ID, instanceId).build();
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query).addOption(QueryOption.EXPAND_CONTENT).build();
    Operation queryCompute = Operation.createPost(this.host, ServiceUriPaths.CORE_LOCAL_QUERY_TASKS).setReferer(this.host.getUri()).setBody(queryTask);
    Operation compute = this.host.waitForResponse(queryCompute);
    QueryTask response = compute.getBody(QueryTask.class);
    ComputeState computeState = Utils.fromJson(response.results.documents.entrySet().iterator().next().getValue(), ComputeState.class);
    return computeState;
}
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 67 with Query

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

the class TestAWSEnumerationTask method validateS3Enumeration.

// Validate S3 bucket enumeration by querying DiskState and comparing result to expected number of documents
// and validate the size of tagLinks.
private void validateS3Enumeration(int expectedDiskCount, int expectedTagsCount) {
    Query s3Query = QueryTask.Query.Builder.create().addKindFieldClause(DiskState.class).addFieldClause(DiskState.FIELD_NAME_NAME, TEST_BUCKET_NAME).build();
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(s3Query).addOption(QueryOption.EXPAND_CONTENT).build();
    Operation s3QueryOp = QueryUtils.createQueryTaskOperation(this.host, queryTask, ServiceTypeCluster.INVENTORY_SERVICE).setReferer(this.host.getUri());
    Operation s3QueryResponse = this.host.waitForResponse(s3QueryOp);
    QueryTask response = s3QueryResponse.getBody(QueryTask.class);
    if (expectedDiskCount > 0) {
        DiskState diskState = Utils.fromJson(response.results.documents.get(response.results.documentLinks.get(0)), DiskState.class);
        assertEquals(expectedTagsCount, diskState.tagLinks.size());
    }
    DiskState diskState = Utils.fromJson(response.results.documents.get(response.results.documentLinks.get(0)), DiskState.class);
    assertEquals(expectedDiskCount, diskState.endpointLinks.size());
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) DiskState(com.vmware.photon.controller.model.resources.DiskService.DiskState) Operation(com.vmware.xenon.common.Operation)

Example 68 with Query

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

the class TestAWSEnumerationTask method validateBucketStateDeletionForNullRegion.

private void validateBucketStateDeletionForNullRegion() {
    if (!this.isTestBucketPatched) {
        this.host.log(Level.SEVERE, "Failure patching null region to test bucket diskState");
        return;
    }
    Query query = Query.Builder.create().addKindFieldClause(DiskState.class).addFieldClause(DiskState.FIELD_NAME_ID, TEST_BUCKET_NAME).build();
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(query).build();
    Operation getTestBucketState = QueryUtils.createQueryTaskOperation(this.host, queryTask, ServiceTypeCluster.INVENTORY_SERVICE).setReferer(this.host.getUri());
    Operation response = this.host.waitForResponse(getTestBucketState);
    QueryTask queryTaskResponse = response.getBody(QueryTask.class);
    assertTrue(queryTaskResponse.results.documentLinks.size() == 0);
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) Operation(com.vmware.xenon.common.Operation)

Example 69 with Query

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

the class TestAWSEnumerationTask method validateS3TagStatesCreated.

private void validateS3TagStatesCreated() {
    List<String> tags = new ArrayList<>();
    tags.add(S3_TAG_KEY_1);
    tags.add(S3_TAG_KEY_2);
    Query s3TagsQuery = QueryTask.Query.Builder.create().addKindFieldClause(TagState.class).addInClause(TagState.FIELD_NAME_KEY, tags).build();
    QueryTask queryTask = QueryTask.Builder.createDirectTask().setQuery(s3TagsQuery).build();
    Operation s3QueryOp = QueryUtils.createQueryTaskOperation(this.host, queryTask, ServiceTypeCluster.INVENTORY_SERVICE).setReferer(this.host.getUri());
    Operation s3QueryResponse = this.host.waitForResponse(s3QueryOp);
    QueryTask response = s3QueryResponse.getBody(QueryTask.class);
    assertEquals(2, response.results.documentLinks.size());
    // Validate the internal type tag for S3 got created
    Operation internalTagOp = Operation.createGet(this.host, TagsUtil.newTagState(TAG_KEY_TYPE, AWSResourceType.s3_bucket.toString(), false, this.endpointState.tenantLinks).documentSelfLink).setReferer(this.host.getUri());
    Operation internalTagOpResponse = this.host.waitForResponse(internalTagOp);
    assertEquals(Operation.STATUS_CODE_OK, internalTagOpResponse.getStatusCode());
}
Also used : QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query) ArrayList(java.util.ArrayList) Operation(com.vmware.xenon.common.Operation)

Example 70 with Query

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

the class AzureCostStatsService method createQueryForComputeStatesBySubscription.

/**
 * Creates a query operation to get the compute states corresponding to the specified
 * subscription GUID. The list of the resultant compute states is then passed to the specified
 * handler for processing.
 *
 * @return operation object representing the query
 */
private Operation createQueryForComputeStatesBySubscription(Context context, String subscriptionGuid, Consumer<List<ComputeState>> queryResultConsumer) {
    Query azureSubscriptionsQuery = Query.Builder.create().addKindFieldClause(ComputeState.class).addCompositeFieldClause(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, EndpointAllocationTaskService.CUSTOM_PROP_ENPOINT_TYPE, PhotonModelConstants.EndpointType.azure.name()).addCompositeFieldClause(ComputeState.FIELD_NAME_CUSTOM_PROPERTIES, PhotonModelConstants.CLOUD_ACCOUNT_ID, subscriptionGuid).addFieldClause(ComputeState.FIELD_NAME_TYPE, ComputeType.ENDPOINT_HOST).addInCollectionItemClause(ComputeState.FIELD_NAME_TENANT_LINKS, context.computeHostDesc.tenantLinks).build();
    QueryTask queryTask = QueryTask.Builder.createDirectTask().addOption(QueryOption.EXPAND_CONTENT).addOption(QueryOption.TOP_RESULTS).setResultLimit(QueryUtils.DEFAULT_MAX_RESULT_LIMIT).setQuery(azureSubscriptionsQuery).build();
    queryTask.setDirect(true);
    queryTask.tenantLinks = context.computeHostDesc.tenantLinks;
    return QueryUtils.createQueryTaskOperation(this, queryTask, ServiceTypeCluster.INVENTORY_SERVICE).setCompletion((operation, exception) -> {
        if (exception != null) {
            getFailureConsumer(context).accept(exception);
            return;
        }
        QueryTask responseTask = operation.getBody(QueryTask.class);
        if (responseTask == null || responseTask.results == null || responseTask.results.documents == null) {
            // Couldn't find compute state for subscription with specified GUID
            return;
        }
        List<ComputeState> subscriptionComputeState = responseTask.results.documents.values().stream().map(s -> Utils.fromJson(s, ComputeState.class)).filter(cs -> !StringUtils.isEmpty(cs.endpointLink) && !CollectionUtils.isEmpty(cs.endpointLinks)).collect(Collectors.toList());
        if (subscriptionComputeState == null || subscriptionComputeState.size() == 0) {
            return;
        }
        queryResultConsumer.accept(subscriptionComputeState);
    });
}
Also used : AzureCostConstants(com.vmware.photon.controller.model.adapters.azure.constants.AzureCostConstants) AzureStatsNormalizer(com.vmware.photon.controller.model.adapters.azure.utils.AzureStatsNormalizer) AuthCredentialsServiceState(com.vmware.xenon.services.common.AuthCredentialsService.AuthCredentialsServiceState) Arrays(java.util.Arrays) DateTimeZone(org.joda.time.DateTimeZone) ServiceTypeCluster(com.vmware.photon.controller.model.util.ClusterUtil.ServiceTypeCluster) QueryTask(com.vmware.xenon.services.common.QueryTask) ServiceDocument(com.vmware.xenon.common.ServiceDocument) AzureUriPaths(com.vmware.photon.controller.model.adapters.azure.AzureUriPaths) StringUtils(org.apache.commons.lang3.StringUtils) ComputeType(com.vmware.photon.controller.model.resources.ComputeDescriptionService.ComputeDescription.ComputeType) EndpointAllocationTaskService(com.vmware.photon.controller.model.tasks.EndpointAllocationTaskService) SingleResourceStatsCollectionTaskState(com.vmware.photon.controller.model.tasks.monitoring.SingleResourceStatsCollectionTaskService.SingleResourceStatsCollectionTaskState) Utils(com.vmware.xenon.common.Utils) BufferedSink(okio.BufferedSink) Map(java.util.Map) AzureService(com.vmware.photon.controller.model.adapters.azure.model.cost.AzureService) URI(java.net.URI) AzureSubscriptionsEnumerationRequest(com.vmware.photon.controller.model.adapters.azure.ea.enumeration.AzureSubscriptionsEnumerationService.AzureSubscriptionsEnumerationRequest) Builder(com.vmware.xenon.services.common.QueryTask.Builder) Path(java.nio.file.Path) EndpointState(com.vmware.photon.controller.model.resources.EndpointService.EndpointState) Interceptor(okhttp3.Interceptor) ComputeStatsResponse(com.vmware.photon.controller.model.adapterapi.ComputeStatsResponse) AzureDetailedBillHandler(com.vmware.photon.controller.model.adapters.azure.ea.utils.AzureDetailedBillHandler) Request(okhttp3.Request) ComputeStatsRequest(com.vmware.photon.controller.model.adapterapi.ComputeStatsRequest) StatelessService(com.vmware.xenon.common.StatelessService) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) OldEaSummarizedBillElement(com.vmware.photon.controller.model.adapters.azure.model.cost.OldEaSummarizedBillElement) TaskManager(com.vmware.photon.controller.model.adapters.util.TaskManager) Set(java.util.Set) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) AzureSubscriptionsEnumerationService(com.vmware.photon.controller.model.adapters.azure.ea.enumeration.AzureSubscriptionsEnumerationService) AzureCostHelper(com.vmware.photon.controller.model.adapters.azure.ea.utils.AzureCostHelper) List(java.util.List) Stream(java.util.stream.Stream) UriUtils(com.vmware.xenon.common.UriUtils) Entry(java.util.Map.Entry) QueryOption(com.vmware.xenon.services.common.QueryTask.QuerySpecification.QueryOption) INTERNAL_REQUEST_TIMEOUT_SECONDS(com.vmware.photon.controller.model.adapters.azure.constants.AzureCostConstants.INTERNAL_REQUEST_TIMEOUT_SECONDS) ResourceMetrics(com.vmware.photon.controller.model.monitoring.ResourceMetricsService.ResourceMetrics) SingleResourceTaskCollectionStage(com.vmware.photon.controller.model.tasks.monitoring.SingleResourceStatsCollectionTaskService.SingleResourceTaskCollectionStage) Okio(okio.Okio) QueryByPages(com.vmware.photon.controller.model.query.QueryUtils.QueryByPages) OperationContext(com.vmware.xenon.common.OperationContext) AtomicDouble(com.google.common.util.concurrent.AtomicDouble) HashMap(java.util.HashMap) Function(java.util.function.Function) AzureResource(com.vmware.photon.controller.model.adapters.azure.model.cost.AzureResource) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) EndpointConfigRequest(com.vmware.photon.controller.model.adapterapi.EndpointConfigRequest) Query(com.vmware.xenon.services.common.QueryTask.Query) CollectionUtils(org.apache.commons.collections.CollectionUtils) EaBillLinkElement(com.vmware.photon.controller.model.adapters.azure.model.cost.EaBillLinkElement) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) AUTO_DISCOVERED_ENTITY(com.vmware.photon.controller.model.constants.PhotonModelConstants.AUTO_DISCOVERED_ENTITY) EaBillLinks(com.vmware.photon.controller.model.adapters.azure.model.cost.EaBillLinks) BiConsumer(java.util.function.BiConsumer) Response(okhttp3.Response) EndpointType(com.vmware.photon.controller.model.constants.PhotonModelConstants.EndpointType) Call(okhttp3.Call) Callback(okhttp3.Callback) AzureSubscription(com.vmware.photon.controller.model.adapters.azure.model.cost.AzureSubscription) ComputeStats(com.vmware.photon.controller.model.adapterapi.ComputeStatsResponse.ComputeStats) ExecutorService(java.util.concurrent.ExecutorService) OldApi(com.vmware.photon.controller.model.adapters.azure.model.cost.OldApi) AdapterUtils(com.vmware.photon.controller.model.adapters.util.AdapterUtils) ServiceErrorResponse(com.vmware.xenon.common.ServiceErrorResponse) Files(java.nio.file.Files) Operation(com.vmware.xenon.common.Operation) QueryUtils(com.vmware.photon.controller.model.query.QueryUtils) IOException(java.io.IOException) FileUtils(org.apache.commons.io.FileUtils) TypeName(com.vmware.xenon.common.ServiceDocumentDescription.TypeName) ServiceStat(com.vmware.xenon.common.ServiceStats.ServiceStat) File(java.io.File) QueryTop(com.vmware.photon.controller.model.query.QueryUtils.QueryTop) BillParsingStatus(com.vmware.photon.controller.model.adapters.azure.model.cost.BillParsingStatus) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) LocalDate(org.joda.time.LocalDate) ConcurrentSkipListMap(java.util.concurrent.ConcurrentSkipListMap) OkHttpClient(okhttp3.OkHttpClient) Paths(java.nio.file.Paths) ClusterUtil(com.vmware.photon.controller.model.util.ClusterUtil) ComputeStateWithDescription(com.vmware.photon.controller.model.resources.ComputeService.ComputeStateWithDescription) PhotonModelConstants(com.vmware.photon.controller.model.constants.PhotonModelConstants) ServiceDocumentDescription(com.vmware.xenon.common.ServiceDocumentDescription) Comparator(java.util.Comparator) QuerySpecification(com.vmware.xenon.services.common.QueryTask.QuerySpecification) OperationJoin(com.vmware.xenon.common.OperationJoin) ComputeState(com.vmware.photon.controller.model.resources.ComputeService.ComputeState) QueryTask(com.vmware.xenon.services.common.QueryTask) Query(com.vmware.xenon.services.common.QueryTask.Query)

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