AMBARI-14435: Parameterize distro-specific stack information for ZOOKEEPER (Juanjo Marron via dili)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e5df4144 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e5df4144 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e5df4144 Branch: refs/heads/AMBARI-13364 Commit: e5df414480f43c1cb0217a471af23026c839b636 Parents: e5d261f Author: Di Li <[email protected]> Authored: Mon Feb 29 10:19:21 2016 -0500 Committer: Jayush Luniya <[email protected]> Committed: Wed Mar 9 15:05:42 2016 -0800 ---------------------------------------------------------------------- .../3.4.5.2.0/package/scripts/params_linux.py | 15 ++++++++------- .../3.4.5.2.0/package/scripts/status_params.py | 10 +++++++--- .../ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py | 4 ++-- .../3.4.5.2.0/package/scripts/zookeeper_client.py | 5 +++-- .../3.4.5.2.0/package/scripts/zookeeper_server.py | 5 +++-- .../3.4.5.2.0/package/scripts/zookeeper_service.py | 6 +++--- .../stacks/HDP/2.0.6/configuration/cluster-env.xml | 10 ++++++++++ 7 files changed, 36 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py index 9ff9125..de31c8b 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py @@ -33,8 +33,10 @@ tmp_dir = Script.get_tmp_dir() stack_version_unformatted = str(config['hostLevelParams']['stack_version']) stack_version_formatted = format_stack_version(stack_version_unformatted) +stack_version_ru_support = config['configurations']['cluster-env']['stack_version_ru_support'] stack_name = default("/hostLevelParams/stack_name", None) +stack_dir = config['configurations']['cluster-env']['stack_dir'] current_version = default("/hostLevelParams/current_version", None) component_directory = status_params.component_directory @@ -48,14 +50,13 @@ zk_cli_shell = "/usr/lib/zookeeper/bin/zkCli.sh" config_dir = "/etc/zookeeper/conf" zk_smoke_out = os.path.join(tmp_dir, "zkSmoke.out") -# hadoop parameters for 2.2+ -if Script.is_stack_greater_or_equal("2.2"): - zk_home = format("/usr/hdp/current/{component_directory}") - zk_bin = format("/usr/hdp/current/{component_directory}/bin") - zk_cli_shell = format("/usr/hdp/current/{component_directory}/bin/zkCli.sh") +# hadoop parameters for stack_version_ru_support+ +if Script.is_stack_greater_or_equal(stack_version_ru_support): + zk_home = format("{stack_dir}/current/{component_directory}") + zk_bin = format("{stack_dir}/current/{component_directory}/bin") + zk_cli_shell = format("{stack_dir}/current/{component_directory}/bin/zkCli.sh") config_dir = status_params.config_dir - zk_user = config['configurations']['zookeeper-env']['zk_user'] hostname = config['hostname'] user_group = config['configurations']['cluster-env']['user_group'] @@ -98,4 +99,4 @@ kinit_path_local = get_kinit_path(default('/configurations/kerberos-env/executab if ('zookeeper-log4j' in config['configurations']) and ('content' in config['configurations']['zookeeper-log4j']): log4j_props = config['configurations']['zookeeper-log4j']['content'] else: - log4j_props = None \ No newline at end of file + log4j_props = None http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py index d18e4d7..e349d48 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/status_params.py @@ -24,7 +24,7 @@ from resource_management.libraries.functions import get_kinit_path from resource_management.libraries.script.script import Script # a map of the Ambari role to the component name -# for use with /usr/hdp/current/<component> +# for use with <stack_dir>/current/<component> SERVER_ROLE_DIRECTORY_MAP = { 'ZOOKEEPER_SERVER' : 'zookeeper-server', 'ZOOKEEPER_CLIENT' : 'zookeeper-client' @@ -47,6 +47,10 @@ else: tmp_dir = Script.get_tmp_dir() zk_user = config['configurations']['zookeeper-env']['zk_user'] + # Stack related params + stack_version_ru_support = config['configurations']['cluster-env']['stack_version_ru_support'] + stack_dir = config['configurations']['cluster-env']['stack_dir'] + config_dir = "/etc/zookeeper/conf" - if Script.is_stack_greater_or_equal("2.2"): - config_dir = format("/usr/hdp/current/{component_directory}/conf") + if Script.is_stack_greater_or_equal(stack_version_ru_support): + config_dir = format("{stack_dir}/current/{component_directory}/conf") http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py index 5712ce4..cebc3b8 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py @@ -35,8 +35,8 @@ def zookeeper(type = None, upgrade_type=None): if type == 'server': # This path may be missing after Ambari upgrade. We need to create it. We need to do this before any configs will # be applied. - if upgrade_type is None and not os.path.exists("/usr/hdp/current/zookeeper-server") and params.current_version\ - and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if upgrade_type is None and not os.path.exists(os.path.join(params.stack_dir, "/current/zookeeper-server")) and params.current_version\ + and compare_versions(format_stack_version(params.version), params.stack_version_ru_support) >= 0: conf_select.select(params.stack_name, "zookeeper", params.current_version) stack_select.select("zookeeper-server", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py index 25ace24..854d583 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_client.py @@ -54,7 +54,8 @@ class ZookeeperClient(Script): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class ZookeeperClientLinux(ZookeeperClient): def get_stack_to_component(self): - return {"HDP": "zookeeper-client"} + import params + return {params.stack_name: "zookeeper-client"} def install(self, env): self.install_packages(env) @@ -65,7 +66,7 @@ class ZookeeperClientLinux(ZookeeperClient): import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and compare_versions(format_stack_version(params.version), params.stack_version_ru_support) >= 0: conf_select.select(params.stack_name, "zookeeper", params.version) stack_select.select("zookeeper-client", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py index d5b6898..163ebb7 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py @@ -63,7 +63,8 @@ class ZookeeperServer(Script): class ZookeeperServerLinux(ZookeeperServer): def get_stack_to_component(self): - return {"HDP": "zookeeper-server"} + import params + return {params.stack_name: "zookeeper-server"} def install(self, env): self.install_packages(env) @@ -74,7 +75,7 @@ class ZookeeperServerLinux(ZookeeperServer): import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and compare_versions(format_stack_version(params.version), params.stack_version_ru_support) >= 0: conf_select.select(params.stack_name, "zookeeper", params.version) stack_select.select("zookeeper-server", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py index 6fe0772..0afea17 100644 --- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py +++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py @@ -32,8 +32,8 @@ def zookeeper_service(action='start', upgrade_type=None): import params # This path may be missing after Ambari upgrade. We need to create it. - if upgrade_type is None and not os.path.exists("/usr/hdp/current/zookeeper-server") and params.current_version \ - and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if upgrade_type is None and not os.path.exists(os.path.join(params.stack_dir, "/current/zookeeper-server")) and params.current_version \ + and compare_versions(format_stack_version(params.version), params.stack_version_ru_support) >= 0: conf_select.select(params.stack_name, "zookeeper", params.current_version) stack_select.select("zookeeper-server", params.version) @@ -68,4 +68,4 @@ def zookeeper_service(action='start', rolling_restart=False): if action == 'start': Service(params.zookeeper_win_service_name, action="start") elif action == 'stop': - Service(params.zookeeper_win_service_name, action="stop") \ No newline at end of file + Service(params.zookeeper_win_service_name, action="stop") http://git-wip-us.apache.org/repos/asf/ambari/blob/e5df4144/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml b/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml index 784a88f..8ac1b5b 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/configuration/cluster-env.xml @@ -21,6 +21,16 @@ --> <configuration> + <property> + <name>stack_dir</name> + <value>/usr/hdp</value> + <description>Directory prefix for stacks installation</description> + </property> + <property> + <name>stack_version_ru_support</name> + <value>2.2.0.0</value> + <description>Stack version from which rolling upgrade is supported and installation layout changed</description> + </property> <property> <name>security_enabled</name> <value>false</value>
