diff --git a/descriptor-packages/tools/charm-generator/generator-runner.py b/descriptor-packages/tools/charm-generator/generator-runner.py new file mode 100644 index 0000000000000000000000000000000000000000..275156b8c9df90a23f5373fb6c3aa794212db773 --- /dev/null +++ b/descriptor-packages/tools/charm-generator/generator-runner.py @@ -0,0 +1,22 @@ +# 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 +## + +from generator.generator import main + +if __name__ == '__main__': + main() diff --git a/descriptor-packages/tools/charm-generator/actions/__init__.py b/descriptor-packages/tools/charm-generator/generator/__init__.py similarity index 100% rename from descriptor-packages/tools/charm-generator/actions/__init__.py rename to descriptor-packages/tools/charm-generator/generator/__init__.py diff --git a/descriptor-packages/tools/charm-generator/generator/__main__.py b/descriptor-packages/tools/charm-generator/generator/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..01143fbb902f64f8cc864369edfce5d59e6116e8 --- /dev/null +++ b/descriptor-packages/tools/charm-generator/generator/__main__.py @@ -0,0 +1,21 @@ +# 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 +## + +from .generator import main + +main() diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/__init__.py b/descriptor-packages/tools/charm-generator/generator/actions/__init__.py similarity index 100% rename from descriptor-packages/tools/charm-generator/ansible-charm/__init__.py rename to descriptor-packages/tools/charm-generator/generator/actions/__init__.py diff --git a/descriptor-packages/tools/charm-generator/actions/templates/action.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/actions/templates/action.j2 rename to descriptor-packages/tools/charm-generator/generator/actions/templates/action.j2 diff --git a/descriptor-packages/tools/charm-generator/actions/templates/actions.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/actions/templates/actions.yaml.j2 rename to descriptor-packages/tools/charm-generator/generator/actions/templates/actions.yaml.j2 diff --git a/descriptor-packages/tools/charm-generator/generators/__init__.py b/descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py similarity index 100% rename from descriptor-packages/tools/charm-generator/generators/__init__.py rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/__init__.py diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_charm.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_charm.py.j2 rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_charm.py.j2 diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_lib.py.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/ansible_lib.py.j2 rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/ansible_lib.py.j2 diff --git a/descriptor-packages/tools/charm-generator/ansible-charm/templates/layer.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/ansible-charm/templates/layer.yaml.j2 rename to descriptor-packages/tools/charm-generator/generator/ansible-charm/templates/layer.yaml.j2 diff --git a/descriptor-packages/tools/charm-generator/generator.py b/descriptor-packages/tools/charm-generator/generator/generator.py similarity index 98% rename from descriptor-packages/tools/charm-generator/generator.py rename to descriptor-packages/tools/charm-generator/generator/generator.py index 22ce1cba9ea7a6e5f52b70a968b51414e708aeb3..0ef9d1d181618942fa605e8551b674cbbc6eed7b 100644 --- a/descriptor-packages/tools/charm-generator/generator.py +++ b/descriptor-packages/tools/charm-generator/generator/generator.py @@ -16,13 +16,15 @@ # contact: esousa@whitestack.com or glavado@whitestack.com ## +__version__ = '1.0.0' + import argparse import logging import sys from datetime import datetime -from generators.ansible_generator import AnsibleGenerator +from .generators.ansible_generator import AnsibleGenerator def configure_logger(args): @@ -165,7 +167,3 @@ def main(): generator.generate() logger.info('Generation process complete.') - - -if __name__ == "__main__": - main() diff --git a/descriptor-packages/tools/charm-generator/metadata/__init__.py b/descriptor-packages/tools/charm-generator/generator/generators/__init__.py similarity index 100% rename from descriptor-packages/tools/charm-generator/metadata/__init__.py rename to descriptor-packages/tools/charm-generator/generator/generators/__init__.py diff --git a/descriptor-packages/tools/charm-generator/generators/actions_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py similarity index 98% rename from descriptor-packages/tools/charm-generator/generators/actions_generator.py rename to descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py index 832fd092b47dcbb84f88b525294c99b70c735d2f..b3da7c339e3943b4caece356f21bcd57bb885c31 100644 --- a/descriptor-packages/tools/charm-generator/generators/actions_generator.py +++ b/descriptor-packages/tools/charm-generator/generator/generators/actions_generator.py @@ -26,7 +26,7 @@ from jinja2 import Environment, PackageLoader class ActionsGenerator: LOGGER = logging.getLogger() - ENV = Environment(loader=PackageLoader('actions', 'templates')) + ENV = Environment(loader=PackageLoader('generator.actions', 'templates')) def __init__(self, metadata, actions, license=None, options=None): """ diff --git a/descriptor-packages/tools/charm-generator/generators/ansible_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py similarity index 96% rename from descriptor-packages/tools/charm-generator/generators/ansible_generator.py rename to descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py index 18f5a5a95ccd1804096b6ca5faefce0c8ce0145a..cefe42260ca7ae343e8f65b1799d60ef12079435 100644 --- a/descriptor-packages/tools/charm-generator/generators/ansible_generator.py +++ b/descriptor-packages/tools/charm-generator/generator/generators/ansible_generator.py @@ -23,13 +23,13 @@ import sys from jinja2 import Environment, PackageLoader -from generators.actions_generator import ActionsGenerator -from generators.metadata_generator import MetadataGenerator +from generator.generators.actions_generator import ActionsGenerator +from generator.generators.metadata_generator import MetadataGenerator class AnsibleGenerator: LOGGER = logging.getLogger() - ENV = Environment(loader=PackageLoader('ansible-charm', 'templates')) + ENV = Environment(loader=PackageLoader('generator.ansible-charm', 'templates')) def __init__(self, metadata, license=None, options=None): """ diff --git a/descriptor-packages/tools/charm-generator/generators/metadata_generator.py b/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py similarity index 98% rename from descriptor-packages/tools/charm-generator/generators/metadata_generator.py rename to descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py index 8b0d9b8d5f58b8b712d31ee838c7bb94b4cc2271..6c9b000b34761ea0fb510f42fcab72c45aa5aa0c 100644 --- a/descriptor-packages/tools/charm-generator/generators/metadata_generator.py +++ b/descriptor-packages/tools/charm-generator/generator/generators/metadata_generator.py @@ -28,7 +28,7 @@ from jinja2 import Environment, PackageLoader class MetadataGenerator: LOGGER = logging.getLogger() - ENV = Environment(loader=PackageLoader('metadata', 'templates')) + ENV = Environment(loader=PackageLoader('generator.metadata', 'templates')) def __init__(self, metadata, license=None, options=None): """ diff --git a/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py b/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e584ee55361ba8058fee4a39d43e07b434752f50 --- /dev/null +++ b/descriptor-packages/tools/charm-generator/generator/metadata/__init__.py @@ -0,0 +1,17 @@ +# 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 +## diff --git a/descriptor-packages/tools/charm-generator/metadata/templates/metadata.yaml.j2 b/descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2 similarity index 100% rename from descriptor-packages/tools/charm-generator/metadata/templates/metadata.yaml.j2 rename to descriptor-packages/tools/charm-generator/generator/metadata/templates/metadata.yaml.j2 diff --git a/descriptor-packages/tools/charm-generator/requirements.txt b/descriptor-packages/tools/charm-generator/requirements.txt index 89ee2b0ffc2a30ff9de93ca1930a42236eb7d199..f0aaeda5f3db13630f8a88af6a19fc8c85e7ac38 100644 --- a/descriptor-packages/tools/charm-generator/requirements.txt +++ b/descriptor-packages/tools/charm-generator/requirements.txt @@ -1 +1 @@ -Jinja2==2.10 +Jinja2>=2.10 diff --git a/descriptor-packages/tools/charm-generator/setup.py b/descriptor-packages/tools/charm-generator/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..5015efae9ac1b3d10558c11c42de5abdd3b124d4 --- /dev/null +++ b/descriptor-packages/tools/charm-generator/setup.py @@ -0,0 +1,55 @@ +# 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 +## + +import re +import setuptools + +version = re.search( + r'^__version__\s*=\s*["\'](.*)["\']', + open('generator/generator.py').read(), + re.MULTILINE).group(1) + +with open('README.md', 'r') as f: + long_description = f.read() + +setuptools.setup( + name='osm-charm-generator', + packages=setuptools.find_packages(), + entry_points={ + "console_scripts": ['osm-charm-generator = generator.generator:main'] + }, + version=version, + author='Eduardo Sousa', + author_email='esousa@whitestack.com', + description='OSM Charm Generator using Ansible', + long_description=long_description, + long_description_content_type='text/markdown', + url='https://osm.etsi.org', + install_requires=[ + 'Jinja2>=2.10' + ], + classifiers=[ + 'Programming Language :: Python :: 3 :: Only', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: POSIX :: Linux', + 'Environment :: Console', + 'Intended Audience :: Telecommunications Industry', + 'Natural Language :: English', + 'Topic :: Software Development :: Code Generators' + ] +)