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