X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=tests%2Fcharms%2Flayers%2Fsimple%2Freactive%2Fsimple.py;fp=tests%2Fcharms%2Flayers%2Fsimple%2Freactive%2Fsimple.py;h=228be3c3ffaf70fb4c2829d71d90204403a937ba;hp=0000000000000000000000000000000000000000;hb=bf79352ca652b228c5c216564cc512b635e3c5e4;hpb=5963cb495a42f8ca820774124db57dd4e45bec07 diff --git a/tests/charms/layers/simple/reactive/simple.py b/tests/charms/layers/simple/reactive/simple.py new file mode 100644 index 0000000..228be3c --- /dev/null +++ b/tests/charms/layers/simple/reactive/simple.py @@ -0,0 +1,44 @@ +from charmhelpers.core.hookenv import ( + action_get, + action_fail, + action_set, + status_set, +) +from charms.reactive import ( + clear_flag, + set_flag, + when, + when_not, +) +import charms.sshproxy + + +@when('sshproxy.configured') +@when_not('simple.installed') +def install_simple_proxy_charm(): + """Post-install actions. + + This function will run when two conditions are met: + 1. The 'sshproxy.configured' state is set + 2. The 'simple.installed' state is not set + + This ensures that the workload status is set to active only when the SSH + proxy is properly configured. + """ + set_flag('simple.installed') + status_set('active', 'Ready!') + + +@when('actions.touch') +def touch(): + err = '' + try: + filename = action_get('filename') + cmd = ['touch {}'.format(filename)] + result, err = charms.sshproxy._run(cmd) + except: + action_fail('command failed:' + err) + else: + action_set({'output': result}) + finally: + clear_flag('actions.touch')