nagios-charmers team mailing list archive
-
nagios-charmers team
-
Mailing list archive
-
Message #01255
[Bug 1947208] [NEW] amphorae check fails because of empty string
Public bug reported:
I added a few prints in the code to show what is happening. Retrieving
items["status"] fails because items is empty. That should be caught by
the code instead of returning a traceback.
sudo vi /usr/local/lib/nagios/plugins/check_octavia.py
def check_amphorae(connection):
"""Check amphorae status."""
lb_mgr = connection.load_balancer
resp = lb_mgr.get("/v2/octavia/amphorae")
print(resp)
# python api is not available yet, use url
if resp.status_code != 200:
return [(NAGIOS_STATUS_WARNING, "amphorae api not working")]
data = json.loads(resp.content)
print(data)
# ouput is like {"amphorae": [{...}, {...}, ...]}
items = data.get("amphorae", [])
print(items)
# raise CRITICAL for ERROR status
bad_status_list = ["ERROR"]
bad_amp = [
(
NAGIOS_STATUS_CRITICAL,
"amphora {} status is {}".format(item["id"], item["status"]),
)
for item in items
if item["status"] in bad_status_list
]
ubuntu@juju-fa5261-0-lxd-7:/etc/nagios/nrpe.d$ sudo /usr/local/lib/nagios/plugins/check_octavia.py --check amphorae
<Response [200]>
{'amphorae': [{}, {}], 'amphorae_links': []}
[{}, {}]
Traceback (most recent call last):
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 350, in
<module>
main()
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 344, in
main
status, message = process_checks(args)
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 285, in
process_checks
return nagios_exit(args, checks[args.check](connection))
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 208, in
check_amphorae
bad_amp = [
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 214, in
<listcomp>
if item["status"] in bad_status_list
KeyError: 'status'
** Affects: charm-nagios
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Nagios
Charm developers, which is subscribed to Nagios Charm.
https://bugs.launchpad.net/bugs/1947208
Title:
amphorae check fails because of empty string
Status in Nagios Charm:
New
Bug description:
I added a few prints in the code to show what is happening. Retrieving
items["status"] fails because items is empty. That should be caught by
the code instead of returning a traceback.
sudo vi /usr/local/lib/nagios/plugins/check_octavia.py
def check_amphorae(connection):
"""Check amphorae status."""
lb_mgr = connection.load_balancer
resp = lb_mgr.get("/v2/octavia/amphorae")
print(resp)
# python api is not available yet, use url
if resp.status_code != 200:
return [(NAGIOS_STATUS_WARNING, "amphorae api not working")]
data = json.loads(resp.content)
print(data)
# ouput is like {"amphorae": [{...}, {...}, ...]}
items = data.get("amphorae", [])
print(items)
# raise CRITICAL for ERROR status
bad_status_list = ["ERROR"]
bad_amp = [
(
NAGIOS_STATUS_CRITICAL,
"amphora {} status is {}".format(item["id"], item["status"]),
)
for item in items
if item["status"] in bad_status_list
]
ubuntu@juju-fa5261-0-lxd-7:/etc/nagios/nrpe.d$ sudo /usr/local/lib/nagios/plugins/check_octavia.py --check amphorae
<Response [200]>
{'amphorae': [{}, {}], 'amphorae_links': []}
[{}, {}]
Traceback (most recent call last):
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 350, in
<module>
main()
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 344, in
main
status, message = process_checks(args)
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 285, in
process_checks
return nagios_exit(args, checks[args.check](connection))
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 208, in
check_amphorae
bad_amp = [
File "/usr/local/lib/nagios/plugins/check_octavia.py", line 214, in
<listcomp>
if item["status"] in bad_status_list
KeyError: 'status'
To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-nagios/+bug/1947208/+subscriptions
Follow ups