Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 bbd9dad57 -> eccbd54b4


AMBARI-11800. RU: Hive upgrade failed when conf.server is not available (ncole)


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

Branch: refs/heads/branch-2.1
Commit: eccbd54b4c0002770be959548ac8105fc0a295e1
Parents: bbd9dad
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Jun 8 19:34:41 2015 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Jun 8 19:34:57 2015 -0400

----------------------------------------------------------------------
 .../package/scripts/hive_server_upgrade.py      |  6 +++++
 .../stacks/2.0.6/HIVE/test_hive_server.py       | 23 ++++++++++++++++++++
 2 files changed, 29 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/eccbd54b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_upgrade.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_upgrade.py
 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_upgrade.py
index 0b29d6f..d676304 100644
--- 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_upgrade.py
+++ 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_upgrade.py
@@ -17,6 +17,7 @@ limitations under the License.
 
 """
 
+import os
 import re
 from resource_management.core.logger import Logger
 from resource_management.core.exceptions import Fail
@@ -49,6 +50,11 @@ def pre_upgrade_deregister():
   if current_hiveserver_version is None:
     raise Fail('Unable to determine the current HiveServer2 version to 
deregister.')
 
+  # fallback when upgrading because 
/usr/hdp/current/hive-server2/conf/conf.server may not exist
+  hive_server_conf_dir = params.hive_server_conf_dir
+  if not os.path.exists(hive_server_conf_dir):
+    hive_server_conf_dir = "/etc/hive/conf.server"
+
   # deregister
   command = format('hive --config {hive_server_conf_dir} --service hiveserver2 
--deregister ' + current_hiveserver_version)
   Execute(command, user=params.hive_user, path=params.execute_path, tries=1 )

http://git-wip-us.apache.org/repos/asf/ambari/blob/eccbd54b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py 
b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
index 6fcd0f1..43a99b9 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py
@@ -655,7 +655,10 @@ class TestHiveServer(RMFTestCase):
 
   @patch("resource_management.libraries.functions.copy_tarball.copy_to_hdfs")
   @patch.object(Script, "is_hdp_stack_greater_or_equal", new = 
MagicMock(return_value=True))
+  @patch("os.path.exists", new = MagicMock(return_value=True))
+  @patch("platform.linux_distribution", new = MagicMock(return_value="Linux"))
   def test_stop_during_upgrade(self, copy_to_hdfs_mock):
+
     call_side_effects = [(0, "hive-server2 - 2.2.0.0-2041"), (0, "hive-server2 
- 2.2.0.0-2041")] * 4
     copy_to_hdfs_mock.return_value = True
 
@@ -672,6 +675,26 @@ class TestHiveServer(RMFTestCase):
 
     self.assertResourceCalled('Execute', 'hdp-select set hive-server2 
2.2.1.0-2065',)
 
+  @patch("resource_management.libraries.functions.copy_tarball.copy_to_hdfs")
+  @patch.object(Script, "is_hdp_stack_greater_or_equal", new = 
MagicMock(return_value=True))
+  def test_stop_during_upgrade_with_default_conf_server(self, 
copy_to_hdfs_mock):
+
+    call_side_effects = [(0, "hive-server2 - 2.2.0.0-2041"), (0, "hive-server2 
- 2.2.0.0-2041")] * 4
+    copy_to_hdfs_mock.return_value = True
+
+    self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + 
"/scripts/hive_server.py",
+     classname = "HiveServer", command = "restart", config_file = 
"hive-upgrade.json",
+     hdp_stack_version = self.UPGRADE_STACK_VERSION,
+     target = RMFTestCase.TARGET_COMMON_SERVICES,
+     call_mocks = call_side_effects
+    )
+
+    self.assertResourceCalled('Execute', 'hive --config /etc/hive/conf.server 
--service hiveserver2 --deregister 2.2.0.0-2041',
+      
path=['/bin:/usr/hdp/current/hive-server2/bin:/usr/hdp/current/hadoop-client/bin'],
+      tries=1, user='hive')
+
+    self.assertResourceCalled('Execute', 'hdp-select set hive-server2 
2.2.1.0-2065',)
+
   def test_stop_during_upgrade_bad_hive_version(self):
     try:
       self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + 
"/scripts/hive_server.py",

Reply via email to