Repository: ambari
Updated Branches:
  refs/heads/trunk 5b4e663f8 -> 5c20a2488


AMBARI-15581: Stack Featurize PIG Service (Juanjo Marron via jluniya)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5c20a248
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5c20a248
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5c20a248

Branch: refs/heads/trunk
Commit: 5c20a2488a69691b27544a41fb57fb8f05aae8ac
Parents: 5b4e663
Author: Jayush Luniya <[email protected]>
Authored: Tue Mar 29 18:54:51 2016 -0700
Committer: Jayush Luniya <[email protected]>
Committed: Tue Mar 29 18:54:51 2016 -0700

----------------------------------------------------------------------
 .../libraries/functions/constants.py                    |  1 +
 .../libraries/functions/stack_features.py               |  5 +++++
 .../PIG/0.12.0.2.0/package/scripts/params_linux.py      | 12 ++++++++----
 .../PIG/0.12.0.2.0/package/scripts/pig_client.py        |  7 +++++--
 .../PIG/0.12.0.2.0/package/scripts/service_check.py     |  5 +++--
 .../stacks/HDP/2.0.6/properties/stack_features.json     |  5 +++++
 6 files changed, 27 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/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 006b84c..7ec83b6 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
@@ -55,3 +55,4 @@ class StackFeature:
   CREATE_KAFKA_BROKER_ID = "create_kafka_broker_id"
   KAFKA_LISTENERS = "kafka_listeners"
   KAFKA_KERBEROS = "kafka_kerberos"
+  PIG_ON_TEZ = "pig_on_tez"

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/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 9ad99dc..d79f743 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
@@ -108,6 +108,11 @@ _DEFAULT_STACK_FEATURES = {
       "name": "kafka_kerberos",
       "description": "Kafka Kerberos support (AMBARI-10984)",
       "min_version": "2.3.0.0"
+    },
+    {
+      "name": "pig_on_tez",
+      "description": "Pig on Tez support (AMBARI-7863)",
+      "min_version": "2.2.0.0"
     }
   ]
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/params_linux.py
 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/params_linux.py
index effd8e8..b7f798c 100644
--- 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/params_linux.py
+++ 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/params_linux.py
@@ -23,7 +23,10 @@ from resource_management.libraries.script.script import 
Script
 from resource_management.libraries.resources.hdfs_resource import HdfsResource
 from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_select
+from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.functions.stack_features import 
check_stack_feature
 from resource_management.libraries.functions.version import 
format_stack_version
+from resource_management.libraries.functions.format import format
 from resource_management.libraries.functions.default import default
 from resource_management.libraries.functions import get_kinit_path
 from resource_management.libraries.functions.get_not_managed_resources import 
get_not_managed_resources
@@ -33,6 +36,7 @@ config = Script.get_config()
 tmp_dir = Script.get_tmp_dir()
 
 stack_name = default("/hostLevelParams/stack_name", None)
+stack_root = Script.get_stack_root()
 
 stack_version_unformatted = config['hostLevelParams']['stack_version']
 stack_version_formatted = format_stack_version(stack_version_unformatted)
@@ -47,11 +51,11 @@ pig_conf_dir = "/etc/pig/conf"
 hadoop_home = '/usr'
 pig_bin_dir = ""
 
-# hadoop parameters for 2.2+
-if Script.is_stack_greater_or_equal("2.2"):
-  pig_conf_dir = "/usr/hdp/current/pig-client/conf"
+# hadoop parameters for stack versions supporting rolling_upgrade
+if stack_version_formatted and 
check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted):
+  pig_conf_dir = format("{stack_root}/current/pig-client/conf")
   hadoop_home = stack_select.get_hadoop_dir("home")
-  pig_bin_dir = '/usr/hdp/current/pig-client/bin'
+  pig_bin_dir = format("{stack_root}/current/pig-client/bin")
 
 hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
 hdfs_principal_name = 
config['configurations']['hadoop-env']['hdfs_principal_name']

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
index 304ca15..81db437 100644
--- 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
+++ 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
@@ -24,6 +24,8 @@ import os
 from resource_management import *
 from resource_management.libraries.functions import conf_select
 from resource_management.libraries.functions import stack_select
+from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.functions.stack_features import 
check_stack_feature
 from pig import pig
 from ambari_commons import OSConst
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -40,13 +42,14 @@ class PigClient(Script):
 @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT)
 class PigClientLinux(PigClient):
   def get_stack_to_component(self):
-    return {"HDP": "hadoop-client"}
+    import params
+    return {params.stack_name: "hadoop-client"}
 
   def pre_upgrade_restart(self, env, upgrade_type=None):
     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 check_stack_feature(StackFeature.ROLLING_UPGRADE, 
params.version): 
       conf_select.select(params.stack_name, "pig", params.version)
       conf_select.select(params.stack_name, "hadoop", params.version)
       stack_select.select("hadoop-client", params.version) # includes 
pig-client

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/service_check.py
 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/service_check.py
index ec2946e..395295f 100644
--- 
a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/service_check.py
+++ 
b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/service_check.py
@@ -25,7 +25,8 @@ from resource_management.core.resources.system import 
Execute, File
 from resource_management.core.source import InlineTemplate, StaticFile
 from resource_management.libraries.functions.copy_tarball import copy_to_hdfs
 from resource_management.libraries.functions.format import format
-from resource_management.libraries.functions.version import compare_versions
+from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.functions.stack_features import 
check_stack_feature
 from resource_management.libraries.resources.execute_hadoop import 
ExecuteHadoop
 from resource_management.libraries.resources.hdfs_resource import HdfsResource
 from resource_management.libraries.script.script import Script
@@ -84,7 +85,7 @@ class PigServiceCheckLinux(PigServiceCheck):
       bin_dir = params.hadoop_bin_dir
     )
 
-    if params.stack_version_formatted != "" and 
compare_versions(params.stack_version_formatted, '2.2') >= 0:
+    if params.stack_version_formatted and 
check_stack_feature(StackFeature.PIG_ON_TEZ, params.stack_version_formatted):
       # cleanup results from previous test
       params.HdfsResource(output_dir,
                           type="directory",

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c20a248/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 cfbc9fb..d38985e 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
@@ -82,6 +82,11 @@
       "name": "kafka_kerberos",
       "description": "Kafka Kerberos support (AMBARI-10984)",
       "min_version": "2.3.0.0"
+    },
+    {
+      "name": "pig_on_tez",
+      "description": "Pig on Tez support (AMBARI-7863)",
+      "min_version": "2.2.0.0"
     }
   ]
 }

Reply via email to