Update 'zuul.yaml'

Reviewed-by: Goncharov, Artem <artem.goncharov@t-systems.com>
Co-authored-by: gtema <artem.goncharov@gmail.com>
Co-committed-by: gtema <artem.goncharov@gmail.com>
This commit is contained in:
gtema 2023-01-02 18:56:58 +00:00 committed by zuul
parent e0dc83ddc4
commit ba65aca9eb
20 changed files with 240 additions and 310 deletions

View File

@ -1,3 +1,3 @@
[DEFAULT] [DEFAULT]
test_path=./otc-metadata/tests test_path=./otc_metadata/tests/
top_dir=./ top_dir=./

View File

@ -28,6 +28,7 @@ def read_data(filename):
with open(filepath, 'r') as fd: with open(filepath, 'r') as fd:
return yaml.safe_load(fd) return yaml.safe_load(fd)
def rewrite_data(filename, data): def rewrite_data(filename, data):
"""Rewrites data formatting it """Rewrites data formatting it

View File

@ -15,7 +15,7 @@ import copy
import otc_metadata.data import otc_metadata.data
__all__ = ['Docs'] __all__ = ['Service']
BUILTIN_DATA = otc_metadata.data.read_data('docs.yaml') BUILTIN_DATA = otc_metadata.data.read_data('docs.yaml')

View File

@ -40,7 +40,8 @@ class Services(object):
# sort docs list by <service_type>_<title> # sort docs list by <service_type>_<title>
self._service_data["documents"] = sorted( self._service_data["documents"] = sorted(
sorted_docs, key=lambda x: f"{x.get('service_type')}{x.get('title')}" sorted_docs,
key=lambda x: f"{x.get('service_type')}{x.get('title')}"
) )
# sort services by <service_type>_<service_title> # sort services by <service_type>_<service_title>
self._service_data["services"] = sorted( self._service_data["services"] = sorted(
@ -183,7 +184,10 @@ class Services(object):
] ]
if "repositories" in srv and environment: if "repositories" in srv and environment:
for repo in srv["repositories"]: for repo in srv["repositories"]:
if "environment" in repo and repo["environment"] == environment: if (
"environment" in repo
and repo["environment"] == environment
):
srv_res["repository"] = repo["repo"] srv_res["repository"] = repo["repo"]
for doc in self.all_docs: for doc in self.all_docs:
if ( if (

View File

@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
# Copyright 2010-2011 OpenStack Foundation
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# 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.
from unittest import TestCase
class TestCase(TestCase):
"""Test case base class for all unit tests."""

View File

@ -19,10 +19,10 @@ test_otc-metadata
Tests for `otc-metadata` module. Tests for `otc-metadata` module.
""" """
from otc-metadata.tests import base from unittest import TestCase
class TestOtc-metadata(base.TestCase): class TestOtcMetadata(TestCase):
def test_something(self): def test_something(self):
pass pass

View File

@ -1,11 +1,11 @@
[metadata] [metadata]
name = otc-metadata name = otc-metadata
summary = Metadata about OTC for Ecosystem summary = Metadata about OTC for Ecosystem
description-file = description_file =
README.rst README.rst
author = Open Telekom Cloud author = Open Telekom Cloud
home-page = https://open.telekom.cloud/ home_page = https://open.telekom.cloud/
python-requires = >=3.6 python_requires = >=3.6
classifier = classifier =
Environment :: OpenStack Environment :: OpenStack
Intended Audience :: Information Technology Intended Audience :: Information Technology

View File

@ -11,7 +11,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools import setuptools
setuptools.setup( setuptools.setup(

View File

@ -2,9 +2,6 @@
# of appearance. Changing the order has an impact on the overall integration # of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
hacking>=3.0,<3.1 # Apache-2.0 stestr>=2.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
coverage>=4.0,!=4.4 # Apache-2.0 flake8
python-subunit>=0.0.18 # Apache-2.0/BSD
stestr>=1.0.0 # Apache-2.0
testtools>=1.4.0 # MIT

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,3 @@
import copy
import re import re
import otc_metadata.services import otc_metadata.services
@ -15,13 +14,9 @@ for doc in new_data["documents"]:
if link: if link:
print(f"Parsing {link}") print(f"Parsing {link}")
# (p1, p2) = link.split("/") # (p1, p2) = link.split("/")
doc["link"] = re.sub( doc["link"] = re.sub(r"/(.*)/(.*)/", r"/\2/\1/", link)
r"/(.*)/(.*)/",
r"/\2/\1/",
link
)
_yaml = YAML() _yaml = YAML()
_yaml.indent(mapping=2, sequence=4, offset=2) _yaml.indent(mapping=2, sequence=4, offset=2)
with open('new.yaml', 'w') as fd: with open("new.yaml", "w") as fd:
_yaml.dump(new_data, fd) _yaml.dump(new_data, fd)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,9 @@ def main():
_yaml = YAML() _yaml = YAML()
_yaml.indent(mapping=2, sequence=4, offset=2) _yaml.indent(mapping=2, sequence=4, offset=2)
sys.stdout.write("# Auto-generated by otc_metadata.generate_docexports.data\n") sys.stdout.write(
"# Auto-generated by otc_metadata.generate_docexports.data\n"
)
_yaml.dump(data.docs_html_by_category("internal"), sys.stdout) _yaml.dump(data.docs_html_by_category("internal"), sys.stdout)

View File

@ -1,9 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python
import argparse import argparse
import re # import re
import requests import requests
import sys # import sys
import otc_metadata.services import otc_metadata.services
@ -12,8 +12,7 @@ api_session = requests.Session()
def open_issue(args, repository, issue_data): def open_issue(args, repository, issue_data):
req = dict( req = dict(
title=issue_data["title"], title=issue_data["title"], body=issue_data["body"].replace("\\n", "\n")
body=issue_data["body"].replace("\\n", "\n")
) )
if "assignees" in issue_data: if "assignees" in issue_data:
req["assignees"] = issue_data["assignees"] req["assignees"] = issue_data["assignees"]
@ -21,57 +20,54 @@ def open_issue(args, repository, issue_data):
req["labels"] = issue_data["labels"] req["labels"] = issue_data["labels"]
print(req) print(req)
rsp = api_session.post( rsp = api_session.post(
f"{args.api_url}/repos/{repository}/issues", f"{args.api_url}/repos/{repository}/issues", json=req
json=req
) )
if rsp.status_code != 201: if rsp.status_code != 201:
print(rsp.text) print(rsp.text)
print(f"Going to open issue with title {issue_data['title']} in {repository}") print(
f"Going to open issue with title {issue_data['title']} in {repository}"
)
def main(): def main():
parser = argparse.ArgumentParser(description='Open Issue for every document.') parser = argparse.ArgumentParser(
description="Open Issue for every document."
)
parser.add_argument("token", metavar="token", help="API token")
parser.add_argument("--api-url", help="API base url of the Git hoster")
parser.add_argument("--environment", help="Environment for the repository")
parser.add_argument("--title", required=True, help="Issue title")
parser.add_argument("--body", required=True, help="Issue body")
parser.add_argument( parser.add_argument(
'token', metavar='token', help='API token') "--repo",
parser.add_argument( help="Repository to report issue in (instead of doc repository).",
'--api-url', help='API base url of the Git hoster'
) )
parser.add_argument( parser.add_argument(
'--environment', help='Environment for the repository' "--assignee",
help="Issue assignee to use instead of document service assignees.",
) )
parser.add_argument( parser.add_argument(
'--title', required=True, help='Issue title' "--labels",
) help="Issue labels to use (comma separated list of label IDs).",
parser.add_argument(
'--body', required=True, help='Issue body'
)
parser.add_argument(
'--repo', help='Repository to report issue in (instead of doc repository).'
)
parser.add_argument(
'--assignee', help='Issue assignee to use instead of document service assignees.'
)
parser.add_argument(
'--labels', help='Issue labels to use (comma separated list of label IDs).'
) )
args = parser.parse_args() args = parser.parse_args()
data = otc_metadata.services.Services() data = otc_metadata.services.Services()
api_session.headers.update({'Authorization': f"token {args.token}"}) api_session.headers.update({"Authorization": f"token {args.token}"})
for doc in data.all_docs_full(environment=args.environment): for doc in data.all_docs_full(environment=args.environment):
issue_data = dict( issue_data = dict(
title=args.title.format(**doc), title=args.title.format(**doc),
body=args.body.format(**doc), body=args.body.format(**doc),
repository=doc["repository"] repository=doc["repository"],
) )
if "assignees" in doc: if "assignees" in doc:
issue_data["assignees"] = doc["assignees"] issue_data["assignees"] = doc["assignees"]
if args.assignee: if args.assignee:
issue_data["assignees"] = [args.assignee] issue_data["assignees"] = [args.assignee]
if args.labels: if args.labels:
issue_data["labels"] = [int(x) for x in args.labels.split(',')] issue_data["labels"] = [int(x) for x in args.labels.split(",")]
open_issue(args, args.repo or doc["repository"], issue_data) open_issue(args, args.repo or doc["repository"], issue_data)
if __name__ == '__main__': if __name__ == "__main__":
main() main()

View File

@ -1,7 +1,7 @@
import copy # import copy
import otc_metadata.services import otc_metadata.services
from ruamel.yaml import YAML # from ruamel.yaml import YAML
data = otc_metadata.services.Services() data = otc_metadata.services.Services()

File diff suppressed because it is too large Load Diff

View File

@ -15,15 +15,15 @@
import argparse import argparse
import logging import logging
import os # import os
import pathlib import pathlib
import requests import requests
import subprocess import subprocess
import warnings # import warnings
from git import exc from git import exc
from git import Repo from git import Repo
from git import SymbolicReference # from git import SymbolicReference
from ruamel.yaml import CommentedMap from ruamel.yaml import CommentedMap
from ruamel.yaml import YAML from ruamel.yaml import YAML
@ -72,7 +72,7 @@ def process_repositories(args, service):
workdir.mkdir(exist_ok=True) workdir.mkdir(exist_ok=True)
copy_to = None copy_to = None
repo_to = None # repo_to = None
for repo in service["repositories"]: for repo in service["repositories"]:
logging.debug(f"Processing repository {repo}") logging.debug(f"Processing repository {repo}")
@ -208,7 +208,6 @@ def process_repositories(args, service):
project["check"]["jobs"].extend( project["check"]["jobs"].extend(
[x["job"]["name"] for x in zuul_new_jobs]) [x["job"]["name"] for x in zuul_new_jobs])
# yaml.indent(offset=2, sequence=2) # yaml.indent(offset=2, sequence=2)
with open(zuul_file_name, "w") as f: with open(zuul_file_name, "w") as f:
yaml.dump(zuul_config, f) yaml.dump(zuul_config, f)
@ -223,7 +222,8 @@ def process_repositories(args, service):
git_repo.index.commit( git_repo.index.commit(
( (
"Update zuul.yaml file\n\n" "Update zuul.yaml file\n\n"
"Performed-by: gitea/infra/otc-metadata/tools/update_zuul_project_config.py" "Performed-by: gitea/infra/otc-metadata"
"/tools/update_zuul_project_config.py"
) )
) )
push_args = ["--set-upstream", "origin", branch_name] push_args = ["--set-upstream", "origin", branch_name]

34
tox.ini
View File

@ -1,56 +1,26 @@
[tox] [tox]
minversion = 3.2.0 minversion = 3.2.0
envlist = py39,pep8 envlist = py3,pep8
skipsdist = True
ignore_basepython_conflict = true ignore_basepython_conflict = true
[testenv] [testenv]
basepython = python3 basepython = python3
usedevelop = True usedevelop = True
setenv = setenv =
PYTHONWARNINGS=default::DeprecationWarning PYTHONWARNINGS=default::DeprecationWarning
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = stestr run {posargs} commands = stestr run {posargs}
[testenv:lower-constraints]
deps = -r{toxinidir}/test-requirements.txt
[testenv:pep8] [testenv:pep8]
commands = flake8 {posargs} commands = flake8 {posargs}
[testenv:venv] [testenv:venv]
commands = {posargs} commands = {posargs}
[testenv:cover]
setenv =
VIRTUAL_ENV={envdir}
PYTHON=coverage run --source otc_metadata --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:debug]
commands = oslo_debug_helper {posargs}
[flake8] [flake8]
# E123, E125 skipped as they are invalid PEP-8. # E123, E125 skipped as they are invalid PEP-8.
show-source = True show-source = True
ignore = E123,E125 ignore = E123,E125,W503
builtins = _ builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build

View File

@ -1,19 +1,11 @@
- project: - project:
merge-mode: squash-merge merge-mode: squash-merge
default-branch: master default-branch: main
templates:
- publish-to-pypi
- publish-otc-docs-hc-pti
- release-notes-jobs
check: check:
jobs: jobs:
- otc-tox-pep8 - otc-tox-pep8
- otc-tox-py38
- otc-tox-py39 - otc-tox-py39
- tox-functional
gate: gate:
jobs: jobs:
- otc-tox-pep8 - otc-tox-pep8
- otc-tox-py38
- otc-tox-py39 - otc-tox-py39
- tox-functional