Merge ~afreiberger/charm-openstack-service-checks/+git/charm-openstack-service-checks:lp1818113 into ~canonical-bootstack/charm-openstack-service-checks:master

Proposed by Drew Freiberger
Status: Merged
Approved by: Jeremy Lounder
Approved revision: affc3443398aac717e4c494006c2aff7ef662fc3
Merge reported by: Xav Paice
Merged at revision: affc3443398aac717e4c494006c2aff7ef662fc3
Proposed branch: ~afreiberger/charm-openstack-service-checks/+git/charm-openstack-service-checks:lp1818113
Merge into: ~canonical-bootstack/charm-openstack-service-checks:master
Diff against target: 58 lines (+20/-7)
1 file modified
reactive/service_checks.py (+20/-7)
Reviewer Review Type Date Requested Status
Jeremy Lounder (community) +1 Approve
Chris Sanders (community) Approve
Xav Paice (community) Approve
Review via email: mp+363887@code.launchpad.net

Commit message

Updated error handling for keystone not ready when generating endpoint checks

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
Xav Paice (xavpaice) wrote :

lgtm

review: Approve
Revision history for this message
Chris Sanders (chris.sanders) wrote :

lgtm, adding is-review team

review: Approve
Revision history for this message
Jeremy Lounder (jldev) wrote :

lgtm

review: Approve (+1)
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision a360b2237aa587602f1536fc0d394d5ed1c28788

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/reactive/service_checks.py b/reactive/service_checks.py
2index 1b87f20..9805f77 100644
3--- a/reactive/service_checks.py
4+++ b/reactive/service_checks.py
5@@ -1,5 +1,6 @@
6 from __future__ import print_function
7 import base64
8+import keystoneauth1
9 import os
10 import subprocess
11 from charms.reactive import (
12@@ -160,9 +161,14 @@ def render_checks():
13 nrpe.remove_check(shortname='dns_multi')
14
15 endpoint_checks = create_endpoint_checks()
16- for check in endpoint_checks:
17- nrpe.add_check(**check)
18- nrpe.write()
19+
20+ if endpoint_checks is None:
21+ return False
22+ else:
23+ for check in endpoint_checks:
24+ nrpe.add_check(**check)
25+ nrpe.write()
26+ return True
27
28
29 @when('nrpe-external-master.available')
30@@ -183,9 +189,12 @@ def render_config():
31 creds['username']))
32 render('nagios.novarc', NOVARC, creds,
33 owner='nagios', group='nagios')
34- render_checks()
35- set_state('os-service-checks.configured')
36- remove_state('os-service-checks.started')
37+ if render_checks():
38+ hookenv.status_set('active', 'Ready')
39+ set_state('os-service-checks.configured')
40+ remove_state('os-service-checks.started')
41+ else:
42+ hookenv.status_set('blocked', 'waiting for Keystone to be ready')
43
44
45 @when('os-service-checks.configured')
46@@ -232,7 +241,11 @@ def create_endpoint_checks():
47
48 creds = get_credentials()
49 keystone_client = get_keystone_client(creds)
50- endpoints = keystone_client.endpoints.list()
51+ try:
52+ endpoints = keystone_client.endpoints.list()
53+ except keystoneauth1.exceptions.http.InternalServerError:
54+ return None
55+
56 services = [x for x in keystone_client.services.list() if x.enabled]
57 nrpe_checks = []
58 for endpoint in endpoints:

Subscribers

People subscribed via source and target branches