-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/28336/
-----------------------------------------------------------

(Updated Nov. 22, 2014, 2:18 p.m.)


Review request for Ambari, Jonathan Hurley, John Speidel, Nate Cole, and Robert 
Levas.


Bugs: AMBARI-8163
    https://issues.apache.org/jira/browse/AMBARI-8163


Repository: ambari


Description
-------

Currently, it is possible to query Ambari (via the REST API) for details about 
_asynchronous_ requests and their related tasks. This useful when trying to 
obtain progress information.  However, some information necessary for the UI to 
indicate meaningful progress is not available.  This information is related to 
the stages that are generated. 

*NOTE:* Each _asynchronous_ request is broken down into 1 or more stages and 
each stage contains 1 or more tasks.

If stage information was available via the REST API, it would be possible for 
the caller (maybe a UI) to track high-level tasks (at the {{stage}} level) 
rather than each lower-level unit of work (at the {{task}} level).   

To allow for this, a new API resource (and associated handler) needs to be 
created.  The resource should be read-only (like {{requests}} and {{tasks}}), 
and should provide information stored in the {{stage}} table from the Ambari 
database.  

The following properties should be returned for each {{stage}}:

* stage_id
* request_id
* cluster_id
* request_context 
** _This should probably be renamed to something more appropriate, like 
stage_context, stage_name, or etc..._
* start_time
* end_time
* progress_percent
* status

It is expected that the resources would be queried using:

{code}
GET  /api/v1/clusters/{clusterid}/requests/{requestid}/stages
{code}

Also, some subset of the stage data should be provided when querying for 
details about a specific {{request}}, like in:

{code}
GET  /api/v1/clusters/{clusterid}/requests/{requestid}
{code}

See {{request}} and {{task}} resource for examples.


Diffs (updated)
-----

  ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java 
a1c4882 
  
ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java
 a5a7234 
  
ambari-server/src/main/java/org/apache/ambari/server/api/resources/RequestResourceDefinition.java
 291b01a 
  
ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImpl.java
 ba3f32f 
  
ambari-server/src/main/java/org/apache/ambari/server/api/resources/SimpleResourceDefinition.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/api/services/RequestService.java
 fc1b515 
  
ambari-server/src/main/java/org/apache/ambari/server/api/services/StageService.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/api/services/TaskService.java
 ade8d9c 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertHistoryResourceProvider.java
 409aace 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertNoticeResourceProvider.java
 956f710 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java
 ec40c4f 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DefaultProviderModule.java
 d0ce1cf 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/QueryResponseImpl.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestImpl.java
 9b98737 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/ClusterController.java
 35ea680 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/ExtendedResourceProvider.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/QueryResponse.java
 PRE-CREATION 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/Request.java
 92c5db5 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/spi/Resource.java
 b71b43c 
  
ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/PropertyHelper.java
 3e2111e 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/StageDAO.java 
900dbeb 
  
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/StageEntity_.java
 PRE-CREATION 
  
ambari-server/src/test/java/org/apache/ambari/server/api/resources/SimpleResourceDefinitionTest.java
 PRE-CREATION 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
 cfb2efb 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/QueryResponseImplTest.java
 PRE-CREATION 
  
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StageResourceProviderTest.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/28336/diff/


Testing
-------

New unit tests added.

Results :

Tests run: 2288, Failures: 0, Errors: 0, Skipped: 14


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26:48 min
[INFO] Finished at: 2014-11-22T08:06:15-05:00
[INFO] Final Memory: 41M/485M
[INFO] ------------------------------------------------------------------------


Thanks,

Tom Beerbower

Reply via email to