initial import
This commit is contained in:
		
							
								
								
									
										19
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
*.pyc
 | 
			
		||||
__pycache__
 | 
			
		||||
.tox
 | 
			
		||||
build_artifact
 | 
			
		||||
ansible_collections
 | 
			
		||||
galaxy.yml
 | 
			
		||||
FILES.json
 | 
			
		||||
MANIFEST.json
 | 
			
		||||
importer_result.json
 | 
			
		||||
**.swp
 | 
			
		||||
 | 
			
		||||
*.tar.gz
 | 
			
		||||
doc/build
 | 
			
		||||
tmp
 | 
			
		||||
 | 
			
		||||
#idea
 | 
			
		||||
.idea/**
 | 
			
		||||
*/.idea/**
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								bindep.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								bindep.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
# This is a cross-platform list tracking distribution packages needed by tests;
 | 
			
		||||
# see https://docs.openstack.org/infra/bindep/ for additional information.
 | 
			
		||||
 | 
			
		||||
gcc-c++ [doc test platform:rpm]
 | 
			
		||||
libyaml-devel [test platform:rpm]
 | 
			
		||||
libyaml-dev [test platform:dpkg]
 | 
			
		||||
python3-devel [test platform:rpm]
 | 
			
		||||
python3 [test platform:rpm]
 | 
			
		||||
							
								
								
									
										32
									
								
								galaxy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								galaxy.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
---
 | 
			
		||||
namespace: opentelekomcloud
 | 
			
		||||
name: backend
 | 
			
		||||
version: 0.1.0
 | 
			
		||||
readme: README.rst
 | 
			
		||||
authors:
 | 
			
		||||
  - Artem Goncharov (@gtema)
 | 
			
		||||
 | 
			
		||||
description: Roles and modules for managing Open Telekom Cloud Backend
 | 
			
		||||
license:
 | 
			
		||||
  - GPL-2.0-or-later
 | 
			
		||||
tags:
 | 
			
		||||
  - opentelekomcloud
 | 
			
		||||
dependencies: {}
 | 
			
		||||
repository: https://gitea.eco.tsi-dev.otc-service.com/infra/ansible-collection-backend
 | 
			
		||||
documentation: http://docs.otc-service.com
 | 
			
		||||
homepage: https://open-telekom-cloud.com
 | 
			
		||||
issues: https://gitea.eco.tsi-dev.otc-service.com/infra/ansible-collection-backend/issues
 | 
			
		||||
build_ignore:
 | 
			
		||||
  - '*.tar.gz'
 | 
			
		||||
  - build_artifact/
 | 
			
		||||
  - ci/
 | 
			
		||||
  - galaxy.yml.in
 | 
			
		||||
  - setup.cfg
 | 
			
		||||
  - setup.py
 | 
			
		||||
  - tools
 | 
			
		||||
  - tox.ini
 | 
			
		||||
  - .gitignore
 | 
			
		||||
  - .gitreview
 | 
			
		||||
  - .zuul.yaml
 | 
			
		||||
  - .pytest_cache
 | 
			
		||||
  - importer_result.json
 | 
			
		||||
							
								
								
									
										106
									
								
								plugins/doc_fragments/otc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								plugins/doc_fragments/otc.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										206
									
								
								plugins/module_utils/otc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								plugins/module_utils/otc.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										345
									
								
								plugins/modules/service_catalog.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										345
									
								
								plugins/modules/service_catalog.py
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
otcextensions
 | 
			
		||||
							
								
								
									
										2
									
								
								runtime.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								runtime.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
---
 | 
			
		||||
{}
 | 
			
		||||
							
								
								
									
										32
									
								
								setup.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								setup.cfg
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
[metadata]
 | 
			
		||||
name = ansible-collection-backend
 | 
			
		||||
summary = Ansible collections for managing OTC Backend
 | 
			
		||||
description-file =
 | 
			
		||||
    README.md
 | 
			
		||||
 | 
			
		||||
author = opentelekomcloud
 | 
			
		||||
home-page = https://open.telekom.cloud
 | 
			
		||||
classifier =
 | 
			
		||||
    License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
 | 
			
		||||
    Development Status :: 5 - Production/Stable
 | 
			
		||||
    Intended Audience :: Developers
 | 
			
		||||
    Intended Audience :: System Administrators
 | 
			
		||||
    Intended Audience :: Information Technology
 | 
			
		||||
    Topic :: System :: Systems Administration
 | 
			
		||||
    Topic :: Utilities
 | 
			
		||||
 | 
			
		||||
[global]
 | 
			
		||||
setup-hooks =
 | 
			
		||||
    pbr.hooks.setup_hook
 | 
			
		||||
 | 
			
		||||
[files]
 | 
			
		||||
data_files =
 | 
			
		||||
    share/ansible/collections/ansible_collections/opentelekomcloud/backend/ = README.md
 | 
			
		||||
    share/ansible/collections/ansible_collections/opentelekomcloud/backend/plugins = plugins/*
 | 
			
		||||
 | 
			
		||||
[wheel]
 | 
			
		||||
universal = 1
 | 
			
		||||
 | 
			
		||||
[pbr]
 | 
			
		||||
skip_authors = True
 | 
			
		||||
skip_changelog = True
 | 
			
		||||
							
								
								
									
										17
									
								
								setup.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								setup.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
# 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 setuptools
 | 
			
		||||
 | 
			
		||||
setuptools.setup(
 | 
			
		||||
    setup_requires=['pbr'],
 | 
			
		||||
    pbr=True)
 | 
			
		||||
							
								
								
									
										10
									
								
								test-requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								test-requirements.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
ansible-core
 | 
			
		||||
ansible-lint==5.4.0
 | 
			
		||||
pycodestyle==2.6.0
 | 
			
		||||
flake8==3.8.4
 | 
			
		||||
pylint
 | 
			
		||||
voluptuous
 | 
			
		||||
yamllint
 | 
			
		||||
rstcheck
 | 
			
		||||
ruamel.yaml
 | 
			
		||||
requests
 | 
			
		||||
							
								
								
									
										1
									
								
								tests/integration/integration_config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tests/integration/integration_config.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
cloud: "otc"
 | 
			
		||||
							
								
								
									
										2
									
								
								tests/integration/requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								tests/integration/requirements.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
otcextensions
 | 
			
		||||
openstacksdk
 | 
			
		||||
							
								
								
									
										19
									
								
								tests/integration/targets/service_catalog/tasks/main.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tests/integration/targets/service_catalog/tasks/main.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
---
 | 
			
		||||
- ansible.builtin.set_fact:
 | 
			
		||||
    services:
 | 
			
		||||
      compute:
 | 
			
		||||
        name: "nova"
 | 
			
		||||
        environments:
 | 
			
		||||
          production:
 | 
			
		||||
            endpoints:
 | 
			
		||||
              eu-de:
 | 
			
		||||
                - url: "https://ecs.eu-de.otc.t-systems.com/v2.1/$(tenant_id)s"
 | 
			
		||||
              eu-nl:
 | 
			
		||||
                - url: "https://ecs.eu-nl.otc.t-systems.com/v2.1/$(tenant_id)s"
 | 
			
		||||
 | 
			
		||||
- name: Check run
 | 
			
		||||
  opentelekomcloud.backend.service_catalog:
 | 
			
		||||
    cloud: "{{ cloud }}"
 | 
			
		||||
    environment: "production"
 | 
			
		||||
    services: "{{ services }}"
 | 
			
		||||
  check_mode: true
 | 
			
		||||
							
								
								
									
										93
									
								
								tox.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								tox.ini
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,93 @@
 | 
			
		||||
[tox]
 | 
			
		||||
minversion = 3.1
 | 
			
		||||
envlist = pep8
 | 
			
		||||
skipsdist = True
 | 
			
		||||
ignore_basepython_conflict = True
 | 
			
		||||
 | 
			
		||||
[testenv]
 | 
			
		||||
skip_install = True
 | 
			
		||||
install_command = python -m pip install {opts} {packages}
 | 
			
		||||
basepython = python3
 | 
			
		||||
passenv = 
 | 
			
		||||
    OS_*
 | 
			
		||||
    pip: PIP_INSTALL
 | 
			
		||||
setenv =
 | 
			
		||||
    VIRTUAL_ENV={envdir}
 | 
			
		||||
    LANG=en_US.UTF-8
 | 
			
		||||
    LANGUAGE=en_US:en
 | 
			
		||||
    LC_ALL=C
 | 
			
		||||
    OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
 | 
			
		||||
    OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
 | 
			
		||||
    OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
 | 
			
		||||
    pip: PIP_INSTALL={env:PIP_INSTALL:true}
 | 
			
		||||
deps =
 | 
			
		||||
    -r{toxinidir}/test-requirements.txt
 | 
			
		||||
    pip: {toxinidir}
 | 
			
		||||
 | 
			
		||||
commands = stestr run {posargs}
 | 
			
		||||
           stestr slowest
 | 
			
		||||
 | 
			
		||||
[testenv:pep8]
 | 
			
		||||
commands =
 | 
			
		||||
    flake8
 | 
			
		||||
 | 
			
		||||
[testenv:build]
 | 
			
		||||
deps =
 | 
			
		||||
    pbr
 | 
			
		||||
    ruamel.yaml
 | 
			
		||||
    ansible-base
 | 
			
		||||
 | 
			
		||||
commands =
 | 
			
		||||
    ansible --version
 | 
			
		||||
    ansible-galaxy collection build --force {toxinidir} --output-path {toxinidir}/build_artifact
 | 
			
		||||
 | 
			
		||||
[testenv:linters]
 | 
			
		||||
passenv = *
 | 
			
		||||
deps =
 | 
			
		||||
    {[testenv]deps}
 | 
			
		||||
commands =
 | 
			
		||||
    ansible-lint -vvv
 | 
			
		||||
 | 
			
		||||
[testenv:linters-2.9]
 | 
			
		||||
passenv = {[testenv:linters]passenv}
 | 
			
		||||
commands = {[testenv:linters]commands}
 | 
			
		||||
deps =
 | 
			
		||||
    -r{toxinidir}/test-requirements-2.9.txt
 | 
			
		||||
 | 
			
		||||
[testenv:venv]
 | 
			
		||||
deps =
 | 
			
		||||
    -r{toxinidir}/test-requirements.txt
 | 
			
		||||
commands = {posargs}
 | 
			
		||||
 | 
			
		||||
[flake8]
 | 
			
		||||
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
 | 
			
		||||
#      Also, both openstacksdk and Donald Knuth disagree with the rule. Line
 | 
			
		||||
#      breaks should occur before the binary operator for readability.
 | 
			
		||||
# H4 are rules for docstrings. Maybe we should clean them?
 | 
			
		||||
# E501,E402,H301 are ignored so we can import the existing
 | 
			
		||||
#      modules unchanged and then clean them in subsequent patches.
 | 
			
		||||
ignore = W503,H4,E501,E402,H301
 | 
			
		||||
show-source = True
 | 
			
		||||
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,ansible_collections
 | 
			
		||||
 | 
			
		||||
[testenv:ansible]
 | 
			
		||||
# Need to pass some env vars for the Ansible playbooks
 | 
			
		||||
passenv = HOME USER ANSIBLE_*
 | 
			
		||||
deps =
 | 
			
		||||
    {[testenv]deps}
 | 
			
		||||
commands =
 | 
			
		||||
    /bin/bash {toxinidir}/ci/run-ansible-tests-collection.sh -e {envdir} {posargs}
 | 
			
		||||
 | 
			
		||||
# PIP job runs with Ansible-2.9
 | 
			
		||||
[testenv:ansible-pip]
 | 
			
		||||
deps =
 | 
			
		||||
    -r{toxinidir}/test-requirements-2.9.txt
 | 
			
		||||
    {toxinidir}
 | 
			
		||||
passenv = {[testenv:ansible]passenv}
 | 
			
		||||
commands = {[testenv:ansible]commands}
 | 
			
		||||
 | 
			
		||||
[testenv:ansible-2.9]
 | 
			
		||||
deps =
 | 
			
		||||
    -r{toxinidir}/test-requirements-2.9.txt
 | 
			
		||||
passenv = {[testenv:ansible]passenv}
 | 
			
		||||
commands = {[testenv:ansible]commands}
 | 
			
		||||
							
								
								
									
										63
									
								
								zuul.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								zuul.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,63 @@
 | 
			
		||||
# yamllint disable
 | 
			
		||||
---
 | 
			
		||||
- job:
 | 
			
		||||
    name: gitcontrol-test-integration
 | 
			
		||||
    parent: ansible-collection-test-integration
 | 
			
		||||
    description: |
 | 
			
		||||
      Execute ansible-test integration for the collection
 | 
			
		||||
    vars:
 | 
			
		||||
      ansible_test_test_command: "integration"
 | 
			
		||||
      ansible_test_no_temp_unicode: true
 | 
			
		||||
    files:
 | 
			
		||||
      plugins/module_utils/git.py
 | 
			
		||||
      plugins/module_utils/github.py
 | 
			
		||||
      plugins/modules/github
 | 
			
		||||
    pre-run: tests/playbooks/pre.yaml
 | 
			
		||||
    secrets:
 | 
			
		||||
      - secret: gitcontrol-secret
 | 
			
		||||
        name: gitcontrol
 | 
			
		||||
 | 
			
		||||
- secret:
 | 
			
		||||
    name: gitcontrol-secret
 | 
			
		||||
    data:
 | 
			
		||||
      token: !encrypted/pkcs1-oaep
 | 
			
		||||
        - QduY2mJaxznljZMLGoGE/LcHwb0Fk4QRcqX8DY+a8i320Rl0GdRE9yfFwkxfdFQ245UXT
 | 
			
		||||
          ZgcnHsuofTCbRQOWkt5eEN/+OqKqgvtDyP2QmOfOksbTUhnpWR1jV9/wDgqXIKTH7USgf
 | 
			
		||||
          EQbnaSBYCgUTIi2BZVhJBPEtb9AvO8h1NcrhCxR4R8Cw8PJ/bOzPAgfvZ/D9067S9smgz
 | 
			
		||||
          cKZyOuloBhwVRskdbj5tbvViya44cGDs13j6Dpvv1C2tgdVctM/6iHwvXyOL2PtTu5LCP
 | 
			
		||||
          3OVxgZCWx3XPzgfUl+QwL5KZSaDmsU6b7v5lr89HcTDrVmu02El6sEkMbUPQ/dDB6/7LK
 | 
			
		||||
          fzMxCXz17bSWehIt1ASC+e+1jkfZKXHC5ss/6ebzRESdEeYDMb/6ueq3FPNslRbKwoGTK
 | 
			
		||||
          54D8fSOIagjg+F+AYJjXaozslsj5S1Uv7HgGj6Ecgv75Hcx8/jJiUsqyHazx7EZ4CDBfG
 | 
			
		||||
          Lh28IR72f6JqALD01ontiYLWb7CdlxIa0zzNmmiA2oC/Zcvnef6hpSdvoFwmamY3HNUsM
 | 
			
		||||
          VsvUiEJiT0uRropSKEr4q3/uKbwsqqbQ8TkWj/CaKbZ+MeIR4N4WO54r81K8W7p/3W6pt
 | 
			
		||||
          qUFW1s/mMQWoYeQRh1gPHetpEgGfVP8d636Dk0hzK33vuvaJIfQdZxST7hkmuw=
 | 
			
		||||
 | 
			
		||||
- project:
 | 
			
		||||
    merge-mode: squash-merge
 | 
			
		||||
    vars:
 | 
			
		||||
      ansible_collection_namespace: "opentelekomcloud"
 | 
			
		||||
      ansible_collection_name: "gitcontrol"
 | 
			
		||||
    check:
 | 
			
		||||
      jobs:
 | 
			
		||||
        - otc-tox-pep8
 | 
			
		||||
        - otc-tox-linters
 | 
			
		||||
        - ansible-collection-test-sanity
 | 
			
		||||
        - ansible-collection-build
 | 
			
		||||
        - ansible-collection-docs
 | 
			
		||||
    check-post:
 | 
			
		||||
      jobs:
 | 
			
		||||
        - gitcontrol-test-integration
 | 
			
		||||
    gate:
 | 
			
		||||
      jobs:
 | 
			
		||||
        - otc-tox-pep8
 | 
			
		||||
        - otc-tox-linters
 | 
			
		||||
        - ansible-collection-test-sanity
 | 
			
		||||
        - ansible-collection-build
 | 
			
		||||
        - ansible-collection-docs
 | 
			
		||||
        - gitcontrol-test-integration
 | 
			
		||||
    release:
 | 
			
		||||
      jobs:
 | 
			
		||||
        - release-ansible-collection
 | 
			
		||||
    promote:
 | 
			
		||||
      jobs:
 | 
			
		||||
        - promote-ansible-collection-docs
 | 
			
		||||
		Reference in New Issue
	
	Block a user