X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=juju-charms%2Flayers%2Fpingpong%2Freactive%2Fpingpong.py;h=2bcbc143254dfc57faf21912a58746d770e2af0f;hb=refs%2Fchanges%2F09%2F5609%2F1;hp=b5a5db965a3c7c010a9cb087582e87d450a1ed56;hpb=c7a82d0be7c72183e6db9e0fb522b484f9c8df84;p=osm%2Fdevops.git diff --git a/juju-charms/layers/pingpong/reactive/pingpong.py b/juju-charms/layers/pingpong/reactive/pingpong.py old mode 100644 new mode 100755 index b5a5db96..2bcbc143 --- a/juju-charms/layers/pingpong/reactive/pingpong.py +++ b/juju-charms/layers/pingpong/reactive/pingpong.py @@ -10,20 +10,29 @@ from charms.reactive import ( remove_state as remove_flag, set_state as set_flag, when, + when_not, ) import charms.sshproxy -from subprocess import ( - Popen, - CalledProcessError, - PIPE, -) +# from subprocess import ( +# Popen, +# CalledProcessError, +# PIPE, +# ) cfg = config() -@when('config.changed') +@when('config.changed', 'sshproxy.configured') def config_changed(): + """Verify the configuration. + Verify that the charm has been configured + """ + (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') @@ -32,6 +41,13 @@ def config_changed(): status_set('blocked', 'Waiting for configuration') +@when('config.changed') +@when_not('sshproxy.configured') +def invalid_credentials(): + status_set('blocked', 'Waiting for SSH credentials.') + pass + + def is_ping(): if cfg['mode'] == 'ping': return True @@ -63,16 +79,16 @@ def start(): remove_flag('actions.start') return + # Attempt to raise the non-mgmt interface, but ignore failures if + # the interface is already up. try: - cmd = "sudo timeout 30 /sbin/ifup eth1" + cmd = "sudo timeout 30 /sbin/ifup eth1" result, err = charms.sshproxy._run(cmd) except Exception as e: - action_fail('command failed: {}, errors: {}'.format(e, e.output)) - remove_flag('actions.start') - return + pass try: - cmd = "sudo timeout 30 /usr/bin/systemctl start {}". \ + cmd = "sudo timeout 30 /usr/bin/systemctl start {}". \ format(cfg['mode']) result, err = charms.sshproxy._run(cmd) except Exception as e: