Revert "Clean up commented or unused code"
[osm/N2VC.git] / tests / charms / layers / broken / reactive / simple.py
diff --git a/tests/charms/layers/broken/reactive/simple.py b/tests/charms/layers/broken/reactive/simple.py
new file mode 100644 (file)
index 0000000..3a018fb
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright 2019 Canonical Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#     Unless required by applicable law or agreed to in writing, software
+#     distributed under the License is distributed on an "AS IS" BASIS,
+#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#     See the License for the specific language governing permissions and
+#     limitations under the License.
+
+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():
+    raise Exception("I am broken.")
+    err = ''
+    try:
+        filename = action_get('filename')
+        cmd = ['touch {}'.format(filename)]
+        result, err = charms.sshproxy._run(cmd)
+    except Exception:
+        action_fail('command failed:' + err)
+    else:
+        action_set({'output': result})
+    finally:
+        clear_flag('actions.touch')