AMBARI-8044. Alerts are present on host after enabling maintenance mode - post fixes 2 (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/df98ca9e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/df98ca9e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/df98ca9e Branch: refs/heads/trunk Commit: df98ca9e46c197dc5dc1ec50dc5d8144a084aaef Parents: bff65d1 Author: Lisnichenko Dmitro <[email protected]> Authored: Thu Oct 30 18:16:27 2014 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Thu Oct 30 18:17:15 2014 +0200 ---------------------------------------------------------------------- .../services/NAGIOS/package/files/mm_wrapper.py | 25 +++++++++++++------- .../stacks/1.3.2/NAGIOS/test_mm_wrapper.py | 6 ++--- 2 files changed, 20 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/df98ca9e/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/mm_wrapper.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/mm_wrapper.py b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/mm_wrapper.py index b1b6a84..bd7a94f 100644 --- a/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/mm_wrapper.py +++ b/ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/package/files/mm_wrapper.py @@ -44,18 +44,23 @@ def ignored_host_list(service, component): :param component: current component :return: all hosts where specified host component is in ignored state """ + def str_norm(s): + return s.strip().upper() + + result = [] + try: - with open(IGNORE_DAT_FILE) as f: - lines = f.readlines() + with open(IGNORE_DAT_FILE, 'r') as f: + lines = filter(None, f.read().split(os.linesep)) except IOError: - return [] - result = [] + return result + if lines: for l in lines: tokens = l.split(' ') - if len(tokens) == 3 and tokens[1].strip().upper() == service.strip().upper() and \ - tokens[2].strip().upper() == component.strip().upper(): - result.append(tokens[0]) + if len(tokens) == 3 and str_norm(tokens[1]) == str_norm(service) \ + and str_norm(tokens[2]) == str_norm(component): + result.append(tokens[0]) return result @@ -133,7 +138,11 @@ def parse_args(args): for arg in args: if not passed_separator: if arg != LIST_SEPARATOR: - hostnames.append(arg) + #check if was passed list of hosts instead of one + if ',' in arg: + hostnames += arg.split(',') + else: + hostnames.append(arg) else: passed_separator = True else: http://git-wip-us.apache.org/repos/asf/ambari/blob/df98ca9e/ambari-server/src/test/python/stacks/1.3.2/NAGIOS/test_mm_wrapper.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/1.3.2/NAGIOS/test_mm_wrapper.py b/ambari-server/src/test/python/stacks/1.3.2/NAGIOS/test_mm_wrapper.py index 04869a4..a75e92a 100644 --- a/ambari-server/src/test/python/stacks/1.3.2/NAGIOS/test_mm_wrapper.py +++ b/ambari-server/src/test/python/stacks/1.3.2/NAGIOS/test_mm_wrapper.py @@ -73,15 +73,15 @@ vm-3.vm ZOOKEEPER ZOOKEEPER_SERVER @patch("__builtin__.open") def test_ignored_host_list(self, open_mock): # Check with empty file content - open_mock.return_value.__enter__.return_value.readlines.return_value = [] + open_mock.return_value.__enter__.return_value.read.return_value = "" lst = mm_wrapper.ignored_host_list('STORM', 'SUPERVISOR') self.assertEqual(pprint.pformat(lst), '[]') # Check with dummy content - open_mock.return_value.__enter__.return_value.readlines.return_value = self.dummy_ignore_file.splitlines() + open_mock.return_value.__enter__.return_value.read.return_value = self.dummy_ignore_file lst = mm_wrapper.ignored_host_list('STORM', 'SUPERVISOR') self.assertEqual(pprint.pformat(lst), "['vm-4.vm', 'vm-3.vm']") # Check if service name/comp name are not defined - open_mock.return_value.__enter__.return_value.readlines.return_value = self.dummy_ignore_file.splitlines() + open_mock.return_value.__enter__.return_value.read.return_value = self.dummy_ignore_file lst = mm_wrapper.ignored_host_list('', '') self.assertEqual(pprint.pformat(lst), "[]")
