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"
     }
   ]
 }

Reply via email to