Repository: ambari Updated Branches: refs/heads/trunk 2b122b3b7 -> e630228cd
AMBARI-15576: Stack Featurize Accumulo Service (jluniya) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e630228c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e630228c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e630228c Branch: refs/heads/trunk Commit: e630228cd703509fe0177640346280c61c27f4f5 Parents: 2b122b3 Author: Jayush Luniya <[email protected]> Authored: Thu Mar 31 13:35:18 2016 -0700 Committer: Jayush Luniya <[email protected]> Committed: Thu Mar 31 13:35:18 2016 -0700 ---------------------------------------------------------------------- .../libraries/functions/constants.py | 1 + .../libraries/functions/stack_features.py | 5 +++++ .../1.6.1.2.2.0/package/scripts/accumulo_client.py | 9 ++++++--- .../1.6.1.2.2.0/package/scripts/accumulo_script.py | 11 +++++++---- .../ACCUMULO/1.6.1.2.2.0/package/scripts/params.py | 13 +++++++++---- .../1.6.1.2.2.0/package/scripts/status_params.py | 3 ++- .../stacks/HDP/2.0.6/properties/stack_features.json | 5 +++++ 7 files changed, 35 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-common/src/main/python/resource_management/libraries/functions/constants.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/constants.py b/ambari-common/src/main/python/resource_management/libraries/functions/constants.py index 54fbb8e..f444b65 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/constants.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/constants.py @@ -60,3 +60,4 @@ class StackFeature: KAFKA_KERBEROS = "kafka_kerberos" PIG_ON_TEZ = "pig_on_tez" RANGER_USERSYNC_NON_ROOT = "ranger_usersync_non_root" + ACCUMULO_KERBEROS_USER_AUTH = "accumulo_kerberos_user_auth" http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py b/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py index ac2dbd9..ff3ec45 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py @@ -133,6 +133,11 @@ _DEFAULT_STACK_FEATURES = { "name": "ranger_usersync_non_root", "description": "Ranger Usersync as non-root user (AMBARI-10416)", "min_version": "2.3.0.0" + }, + { + "name": "accumulo_kerberos_user_auth", + "description": "Accumulo Kerberos User Auth (AMBARI-10163)", + "min_version": "2.3.0.0" } ] } http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_client.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_client.py index fd975c5..ebfacf2 100644 --- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_client.py +++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_client.py @@ -23,13 +23,16 @@ from resource_management.core.exceptions import ClientComponentHasNoStatus from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select from resource_management.libraries.script.script import Script +from resource_management.libraries.functions.stack_features import check_stack_feature +from resource_management.libraries.functions import StackFeature from accumulo_configuration import setup_conf_dir class AccumuloClient(Script): def get_stack_to_component(self): - return {"HDP": "accumulo-client"} + import params + return {params.stack_name: "accumulo-client"} def install(self, env): @@ -53,8 +56,8 @@ class AccumuloClient(Script): env.set_params(params) # this function should not execute if the version can't be determined or - # is not at least HDP 2.2.0.0 - if Script.is_stack_less_than("2.2"): + # the stack does not support rolling upgrade + if not (params.stack_version_formatted and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.stack_version_formatted)): return Logger.info("Executing Accumulo Client Upgrade pre-restart") http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_script.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_script.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_script.py index 56051e2..1004d23 100644 --- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_script.py +++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_script.py @@ -29,6 +29,8 @@ from resource_management.libraries.functions.security_commons import get_params_ from resource_management.libraries.functions.security_commons import validate_security_config_properties from resource_management.libraries.functions.security_commons import FILE_TYPE_XML from resource_management.libraries.script.script import Script +from resource_management.libraries.functions.stack_features import check_stack_feature +from resource_management.libraries.functions import StackFeature from accumulo_configuration import setup_conf_dir from accumulo_service import accumulo_service @@ -52,14 +54,15 @@ class AccumuloScript(Script): def get_stack_to_component(self): """ Gets the <stack-selector-tool> component name given the script component - :return: the name of the component on the HDP stack which is used by + :return: the name of the component on the stack which is used by <stack-selector-tool> """ + import params if self.component not in self.COMPONENT_TO_STACK_SELECT_MAPPING: return None stack_component = self.COMPONENT_TO_STACK_SELECT_MAPPING[self.component] - return {"HDP": stack_component} + return {params.stack_name: stack_component} def install(self, env): @@ -101,8 +104,8 @@ class AccumuloScript(Script): env.set_params(params) # this function should not execute if the version can't be determined or - # is not at least HDP 2.2.0.0 - if Script.is_stack_less_than("2.2"): + # the stack does not support rolling upgrade + if not (params.stack_version_formatted and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.stack_version_formatted)): return if self.component not in self.COMPONENT_TO_STACK_SELECT_MAPPING: http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py index 184fd52..03debcc 100644 --- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py +++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/params.py @@ -26,24 +26,29 @@ from resource_management.libraries.functions.version import format_stack_version from resource_management.libraries.functions.default import default from resource_management.libraries.functions.get_bare_principal import get_bare_principal from resource_management.libraries.script.script import Script +from resource_management.libraries.functions.stack_features import check_stack_feature +from resource_management.libraries.functions import StackFeature import status_params # server configurations config = Script.get_config() +stack_root = status_params.stack_root exec_tmp_dir = status_params.tmp_dir # security enabled security_enabled = status_params.security_enabled -# hdp version +# stack name stack_name = default("/hostLevelParams/stack_name", None) +# stack version version = default("/commandParams/version", None) stack_version_unformatted = config['hostLevelParams']['stack_version'] stack_version_formatted = format_stack_version(stack_version_unformatted) has_secure_user_auth = False -if Script.is_stack_greater_or_equal("2.3"): +if stack_version_formatted and \ + check_stack_feature(StackFeature.ACCUMULO_KERBEROS_USER_AUTH, stack_version_formatted): has_secure_user_auth = True # configuration directories @@ -53,7 +58,7 @@ server_conf_dir = status_params.server_conf_dir # service locations hadoop_prefix = stack_select.get_hadoop_dir("home") hadoop_bin_dir = stack_select.get_hadoop_dir("bin") -zookeeper_home = "/usr/hdp/current/zookeeper-client" +zookeeper_home = format("{stack_root}/current/zookeeper-client") # the configuration direction for HDFS/YARN/MapR is the hadoop config # directory, which is symlinked by hadoop-client only @@ -61,7 +66,7 @@ hadoop_conf_dir = conf_select.get_hadoop_conf_dir() # accumulo local directory structure log_dir = config['configurations']['accumulo-env']['accumulo_log_dir'] -client_script = "/usr/hdp/current/accumulo-client/bin/accumulo" +client_script = format("{stack_root}/current/accumulo-client/bin/accumulo") daemon_script = format("ACCUMULO_CONF_DIR={server_conf_dir} {client_script}") # user and status http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/status_params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/status_params.py index 10815b0..0b2ca6f 100644 --- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/status_params.py +++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/status_params.py @@ -36,8 +36,9 @@ SERVER_ROLE_DIRECTORY_MAP = { component_directory = Script.get_component_from_role(SERVER_ROLE_DIRECTORY_MAP, "ACCUMULO_CLIENT") config = Script.get_config() +stack_root = Script.get_stack_root() -conf_dir = format('/usr/hdp/current/{component_directory}/conf') +conf_dir = format('{stack_root}/current/{component_directory}/conf') server_conf_dir = format('{conf_dir}/server') pid_dir = config['configurations']['accumulo-env']['accumulo_pid_dir'] accumulo_user = config['configurations']['accumulo-env']['accumulo_user'] http://git-wip-us.apache.org/repos/asf/ambari/blob/e630228c/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json index 1c80663..6e4d672 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json @@ -107,6 +107,11 @@ "name": "ranger_usersync_non_root", "description": "Ranger Usersync as non-root user (AMBARI-10416)", "min_version": "2.3.0.0" + }, + { + "name": "accumulo_kerberos_user_auth", + "description": "Accumulo Kerberos User Auth (AMBARI-10163)", + "min_version": "2.3.0.0" } ] }
