You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sm...@apache.org on 2013/09/04 22:53:18 UTC
git commit: AMBARI-3097. global config update should append configs
that exist but not in the script template.
Updated Branches:
refs/heads/trunk 2ded3d1af -> 6fc9f12ef
AMBARI-3097. global config update should append configs that exist but not in the script template.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/6fc9f12e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/6fc9f12e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/6fc9f12e
Branch: refs/heads/trunk
Commit: 6fc9f12ef03e087646afe593e618ed06753e5005
Parents: 2ded3d1
Author: Sumit Mohanty <sm...@hortonworks.com>
Authored: Wed Sep 4 13:52:41 2013 -0700
Committer: Sumit Mohanty <sm...@hortonworks.com>
Committed: Wed Sep 4 13:52:41 2013 -0700
----------------------------------------------------------------------
.../src/main/python/UpgradeHelper_HDP2.py | 15 ++++++-
.../src/test/python/TestUpgradeScript_HDP2.py | 44 ++++++++++++++++----
2 files changed, 50 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/6fc9f12e/ambari-server/src/main/python/UpgradeHelper_HDP2.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/python/UpgradeHelper_HDP2.py b/ambari-server/src/main/python/UpgradeHelper_HDP2.py
index 6e38ef1..ad4c014 100644
--- a/ambari-server/src/main/python/UpgradeHelper_HDP2.py
+++ b/ambari-server/src/main/python/UpgradeHelper_HDP2.py
@@ -532,19 +532,22 @@ def modify_configs(options):
update_config(options, MAPRED_SITE, MAPRED_SITE_TAG)
# Update global config, hdfs-site, core-site
- update_config_using_existing(options, GLOBAL_TAG, GLOBAL)
+ update_config_using_existing(options, GLOBAL_TAG, GLOBAL, True)
update_config_using_existing(options, HDFS_SITE_TAG, HDFS_SITE)
update_config_using_existing(options, CORE_SITE_TAG, CORE_SITE)
pass
-def update_config_using_existing(options, type, properties_template):
+def update_config_using_existing(options, type, properties_template, append_unprocessed=False):
site_properties = get_config(options, type)
+ keys_processed = []
for key in properties_template.keys():
+ keys_processed.append(key)
if properties_template[key].find(REPLACE_WITH_TAG) == 0:
name_to_lookup = key
if len(properties_template[key]) > len(REPLACE_WITH_TAG):
name_to_lookup = properties_template[key][len(REPLACE_WITH_TAG):]
+ keys_processed.append(name_to_lookup)
value = ""
if name_to_lookup in site_properties.keys():
value = site_properties[name_to_lookup]
@@ -555,6 +558,14 @@ def update_config_using_existing(options, type, properties_template):
pass
pass
pass
+ if append_unprocessed:
+ for key in site_properties.keys():
+ if key not in keys_processed:
+ properties_template[key] = site_properties[key]
+ pass
+ pass
+ pass
+ pass
update_config(options, properties_template, type)
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/6fc9f12e/ambari-server/src/test/python/TestUpgradeScript_HDP2.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/TestUpgradeScript_HDP2.py b/ambari-server/src/test/python/TestUpgradeScript_HDP2.py
index 7f2ff56..5cabbca 100644
--- a/ambari-server/src/test/python/TestUpgradeScript_HDP2.py
+++ b/ambari-server/src/test/python/TestUpgradeScript_HDP2.py
@@ -24,8 +24,8 @@ import unittest
import UpgradeHelper_HDP2
import StringIO
-class TestUpgradeHDP2Script(TestCase):
+class TestUpgradeHDP2Script(TestCase):
def setUp(self):
out = StringIO.StringIO()
sys.stdout = out
@@ -35,16 +35,46 @@ class TestUpgradeHDP2Script(TestCase):
sys.stdout = sys.__stdout__
- @patch('optparse.Values')
@patch.object(UpgradeHelper_HDP2, 'backup_single_config_type')
- def test_backup_configs(self, backup_config_mock, optparse_mock):
+ def test_backup_configs(self, backup_config_mock):
+ UpgradeHelper_HDP2.backup_configs(None)
+ self.assertTrue(backup_config_mock.called)
- opm = optparse_mock.return_value
+ @patch.object(UpgradeHelper_HDP2, 'update_config')
+ @patch.object(UpgradeHelper_HDP2, 'get_config')
+ @patch('optparse.Values')
+ def test_update_with_append(self, optparse_mock, get_config_mock, update_config_mock):
+ opm = optparse_mock.return_value
+ update_config_mock.return_value = None
options = MagicMock()
- args = ["backup-configs"]
+ args = ["save-configs"]
opm.parse_args.return_value = (options, args)
- UpgradeHelper_HDP2.backup_configs(None)
- self.assertTrue(backup_config_mock.called)
+ get_config_mock.return_value = {"a1": "va1", "a2": "va2", "b1": "vb1", "b2": "vb2", "c1": "vc1"}
+ site_template = {"y1": "vy1", "a1": "REPLACE_WITH_", "a2": "REPLACE_WITH_", "nb1": "REPLACE_WITH_b1",
+ "nb2": "REPLACE_WITH_b2"}
+ expected_site = {"y1": "vy1", "a1": "va1", "a2": "va2", "nb1": "vb1", "nb2": "vb2", "c1": "vc1"}
+ UpgradeHelper_HDP2.update_config_using_existing(opm, "global", site_template, True)
+ get_config_mock.assert_called_once_with(opm, "global")
+ update_config_mock.assert_called_once_with(opm, expected_site, "global")
+
+
+ @patch.object(UpgradeHelper_HDP2, 'update_config')
+ @patch.object(UpgradeHelper_HDP2, 'get_config')
+ @patch('optparse.Values')
+ def test_update_without_append(self, optparse_mock, get_config_mock, update_config_mock):
+ opm = optparse_mock.return_value
+ update_config_mock.return_value = None
+ options = MagicMock()
+ args = ["save-configs"]
+ opm.parse_args.return_value = (options, args)
+ get_config_mock.return_value = {"a1": "va1", "a2": "va2", "b1": "vb1", "b2": "vb2", "c1": "vc1"}
+ site_template = {"y1": "vy1", "a1": "REPLACE_WITH_", "a2": "REPLACE_WITH_", "nb1": "REPLACE_WITH_b1",
+ "nb2": "REPLACE_WITH_b2"}
+ expected_site = {"y1": "vy1", "a1": "va1", "a2": "va2", "nb1": "vb1", "nb2": "vb2"}
+ UpgradeHelper_HDP2.update_config_using_existing(opm, "global", site_template)
+ get_config_mock.assert_called_once_with(opm, "global")
+ update_config_mock.assert_called_once_with(opm, expected_site, "global")
+
if __name__ == "__main__":
unittest.main()