-
Eduardo Sousa authored
Current version only supports Ansible. It takes as input an empty charm with playbooks and generates the following files: - metadata.yaml - layers.yaml - reactive/<ansible_charm>.py - actions.yaml - actions/<action-name> After that, it is only required to build the charm. NOTE: In this version, it doesn't support parameters yet. Change-Id: Ia771185a38421a04c1adcef4ded3d7a55fa164ee Signed-off-by:
Eduardo Sousa <esousa@whitestack.com>
10b27efc
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
action.j2 1.89 KiB
#!/usr/bin/env python3
{#-
# Copyright 2019 Whitestack, LLC
#
# 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.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: esousa@whitestack.com or glavado@whitestack.com
-#}
{%- if license is defined %}
# Copyright {{ license.year }} {{ license.company }}
#
# 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.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: {{ license.email }}
{%- endif %}
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))