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)
-