Repository: ambari Updated Branches: refs/heads/trunk 3bccd97a7 -> c472279bf
AMBARI-12890: Ambari Server and Agent should be more resilent when disk full (Nahappan Somasundaram via jluniya) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c472279b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c472279b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c472279b Branch: refs/heads/trunk Commit: c472279bf6f58a8debfe28352b41067efc74af85 Parents: 3bccd97 Author: Jayush Luniya <[email protected]> Authored: Fri Aug 28 11:29:40 2015 -0700 Committer: Jayush Luniya <[email protected]> Committed: Fri Aug 28 11:29:40 2015 -0700 ---------------------------------------------------------------------- .../resource_management/libraries/script/script.py | 9 ++++++++- .../src/test/python/stacks/2.0.6/FLUME/test_flume.py | 15 +++++++++++++++ .../2.0.6/configs/structured-out-status-bad.json | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/c472279b/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 26fd158..d86e543 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 @@ -95,6 +95,7 @@ class Script(object): basedir = "" stroutfile = "" logging_level = "" + logger = None # Class variable tmp_dir = "" @@ -110,7 +111,12 @@ class Script(object): Script.structuredOut = {} if os.path.exists(self.stroutfile): with open(self.stroutfile, 'r') as fp: - Script.structuredOut = json.load(fp) + try: + Script.structuredOut = json.load(fp) + except Exception: + errMsg = 'Unable to read structured output from ' + self.stroutfile + self.logger.warn(errMsg) + pass # version is only set in a specific way and should not be carried if "version" in Script.structuredOut: @@ -178,6 +184,7 @@ class Script(object): print USAGE.format(os.path.basename(sys.argv[0])) # print to stdout sys.exit(1) + self.logger = logger self.command_name = str.lower(sys.argv[1]) self.command_data_file = sys.argv[2] self.basedir = sys.argv[3] http://git-wip-us.apache.org/repos/asf/ambari/blob/c472279b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py index c3722c6..be2b87c 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py +++ b/ambari-server/src/test/python/stacks/2.0.6/FLUME/test_flume.py @@ -163,6 +163,21 @@ class TestFlumeHandler(RMFTestCase): self.assertFalse("version" in script.structuredOut) + @patch("resource_management.libraries.script.Script.logger", autospec = True) + def test_bad_struct_out(self, logger_mock): + from resource_management.libraries.script import Script + + logger_mock.warn = MagicMock() + + configs_path = os.path.join(RMFTestCase.get_src_folder(), + "test/python/stacks", self.STACK_VERSION, "configs") + + script = Script() + script.stroutfile = os.path.join(configs_path, "structured-out-status-bad.json") + script.load_structured_out() + + self.assertTrue(logger_mock.warn.called) + self.assertTrue(script.structuredOut == {}) @patch("resource_management.libraries.script.Script.put_structured_out") @patch("glob.glob") http://git-wip-us.apache.org/repos/asf/ambari/blob/c472279b/ambari-server/src/test/python/stacks/2.0.6/configs/structured-out-status-bad.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/configs/structured-out-status-bad.json b/ambari-server/src/test/python/stacks/2.0.6/configs/structured-out-status-bad.json new file mode 100644 index 0000000..d53f425 --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.0.6/configs/structured-out-status-bad.json @@ -0,0 +1 @@ +{"securityState" : "UNKNOWN
