diff --git a/.werks/7796 b/.werks/7796 new file mode 100644 index 0000000000000..220ae1618a33b --- /dev/null +++ b/.werks/7796 @@ -0,0 +1,11 @@ +Title: aix_if: Do not crash if agent does not send information about 'flags' +Level: 1 +Component: checks +Class: fix +Compatible: compat +Edition: cre +State: unknown +Version: 1.6.0b2 +Date: 1560414614 + + diff --git a/checks/aix_if b/checks/aix_if index 51522120762dd..5fd43f33966f9 100644 --- a/checks/aix_if +++ b/checks/aix_if @@ -91,9 +91,10 @@ def parse_aix_if(info): if_table = [] for nic in nic_info: - if "Up" in nic_info[nic]["flags"]: + flags = nic_info[nic].get("flags", []) + if "Up" in flags: nic_info[nic]["ifOperStatus"] = 1 - elif "Down" in nic_info[nic]["flags"]: + elif "Down" in flags: nic_info[nic]["ifOperStatus"] = 2 # No information from entstat. We consider interfaces up # if they have been used at least some time since the diff --git a/tests/unit/checks/generictests/datasets/aix_if_5b72baa05be96_regression.py b/tests/unit/checks/generictests/datasets/aix_if_5b72baa05be96_regression.py new file mode 100644 index 0000000000000..be7e23628d381 --- /dev/null +++ b/tests/unit/checks/generictests/datasets/aix_if_5b72baa05be96_regression.py @@ -0,0 +1,19 @@ +# -*- encoding: utf-8 +# yapf: disable + + +checkname = u'aix_if' + + +info = [[u'[en3]'], + [u'Hardware', u'Address:', u'00:AA:BB:CC:DD:EE'], + [u'Packets:', u'38832476370', u'Packets:', u'4125941951'], + [u'Bytes:', u'57999949458755', u'Bytes:', u'627089523952']] + + +discovery = {'': [('1', "{'state': ['1'], 'speed': 0}")]} + + +checks = {'': [('1', + {'errors': (0.01, 0.1), 'speed': 0, 'state': ['1']}, + [(0, '[en3] (up) MAC: 00:AA:BB:CC:DD:EE, speed unknown', [])])]} \ No newline at end of file