X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju-charms%2Flayers%2Fpingpong%2Freactive%2Fpingpong.py;h=7eedc84a1a6d652cd5e199448e2da2be1f86d0ec;hb=c3733e1cfa5e981130a698a1b8563a98ba3058fd;hp=701d9e2118b4e467fadc79b559a873fb8a9ec199;hpb=61a50e79ee64cde0b1c2c96119b90ac9bddb9ea9;p=osm%2Fdevops.git diff --git a/juju-charms/layers/pingpong/reactive/pingpong.py b/juju-charms/layers/pingpong/reactive/pingpong.py index 701d9e21..7eedc84a 100755 --- a/juju-charms/layers/pingpong/reactive/pingpong.py +++ b/juju-charms/layers/pingpong/reactive/pingpong.py @@ -26,28 +26,39 @@ cfg = config() @when_not('pingpong.configured') def not_configured(): """Check the current configuration. + Check the current values in config to see if we have enough - information to continue.""" + information to continue. + """ config_changed() @when('config.changed', 'sshproxy.configured') def config_changed(): """Verify the configuration. + Verify that the charm has been configured """ - status_set('maintenance', 'Verifying configuration data...') - (validated, output) = charms.sshproxy.verify_ssh_credentials() - if not validated: - status_set('blocked', 'Unable to verify SSH credentials: {}'.format( - output - )) - if all(k in cfg for k in ['mode']): - if cfg['mode'] in ['ping', 'pong']: - set_flag('pingpong.configured') - status_set('active', 'ready!') + + try: + status_set('maintenance', 'Verifying configuration data...') + + (validated, output) = charms.sshproxy.verify_ssh_credentials() + if not validated: + status_set('blocked', 'Unable to verify SSH credentials: {}'.format( + output + )) return - status_set('blocked', 'Waiting for configuration') + + if all(k in cfg for k in ['mode']): + if cfg['mode'] in ['ping', 'pong']: + set_flag('pingpong.configured') + status_set('active', 'ready!') + return + status_set('blocked', 'Waiting for configuration') + + except Exception as err: + status_set('blocked', 'Waiting for valid configuration ({})'.format(err)) @when('config.changed')