Revert "Clean up commented or unused code"
[osm/N2VC.git] / tests / charms / layers / proxy-ci / reactive / proxy_ci.py
diff --git a/tests/charms/layers/proxy-ci/reactive/proxy_ci.py b/tests/charms/layers/proxy-ci/reactive/proxy_ci.py
new file mode 100644 (file)
index 0000000..cf2ed99
--- /dev/null
@@ -0,0 +1,66 @@
+# 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_fail,
+    action_set,
+    status_set,
+)
+from charms.reactive import (
+    set_flag,
+    clear_flag,
+    when_not,
+    when,
+)
+import charms.sshproxy
+
+
+@when_not('proxy-ci.installed')
+def install_proxy_ci():
+    status_set('blocked', "Waiting for SSH credentials.")
+    set_flag('proxy-ci.installed')
+
+
+@when('actions.test', 'proxy-ci.installed')
+def test():
+    err = ''
+    try:
+        cmd = ['hostname']
+        result, err = charms.sshproxy._run(cmd)
+        if len(result) == 0:
+            raise Exception("Proxy failed")
+    except Exception as e:
+        action_fail('command failed: {}'.format(e))
+    else:
+        action_set({'output': result})
+    finally:
+        clear_flag('actions.test')
+
+
+@when('db.joined')
+def provides_db(db):
+    """Simulate providing database credentials."""
+    db.configure(
+        database="mydb",
+        user="myuser",
+        password="mypassword",
+        host="myhost",
+        slave="myslave",
+    )
+
+
+@when('db.available')
+def requires_db(db):
+    """Simulate receiving database credentials."""
+    pass