> On April 29, 2016, 12:11 a.m., Alexander Denissov wrote:
> > ambari-server/src/main/java/org/apache/ambari/server/stack/CommonServiceDirectory.java,
> >  line 56
> > <https://reviews.apache.org/r/44210/diff/5/?file=1364835#file1364835line56>
> >
> >     should we not have a convention at all and rely on property specified 
> > in metainfo.xml ?
> >     
> >     The service advisors can be called HAWQ200ServiceAdvisor for the 
> > service in common services and HDP23HAWQ200ServiceAdvisor for the version 
> > specific to HDP2.3 stack, if any.
> >     
> >     This is the argument about inheritance between advisors of different 
> > versions of service and stack.
> 
> Tim Thorpe wrote:
>     I debated about this but I don't see what you really gain by allowing the 
> advisor name or file name to be specified in the metainfo.xml.  Although the 
> code there should be changed to serviceName + serviceVersion + 
> "ServiceAdvisor".  This would support the situation you mentioned in your 
> email about adding HAWQ 2.1.0 to common-services and it inheriting from 
> HAWQ200ServiceAdvisor.
>     
>     The file name should always be "service_advisor.py" much like we always 
> have "stack_advisor.py".  The class name of the service advisor depends on 
> whether it is from common-services or from the stack.  It should be 
> <service_name><service_version>ServiceAdvisor in common-services and 
> <stack_name><stack_version><service_name>ServiceAdvisor in the stack.
> 
> Tim Thorpe wrote:
>     When I scanned over the stacks/service_advisor.py, I noticed that the 
> naming convention was not documented.  I added that in.
>     HAWQ200ServiceAdvisor for the service in common services 
>     HDP23HAWQServiceAdvisor for the version specific to the HDP 2.3 stack
> 
> Alexander Denissov wrote:
>     Can you please give an example of how the advisor path / name will be 
> specified in metainfo.xml ?
>     
>     Your naming convention makes sense. One case we were considering was when 
> we would support multiple versions of HAWQ for the same stack. That might 
> require changes to the service advisor. If the file is always called 
> service_advisor.py and the class is HDP23HAWQServiceAdvisor, then there might 
> be 2 versions of the file with the same name and the same class inside. The 
> file will need to be managed by stand-alone plugin (extension in later 
> design) along with metainfo.xml that goes in stacks/HDP/2.X/services/HAWQ The 
> difference probably would be in inheritance:
>     
>     HDP23HAWQServiceAdvisor (HAWQ200ServiceAdvisor) --> for the original
>     HDP23HAWQServiceAdvisor (HAWQ210ServiceAdvisor) --> for updated service 
> version

Currently there is nothing in the metainfo.xml to specify the advisor name & 
path.  The ServiceDirectory java code will detect the presence of 
service_advisor.py files in the root of the service folder (whether 
common-services or in the stack).  It will use the existing inheritance method 
such that if the stack service doesn't contain the service_advisor.py file, it 
will inherit that file from common-services or its parent stack version (if the 
service exists there).  The name will be calculated in that same java code 
based on the naming convention mentioned above.  All inheritance from python 
file to python (as previously mentioned) will be handled by explicit 
inheritance included by the service developers.


- Tim


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


On April 28, 2016, 4:36 p.m., Tim Thorpe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/44210/
> -----------------------------------------------------------
> 
> (Updated April 28, 2016, 4:36 p.m.)
> 
> 
> Review request for Ambari, Alexander Denissov, bhuvnesh chaudhary, Jayush 
> Luniya, Oleksandr Diachenko, Sumit Mohanty, Srimanth Gunturi, and Yusaku Sako.
> 
> 
> Bugs: AMBARI-15226
>     https://issues.apache.org/jira/browse/AMBARI-15226
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Currently the stack advisor is defined under each stack version such as 
> HDP/2.3. The problem with this is that it restricts the services that can be 
> added to the stack. If a custom service is to be added, they would need to 
> modify the stack advisor. If the configuration recommendation and validation 
> can be done at the service level then the custom service could just include 
> their own recommendations and validations separately.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/assemblies/server.xml e1a4919 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
>  df65010 
>   
> ambari-server/src/main/java/org/apache/ambari/server/api/services/stackadvisor/commands/StackAdvisorCommand.java
>  00c8696 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
>  ca1968e 
>   
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StackServiceResourceProvider.java
>  6c6fa91 
>   
> ambari-server/src/main/java/org/apache/ambari/server/stack/CommonServiceDirectory.java
>  636de37 
>   
> ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java
>  356adb1 
>   
> ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java 
> b7e09a9 
>   
> ambari-server/src/main/java/org/apache/ambari/server/stack/StackServiceDirectory.java
>  d27e52a 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java 
> 5a2bf84 
>   
> ambari-server/src/main/resources/common-services/HAWQ/2.0.0/service_advisor.py
>  PRE-CREATION 
>   
> ambari-server/src/main/resources/common-services/PXF/3.0.0/service_advisor.py 
> PRE-CREATION 
>   ambari-server/src/main/resources/properties.json eac0dbd 
>   ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py 
> 1680f21 
>   ambari-server/src/main/resources/stacks/HDP/2.3/services/stack_advisor.py 
> d0ce196 
>   ambari-server/src/main/resources/stacks/service_advisor.py PRE-CREATION 
>   ambari-server/src/main/resources/stacks/stack_advisor.py 9979e7e 
>   ambari-server/src/test/python/stacks/2.3/common/test_stack_advisor.py 
> 2080c52 
> 
> Diff: https://reviews.apache.org/r/44210/diff/
> 
> 
> Testing
> -------
> 
> Ran all the non java unit tests.  
> 
> Total run:945
> Total errors:0
> Total failures:0
> 
> Manually configured HAWQ and PXF as part of the HDP 2.3 stack and made sure 
> their service advisors were called.
> 
> 
> Thanks,
> 
> Tim Thorpe
> 
>

Reply via email to