> 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

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


- Alexander


-----------------------------------------------------------
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