initial import

This commit is contained in:
Artem Goncharov 2022-09-12 13:56:21 +02:00
commit ae3778c57c
16 changed files with 956 additions and 0 deletions

19
.gitignore vendored Normal file
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

206
plugins/module_utils/otc.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
otcextensions

2
runtime.yml Normal file
View File

@ -0,0 +1,2 @@
---
{}

32
setup.cfg Normal file
View 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
View 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
View 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

View File

@ -0,0 +1 @@
cloud: "otc"

View File

@ -0,0 +1,2 @@
otcextensions
openstacksdk

View 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
View 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
View 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