You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Tom Beerbower (JIRA)" <ji...@apache.org> on 2013/12/16 17:25:09 UTC

[jira] [Commented] (AMBARI-1401) Provide API support for querying sub-resources

    [ https://issues.apache.org/jira/browse/AMBARI-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13849284#comment-13849284 ] 

Tom Beerbower commented on AMBARI-1401:
---------------------------------------

Given the following API …

    /api/v1/clusters/c1/services?ServiceInfo/cluster_name=c1&components/ServiceComponentInfo/state==STARTED

Note that the predicate contains elements that apply to the service resource as well as the component sub resource.
Until now the use of sub resource elements in the predicate has not been supported.
The general approach to supporting sub-resource predicates is as follows … 

 # At each level of the query, extract the portion of the predicate that applies to that resource type.  So, in the above example the predicate …
    ServiceInfo/cluster_name=c1
… will be used to query for the services, and the predicate …
    ServiceComponentInfo/state==STARTED 
… will be used to do the query for the component sub resources. 
 # Generate property maps for each resource which contain the properties of their sub resources that were specified in the predicate.  In the case where there are multiple sub resources the maps will be added to a set for each parent resource.  In the case where there are multiple sub-resource types, the maps will be joined.  The logic to generate the property maps will be recursive so that any level of sub resource depth can be handled.
 # From the original predicate, generate an extended predicate that can evaluate each resource along with the complete set of sub-resource properties associated with it.

> Provide API support for querying sub-resources
> ----------------------------------------------
>
>                 Key: AMBARI-1401
>                 URL: https://issues.apache.org/jira/browse/AMBARI-1401
>             Project: Ambari
>          Issue Type: Sub-task
>            Reporter: John Speidel
>            Assignee: John Speidel
>
> Currently, query predicates can only be applied to the top level resource of a request.  So, if we wanted to perform a query based on sub-resource state, this would require multiple requests.
> For example, to query for all services which contain a component in any state other than "STARTED":
> .../api/v1/clusters/c1/services?components/ServiceComponentInfo/state!=STARTED
> Because the above request applies a predicate to a sub-resource of service(component), this is not currently supported. The goal of this Jira is to allow predicates to be applied to any sub-resource, in addition to the the top level resource of any request.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)