AMBARI-18887 - Hive Service Check Fails During Upgrade Due to Missing Imports 
(jonathanhurley)

(cherry picked from commit 54e52197c7447bcc6a48cec9b9d116c031b8cf14)

Change-Id: I5b41b469483d720cc997cf7a4fb8d844c2695429


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

Branch: refs/heads/AMBARI-2.4.2.16
Commit: b5325dc3f36ce48a0a25b932d90d45c487409307
Parents: 00ad53c
Author: Jonathan Hurley <jhur...@hortonworks.com>
Authored: Mon Nov 14 15:52:31 2016 -0500
Committer: Jonathan Hurley <jhur...@hortonworks.com>
Committed: Mon Nov 14 22:45:14 2016 +0000

----------------------------------------------------------------------
 .../0.12.0.2.0/package/scripts/params_linux.py  |  2 -
 .../0.12.0.2.0/package/scripts/service_check.py | 12 +++---
 .../2.0.6/HIVE/test_hive_service_check.py       | 43 +++++++++++++++++++-
 3 files changed, 49 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b5325dc3/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/params_linux.py
 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/params_linux.py
index 5e3e233..c060ad3 100644
--- 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/params_linux.py
+++ 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/params_linux.py
@@ -106,8 +106,6 @@ hive_user_home_dir = "/home/hive"
 hive_server2_hive2_dir = None
 hive_server2_hive2_lib = None
 
-version = default("/commandParams/version", None)
-
 if check_stack_feature(StackFeature.HIVE_SERVER_INTERACTIVE, 
version_for_stack_feature_checks):
   # the name of the hiveserver2-hive2 component
   hive_server2_hive2_component = 
status_params.SERVER_ROLE_DIRECTORY_MAP["HIVE_SERVER_INTERACTIVE"]

http://git-wip-us.apache.org/repos/asf/ambari/blob/b5325dc3/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py
 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py
index 2e47ee3..a521d6d 100644
--- 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py
+++ 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py
@@ -18,9 +18,7 @@ limitations under the License.
 
 """
 
-from resource_management import *
-import socket
-import sys
+import os
 import time
 import subprocess
 
@@ -28,9 +26,13 @@ from hcat_service_check import hcat_service_check
 from webhcat_service_check import webhcat_service_check
 from ambari_commons import OSConst
 from ambari_commons.os_family_impl import OsFamilyImpl
-from resource_management.core import shell
 from resource_management.core.logger import Logger
 from resource_management.libraries.functions import get_unique_id_and_date
+from resource_management.libraries.script.script import Script
+from resource_management.libraries.functions.format import format
+from resource_management.libraries.functions.hive_check import 
check_thrift_port_sasl
+from resource_management.core.resources.system import Execute
+from resource_management.core.exceptions import Fail
 
 class HiveServiceCheck(Script):
   pass
@@ -168,7 +170,7 @@ class HiveServiceCheckDefault(HiveServiceCheck):
       beeline_url.append('principal={key}')
 
     exec_path = params.execute_path
-    if params.version and params.stack_root:
+    if params.version:
       upgrade_hive_bin = format("{stack_root}/{version}/hive2/bin")
       exec_path =  os.environ['PATH'] + os.pathsep + params.hadoop_bin_dir + 
os.pathsep + upgrade_hive_bin
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/b5325dc3/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_service_check.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_service_check.py 
b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_service_check.py
index 273bd96..daabe1c 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_service_check.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_service_check.py
@@ -259,7 +259,6 @@ class TestServiceCheck(RMFTestCase):
     self.assertNoMoreResources()
 
 
-
   def test_service_check_during_upgrade(self, socket_mock):
     config_file = self.get_src_folder() + 
"/test/python/stacks/2.2/configs/hive-upgrade.json"
     with open(config_file, 'r') as f:
@@ -289,3 +288,45 @@ class TestServiceCheck(RMFTestCase):
         tries = 3,
         user = 'ambari-qa',
         try_sleep = 5)
+
+
+  def test_service_check_during_upgrade_for_llap(self, socket_mock):
+    config_file = self.get_src_folder() + 
"/test/python/stacks/2.2/configs/hive-upgrade.json"
+    with open(config_file, 'r') as f:
+      json_content = json.load(f)
+
+    # populate version and an LLAP instance to trigger the LLAP service check
+    json_content['commandParams']['version'] = "2.3.0.0-1234"
+    json_content['clusterHostInfo']['hive_server_interactive_hosts'] = 
["c6402.ambari.apache.org"]
+    json_content['configurations']['hive-interactive-env'] = {}
+    
json_content['configurations']['hive-interactive-env']['enable_hive_interactive']
 = True
+
+
+    self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + 
"/scripts/service_check.py",
+      classname = "HiveServiceCheck",
+      command = "service_check",
+      config_dict = json_content,
+      stack_version = self.STACK_VERSION,
+      target = RMFTestCase.TARGET_COMMON_SERVICES)
+
+    self.assertResourceCalled('Execute',
+      "! beeline -u 
'jdbc:hive2://c6402.ambari.apache.org:10010/;transportMode=binary' -e '' 2>&1| 
awk '{print}'|grep -i -e 'Connection refused' -e 'Invalid URL'",
+      path = ['/bin/', '/usr/bin/', '/usr/lib/hive/bin/', '/usr/sbin/'],
+      timeout = 30,
+      user = 'ambari-qa')
+
+    self.assertResourceCalled('Execute',
+      "! beeline -u 
'jdbc:hive2://c6402.ambari.apache.org:10500/;transportMode=binary' -e '' 2>&1| 
awk '{print}'|grep -i -e 'Connection refused' -e 'Invalid URL'",
+      path = ['/bin/', '/usr/bin/', '/usr/lib/hive/bin/', '/usr/sbin/'],
+      timeout = 30,
+      user = 'ambari-qa')
+
+    # LLAP call
+    self.assertResourceCalled('Execute',
+      "! beeline -u 
'jdbc:hive2://c6402.ambari.apache.org:10500/;transportMode=binary' --hiveconf 
\"hiveLlapServiceCheck=\" -f 
/usr/hdp/current/hive-server2-hive2/scripts/llap/sql/serviceCheckScript.sql -e 
'' 2>&1| awk '{print}'|grep -i -e 'Invalid status\|Invalid URL\|command not 
found\|Connection refused'",
+      path = ['/usr/sbin', '/usr/local/bin', '/bin', '/usr/bin', 
'/bin:/usr/hdp/current/hadoop-client/bin:/usr/hdp/2.3.0.0-1234/hive2/bin'],
+      tries = 1,
+      stderr = -1,
+      wait_for_finish = True,
+      logoutput = True,
+      user = 'hive')

Reply via email to