ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Beerbower" <tbeerbo...@hortonworks.com>
Subject Re: Review Request 28785: Add API support to allow for session attributes to be set for a cluster.
Date Mon, 08 Dec 2014 13:20:26 GMT


> On Dec. 8, 2014, 12:03 p.m., Robert Levas wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java,
line 93
> > <https://reviews.apache.org/r/28785/diff/1/?file=784444#file784444line93>
> >
> >     Why is this one not like the others, where the property IDs are read from properties.json?
 
> >     
> >     Personally I prefer it the way you have implemented it and I am not particularly
keen on reading the properties from the `properties.json` file - though it may not be clear
to me if there are other usages of the the `properties.json` file.

The properties files were part of the initial implementation.  The idea was that defining
the properties in configuration would make the providers more flexible so that we could, for
example, have a provider that exposes different properties in different stack definitions.
 It never really worked out that way since many of the resource providers need knowledge of
the specific properties that they expose ant can't treat them generically.  Since we have
never actually made use of that flexibility I have been writing new and converting some of
the existing resource providers to define their own properties.

The use of the properties files was never a requirement.  We have several patterns in place
for implementing a resource provider but the only real requirements should be specified in
the ResourceProvider interface.  The properties files do create some confusion so it may make
sense to drop them altogether.  I would probably deprecate them if I could add comments to
the json files.


- Tom


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


On Dec. 6, 2014, 5:54 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/28785/
> -----------------------------------------------------------
> 
> (Updated Dec. 6, 2014, 5:54 p.m.)
> 
> 
> Review request for Ambari, John Speidel and Robert Levas.
> 
> 
> Bugs: Ambari-8447
>     https://issues.apache.org/jira/browse/Ambari-8447
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Add API support to allow for session attributes to be set for a cluster.
> Expose the session_attributes property on a cluster resource. To add session attributes
for a cluster the session_attributes property can be set on a cluster resource. The value
of the session_attributes should be a collection of name value pairs, as follows ...
> PUT api/v1/clusters/c1
> 
> {
>   "session_attributes" : {
>     "attr1" : "v1",
>     "attr2" : "v2",
>     "attr3" : {"sub1" : "v31", "sub2" : "v32"}
>   }
> }
> 
> 
> The above example would add the following attributes to the session for cluster c1:
> attribute	value
> -----------------
> attr1	    v1
> attr2	    v2
> attr3/sub1	v31
> attr3/sub2	v32
> 
> 
> The cluster session attribute property is not available to read through the REST API.
The map of cluster session attribute properties is available to resource providers on the
Ambari server through the following method on the org.apache.ambari.server.state.Clusters
singleton...
> 
>     /**
>      * Get the map of session attributes for the cluster identified by the given name.
>      * 
>      * @param name  the cluster name
>      *              
>      * @return the map of session attributes for the cluster
>      */
>     public Map<String, Object> getSessionAttributes(String name);
> 
> 
> All session attributes set through the above API are scoped by cluster name and session.
When the session dies, so do the attribute values for that session.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
abd83fc 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariSessionManager.java
e6dd07f 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java
8bbbd68 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProvider.java
6cb8fa4 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java
7423c25 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java 125b71b 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java 18f3a94 
>   ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
5a9731a 
>   ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
d2c7428 
>   ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java bce66ee

>   ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
4b19443 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariSessionManagerTest.java
PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java
f382588 
>   ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
a11dc43 
>   ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterImplTest.java
PRE-CREATION 
>   ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersImplTest.java
PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/28785/diff/
> 
> 
> Testing
> -------
> 
> Added new unit tests.  Manual testing for session attributes.
> 
> All tests pass ...
> 
> Results :
> 
> Tests run: 2335, Failures: 0, Errors: 0, Skipped: 22
> 
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 25:09 min
> [INFO] Finished at: 2014-12-06T11:54:15-05:00
> [INFO] Final Memory: 30M/265M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message