You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2015/06/19 20:08:48 UTC

ambari git commit: AMBARI-12022 - Manual Rolling Upgrade Cannot Finalize Because Clients Reset Version On Restart (jonathanhurley)

Repository: ambari
Updated Branches:
  refs/heads/trunk 24f1cdec4 -> 381459979


AMBARI-12022 - Manual Rolling Upgrade Cannot Finalize Because Clients Reset Version On Restart (jonathanhurley)


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

Branch: refs/heads/trunk
Commit: 38145997908568e489dd801b1a0834b765e61f45
Parents: 24f1cde
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Fri Jun 19 13:57:02 2015 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Fri Jun 19 14:08:42 2015 -0400

----------------------------------------------------------------------
 .../python/resource_management/TestScript.py    |  7 +-----
 .../libraries/script/script.py                  | 26 ++++----------------
 2 files changed, 6 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/38145997/ambari-agent/src/test/python/resource_management/TestScript.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/resource_management/TestScript.py b/ambari-agent/src/test/python/resource_management/TestScript.py
index 5107e1e..ce73b12 100644
--- a/ambari-agent/src/test/python/resource_management/TestScript.py
+++ b/ambari-agent/src/test/python/resource_management/TestScript.py
@@ -44,9 +44,8 @@ class TestScript(TestCase):
     sys.stdout = out
 
 
-  @patch.object(Script, 'set_version')
   @patch("resource_management.core.providers.package.PackageProvider")
-  def test_install_packages(self, package_provider_mock, set_version_mock):
+  def test_install_packages(self, package_provider_mock):
     no_packages_config = {
       'hostLevelParams' : {
         'repo_info' : "[{\"baseUrl\":\"http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0\",\"osType\":\"centos6\",\"repoId\":\"HDP-2.0._\",\"repoName\":\"HDP\",\"defaultBaseUrl\":\"http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0\"}]"
@@ -90,7 +89,6 @@ class TestScript(TestCase):
       script.install_packages("env")
     resource_dump = pprint.pformat(env.resource_list)
     self.assertEqual(resource_dump, '[Package[\'hbase\'], Package[\'yet-another-package\']]')
-    self.assertTrue(set_version_mock.called)
 
   @patch("__builtin__.open")
   def test_structured_out(self, open_mock):
@@ -129,7 +127,6 @@ class TestScript(TestCase):
     with Environment(".", test_mode=True) as env:
       script = Script()
       Script.config = good_config
-      script.set_version()
     resource_dump = pprint.pformat(env.resource_list)
     self.assertEquals(resource_dump, '[Execute[\'(\'/usr/bin/hdp-select\', \'set\', \'kafka-broker\', \'2.2.0.0-2041\')\']]')
 
@@ -139,7 +136,6 @@ class TestScript(TestCase):
     with Environment(".", test_mode=True) as env:
       script = Script()
       Script.config = good_config
-      script.set_version()
     resource_dump = pprint.pformat(env.resource_list)
     self.assertEquals(resource_dump, '[]')
 
@@ -150,7 +146,6 @@ class TestScript(TestCase):
     with Environment(".", test_mode=True) as env:
       script = Script()
       Script.config = bad_config
-      script.set_version()
     resource_dump = pprint.pformat(env.resource_list)
     self.assertEquals(resource_dump, '[]')
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/38145997/ambari-common/src/main/python/resource_management/libraries/script/script.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/script/script.py b/ambari-common/src/main/python/resource_management/libraries/script/script.py
index cf46ee2..b074fe5 100644
--- a/ambari-common/src/main/python/resource_management/libraries/script/script.py
+++ b/ambari-common/src/main/python/resource_management/libraries/script/script.py
@@ -176,7 +176,7 @@ class Script(object):
      print USAGE.format(os.path.basename(sys.argv[0])) # print to stdout
      sys.exit(1)
 
-    command_name = str.lower(sys.argv[1])
+    self.command_name = str.lower(sys.argv[1])
     self.command_data_file = sys.argv[2]
     self.basedir = sys.argv[3]
     self.stroutfile = sys.argv[4]
@@ -210,12 +210,12 @@ class Script(object):
 
     # Run class method depending on a command type
     try:
-      method = self.choose_method_to_execute(command_name)
+      method = self.choose_method_to_execute(self.command_name)
       with Environment(self.basedir, tmp_dir=Script.tmp_dir) as env:
         env.config.download_path = Script.tmp_dir
         method(env)
     finally:
-      if self.should_expose_component_version(command_name):
+      if self.should_expose_component_version(self.command_name):
         self.save_component_version_to_structured_out()
 
   def choose_method_to_execute(self, command_name):
@@ -373,7 +373,6 @@ class Script(object):
                           hadoop_user, self.get_password(hadoop_user),
                           str(config['hostLevelParams']['stack_version']))
       reload_windows_env()
-    self.set_version()
 
   @staticmethod
   def fail_with_error(message):
@@ -389,13 +388,13 @@ class Script(object):
     """
     To be overridden by subclasses
     """
-    self.fail_with_error('start method isn\'t implemented')
+    self.fail_with_error("start method isn't implemented")
 
   def stop(self, env, rolling_restart=False):
     """
     To be overridden by subclasses
     """
-    self.fail_with_error('stop method isn\'t implemented')
+    self.fail_with_error("stop method isn't implemented")
 
   def pre_rolling_restart(self, env):
     """
@@ -542,18 +541,3 @@ class Script(object):
       archive_dir(output_filename, conf_tmp_dir)
     finally:
       Directory(conf_tmp_dir, action="delete")
-
-  def set_version(self):
-    from resource_management.libraries.functions.default import default
-    stack_name = default("/hostLevelParams/stack_name", None)
-    version = default("/commandParams/version", None)
-    stack_version_unformatted = str(default("/hostLevelParams/stack_version", ""))
-    hdp_stack_version = format_hdp_stack_version(stack_version_unformatted)
-    stack_to_component = self.get_stack_to_component()
-    if stack_to_component:
-      component_name = stack_to_component[stack_name] if stack_name in stack_to_component else None
-      if component_name and stack_name and version and \
-              compare_versions(format_hdp_stack_version(hdp_stack_version), '2.2.0.0') >= 0:
-        Execute(('/usr/bin/hdp-select', 'set', component_name, version),
-                sudo = True)
-