Rename juju-charms -> charms
[osm/devops.git] / charms / layers / ansible-charm / actions / ansible-playbook
diff --git a/charms/layers/ansible-charm/actions/ansible-playbook b/charms/layers/ansible-charm/actions/ansible-playbook
new file mode 100755 (executable)
index 0000000..67f581f
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python3
+#
+# OSM devops/charms - Ansible charm inside OSM devops
+#
+# Copyright 2017-2018 Universidad Carlos III de Madrid
+#
+# 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
+from charms.reactive import set_state
+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_state('actions.{}'.format(action_name()))
+
+try:
+    main()
+except Exception as e:
+    action_fail(repr(e))