Merge ~paulgear/charm-openstack-service-checks:master into ~canonical-bootstack/charm-openstack-service-checks:master

Proposed by Paul Gear
Status: Merged
Approved by: Paul Gear
Approved revision: b06024875cd703b6aecdf3686395289aa80e2bfd
Merged at revision: 4c0cf281240f1a87278e2b8846f7ea352bb90997
Proposed branch: ~paulgear/charm-openstack-service-checks:master
Merge into: ~canonical-bootstack/charm-openstack-service-checks:master
Diff against target: 75 lines (+10/-13)
1 file modified
reactive/service_checks.py (+10/-13)
Reviewer Review Type Date Requested Status
Stuart Bishop (community) Approve
Review via email: mp+353288@code.launchpad.net

Commit message

Correct state management so that install isn't called on every hook

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
Stuart Bishop (stub) wrote :

Mostly fine, but one bug commented on inline (the restart handler can run much too early).

triggers is an alternative approach to some of this, but docs recommend things the way you have (and I can argue it both ways). https://charmsreactive.readthedocs.io/en/latest/triggers.html#coupling-flags-with-triggers

review: Approve
Revision history for this message
Stuart Bishop (stub) wrote :

yup

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

Change successfully merged at revision 4c0cf281240f1a87278e2b8846f7ea352bb90997

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 3081354..8341324 100644
3--- a/reactive/service_checks.py
4+++ b/reactive/service_checks.py
5@@ -29,17 +29,12 @@ install_packages = ['nagios-nrpe-server', 'python-openstackclient']
6
7
8 @when_not('os-service-checks.installed')
9-def set_install_service_checks():
10- set_state('os-service-checks.do-install')
11-
12-
13-@when('os-service-checks.do-install')
14 def install_service_checks():
15 hookenv.status_set('maintenance', 'Installing software')
16 apt_update()
17 apt_install(install_packages)
18 set_state('os-service-checks.installed')
19- set_state('os-service-checks.do-check-reconfig')
20+ remove_state('os-service-checks.configured')
21 hookenv.status_set('active', 'Ready')
22 # setup openstack user
23
24@@ -54,7 +49,7 @@ def configure_keystone_username(keystone):
25 def save_creds(keystone):
26 creds = get_creds(keystone)
27 unitdata.kv().set('keystone-relation-creds', creds)
28- set_state('os-service-checks.do-reconfig')
29+ remove_state('os-service-checks.configured')
30
31
32 def get_creds(keystone):
33@@ -117,7 +112,6 @@ def get_credentials():
34 else:
35 kv = unitdata.kv()
36 creds = kv.get('keystone-relation-creds')
37- set_state('os-service-checks.do-reconfig')
38 return creds
39
40
41@@ -166,10 +160,11 @@ def render_checks():
42
43 @when('nrpe-external-master.available')
44 def nrpe_connected(nem):
45- set_state('os-service-checks.do-reconfig')
46+ remove_state('os-service-checks.configured')
47
48
49-@when('os-service-checks.do-reconfig')
50+@when('os-service-checks.installed')
51+@when_not('os-service-checks.configured')
52 def render_config():
53 creds = get_credentials()
54 if not creds:
55@@ -182,15 +177,17 @@ def render_config():
56 render_checks()
57 if config.get('trusted_ssl_ca', None):
58 fix_ssl()
59- set_state('os-service-checks.do-restart')
60+ set_state('os-service-checks.configured')
61+ remove_state('os-service-checks.started')
62
63
64-@when('os-service-checks.do-restart')
65+@when('os-service-checks.configured')
66+@when_not('os-service-checks.started')
67 def do_restart():
68 hookenv.log('Reloading nagios-nrpe-server')
69 host.service_restart('nagios-nrpe-server')
70 hookenv.status_set('active', 'Ready')
71- remove_state('os-service-checks.do-restart')
72+ set_state('os-service-checks.started')
73
74
75 def fix_ssl():

Subscribers

People subscribed via source and target branches