From ac2c75faee05dfd2e6cca56c0dd0a7dc89df3924 Mon Sep 17 00:00:00 2001 From: Simon Jess Date: Thu, 13 Jun 2019 10:30:44 +0200 Subject: [PATCH] 7796 FIX aix_if: Do not crash if agent does not send information about 'flags' Change-Id: I5ece76e049590fde49b4bcc1038a2afccc04381e --- .werks/7796 | 11 +++++++++++ checks/aix_if | 5 +++-- .../aix_if_5b72baa05be96_regression.py | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 .werks/7796 create mode 100644 tests/unit/checks/generictests/datasets/aix_if_5b72baa05be96_regression.py 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