Revert "Clean up commented or unused code"

This reverts commit b4e7f5c425df48f7e946d792184d1d1b44879fe9.

Change-Id: I31a65516e65c3eb6528f241e36c1e45f3753f4c0
Signed-off-by: David Garcia <david.garcia@canonical.com>
diff --git a/tests/charms/layers/native-ci/README.md b/tests/charms/layers/native-ci/README.md
new file mode 100644
index 0000000..d58b762
--- /dev/null
+++ b/tests/charms/layers/native-ci/README.md
@@ -0,0 +1,3 @@
+# Overview
+
+A native charm.
diff --git a/tests/charms/layers/native-ci/actions.yaml b/tests/charms/layers/native-ci/actions.yaml
new file mode 100644
index 0000000..46c6cb7
--- /dev/null
+++ b/tests/charms/layers/native-ci/actions.yaml
@@ -0,0 +1,22 @@
+# 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.
+
+test:
+    description: "Verify that the action can run."
+testint:
+    description: "Test a primitive with a non-string parameter"
+    params:
+        intval:
+            type: integer
+            default: 0
diff --git a/tests/charms/layers/native-ci/actions/test b/tests/charms/layers/native-ci/actions/test
new file mode 100755
index 0000000..7e30af4
--- /dev/null
+++ b/tests/charms/layers/native-ci/actions/test
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+##
+# Copyright 2016 Canonical Ltd.
+# All rights reserved.
+#
+# 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.
+##
+import sys
+sys.path.append('lib')
+
+from charms.reactive import main, set_flag
+from charmhelpers.core.hookenv import action_fail, action_name
+
+"""
+`set_state` only works here because it's flushed to disk inside the `main()`
+loop. remove_state will need to be called inside the action method.
+"""
+set_flag('actions.{}'.format(action_name()))
+
+try:
+    main()
+except Exception as e:
+    action_fail(repr(e))
diff --git a/tests/charms/layers/native-ci/actions/testint b/tests/charms/layers/native-ci/actions/testint
new file mode 100755
index 0000000..7e30af4
--- /dev/null
+++ b/tests/charms/layers/native-ci/actions/testint
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+##
+# Copyright 2016 Canonical Ltd.
+# All rights reserved.
+#
+# 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.
+##
+import sys
+sys.path.append('lib')
+
+from charms.reactive import main, set_flag
+from charmhelpers.core.hookenv import action_fail, action_name
+
+"""
+`set_state` only works here because it's flushed to disk inside the `main()`
+loop. remove_state will need to be called inside the action method.
+"""
+set_flag('actions.{}'.format(action_name()))
+
+try:
+    main()
+except Exception as e:
+    action_fail(repr(e))
diff --git a/tests/charms/layers/native-ci/layer.yaml b/tests/charms/layers/native-ci/layer.yaml
new file mode 100644
index 0000000..4dd82f9
--- /dev/null
+++ b/tests/charms/layers/native-ci/layer.yaml
@@ -0,0 +1,21 @@
+# 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.
+
+includes:
+    - 'layer:basic'
+    - 'interface:mysql'
+    
+options:
+    basic:
+        use_venv: false
diff --git a/tests/charms/layers/native-ci/metadata.yaml b/tests/charms/layers/native-ci/metadata.yaml
new file mode 100644
index 0000000..1c72d9e
--- /dev/null
+++ b/tests/charms/layers/native-ci/metadata.yaml
@@ -0,0 +1,26 @@
+# 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.
+
+name: native-ci
+summary: A native VNF charm
+description: A native VNF charm
+maintainer: Adam Israel <adam.israel@canonical.com>
+subordinate: false
+series: ['xenial']
+# provides:
+#     db:
+#         interface: mysql
+# requires:
+#     app:
+#         interface: mysql
diff --git a/tests/charms/layers/native-ci/reactive/native-ci.py b/tests/charms/layers/native-ci/reactive/native-ci.py
new file mode 100644
index 0000000..72365c0
--- /dev/null
+++ b/tests/charms/layers/native-ci/reactive/native-ci.py
@@ -0,0 +1,76 @@
+# 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,
+    action_get,
+    status_set,
+)
+from charms.reactive import (
+    clear_flag,
+    set_flag,
+    when,
+    when_not,
+)
+
+
+@when_not('native-ci.installed')
+def install_native_ci_charm():
+    set_flag('native-ci.installed')
+    status_set('active', 'Ready!')
+
+
+@when('actions.test', 'native-ci.installed')
+def test():
+    try:
+        result = True
+    except Exception as e:
+        action_fail('command failed: {}'.format(e))
+    else:
+        action_set({'output': result})
+    finally:
+        clear_flag('actions.test')
+
+
+@when('actions.testint', 'native-ci.installed')
+def testint():
+    try:
+        # Test the value is an int by performing a mathmatical operation on it.
+        intval = action_get('intval')
+        intval = intval + 1
+    except Exception as e:
+        action_fail('command failed: {}'.format(e))
+    else:
+        action_set({'output': intval})
+    finally:
+        clear_flag('actions.testint')
+
+
+# @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