> On March 18, 2016, 9:25 p.m., Jayush Luniya wrote:
> > ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py,
> >  line 53
> > <https://reviews.apache.org/r/44933/diff/1/?file=1301828#file1301828line53>
> >
> >     Will things might work out in regular install, I think there is going 
> > to be a problem here during upgrades.
> >     
> >     Lets say we are doing EU from HDP-2.1 to HDP-2.2
> >     the command.json file for the command will have 
> >     hostLevelParams/current_version = 2.1.0.0-1234
> >     hostLevelParams/version = 2.2.0.0-5678
> >     commandParams/stack_version = 2.2
> >     configurations/cluster-env/stack_features = "snappy" (HDP-2.1 version 
> > of stack_features)
> >     
> >     So the check will fail.
> >     
> >     @Alejandro is my understanding correct? I can try out the upgrade to 
> > verify too. 
> >     
> >     BTW, @Juanjo Script.is_stack_greater* functions use 
> > commandParams/stack_version whereas you are changing it to current_version
> 
> Jayush Luniya wrote:
>     @Juanjo, 
>     Alejandro and I had a chat on this. Given the upgrade scenario, it would 
> be best to have a single stack_features list for a stack and maintain a 
> min_version and max_version for the feature instead of breaking down the list 
> of stack features for each stack version. That way we will not run into 
> issues with upgrades where we would sometimes need the upgradeFromVersion 
> stack_features list and sometimes we would need the upgradeToVersion 
> stack_features list.
> 
> Juanjo  Marron wrote:
>     @Jayush,
>     @Alejandro
>     So If I understand properly, the idea is to create a xml file, let's say 
> stack_features.xml  under 
> ambari-server/src/main/resources/stacks/HDP/configuration,  for example. It 
> will be common to all the HDP stacks.
>     Inside the xml I  can add  the json file content and read it using the 
> new feature to support external properties file whicj Jayush is creating in 
> https://reviews.apache.org/r/44835. 
>     
>     <configuration>
>       <property>
>               <name>stack_features</name>
>             <value></value>
>             <description>List of features supported by the stack</description>
>             <property-type>VALUE_FROM_PROPERTY_FILE</property-type>
>             <value-attributes>
>                 <property-file-name>stack_features.json</property-file-name>
>                 <property-file-type>json</property-file-type>
>             </value-attributes>
>         </property>
>     </configuration>
>     
>     And stack_fetaures.json will be:
>     
>               {
>               "stack_features": [
>             { "name": "snappy", "description" : "Snappy 
> compressor/decompressor support" , "min_version" : "2.0.0.0" , "max_version" 
> : "2.2.0.0" }
>             ,
>               { "name": "upgrade", "description" : "Upgrade support", 
> "min_version" : "2.2.0.0" }
>               ,
>               { "name": "ranger", "description" : "Ranger Service support", 
> "min_version" : "2.2.0.0" }
>               ]
>               }
>     
>     
>     This stack_features.xml file will be read from params.py and 
> stack_features.py (new resource_management script) will make sure the 
> stack_version for a specific feature is in the range [min_version - 
> max_version]. Ill let max_version as optional argument since the re will be 
> features working from min_version until now and the next versions.
>     
>     
>     Also, regarding the use of commandParams/stack_version. I would need to 
> declare it? it is needed? I mean is it diff from stack_version_unformatted, 
> stack_version_formatted , current_version or version that are already defined?

@Juanjo, 
I meant adding the config to the base stack 
HDP/2.0.6/configuration/cluster-env.xml so that it is applicable to all stack 
versions. 
Both min_version and max_version should be optional. 

If you see /var/lib/ambari-agent/data/command-XXX.json it is the json file that 
is passed from the server to the agent commandParams/stack_version is set 
there. Similarly, hostLevelParams/current_version and hostLevelParams/version

params.py declare python variables and are mostly set based on the config 
parameters specified in this json file.


- Jayush


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


On March 16, 2016, 9:24 p.m., Juanjo  Marron wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/44933/
> -----------------------------------------------------------
> 
> (Updated March 16, 2016, 9:24 p.m.)
> 
> 
> Review request for Ambari, Alejandro Fernandez and Jayush Luniya.
> 
> 
> Bugs: AMBARI-14435
>     https://issues.apache.org/jira/browse/AMBARI-14435
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> Apply the  stack featurization prototype  detailed on AMBARI-13364 to 
> ZOOKEEPER service.
> This patch removes the hardcoded stack versions in ZK common-services code 
> (centralized version and parameterized stack configurations will be faced in 
> other JIRAS)
> stack_features is now a property in .json format in 
> configuration/cluster-env.xml for each stack version.
> With the structure:
> {
> "stack_features": [
> { "name": "feature1", "description" : "Feature1 support", "min_version" : 
> "Y.Y.Y.Y" , "max_version" : "X.X.X.X"}
> , 
> ...
> ]
> }
> where min_version/max_version are optional constraints.
> New resource_management/libraries/functions/stack_fetaures.py has been 
> introduced to parse the json file and called from service code to check if 
> the stack supports the required feature.
> 
> 
> Diffs
> -----
> 
>   
> ambari-common/src/main/python/resource_management/libraries/functions/stack_fetaures.py
>  PRE-CREATION 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
>  9ff9125 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py
>  d18e4d7 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
>  5712ce4 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py
>  25ace24 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
>  d5b6898 
>   
> ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
>  6fe0772 
>   
> ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml
>  3fb82e9 
>   
> ambari-server/src/main/resources/stacks/HDP/2.2/configuration/cluster-env.xml 
> f1fa4de 
>   
> ambari-server/src/main/resources/stacks/HDP/2.3/configuration/cluster-env.xml 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/44933/diff/
> 
> 
> Testing
> -------
> 
> Zookeeper fresh installation has been tested using HDP stack 2.3 and 
> AMBARI-13364 branch code.
> 
> 
> Thanks,
> 
> Juanjo  Marron
> 
>

Reply via email to