diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3a77206..0000000 --- a/.gitignore +++ /dev/null @@ -1,69 +0,0 @@ -# Add patterns in here to exclude files created by tools integrated with this -# repository, such as test frameworks from the project's recommended workflow, -# rendered documentation and package builds. -# -# Don't add patterns to exclude files created by preferred personal tools -# (editors, IDEs, your operating system itself even). These should instead be -# maintained outside the repository, for example in a ~/.gitignore file added -# with: -# -# git config --global core.excludesfile '~/.gitignore' - -# Compiled source # -################### -*.com -*.class -*.dll -*.exe -*.o -*.so -*.pyc -build/ -dist/ -doc/build/ - -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.dmg -*.gz -*.iso -*.jar -*.rar -*.tar -*.zip - -# Logs and databases # -###################### -*.log -*.sql -*.sqlite -logs/* - -# OS generated files # -###################### -._* -.tox -*.egg-info -.eggs - -# Generated by pbr while building docs -###################################### -AUTHORS -ChangeLog - -# Files created by releasenotes build -releasenotes/build - -# Test temp files -tests/common -tests/*.retry - -# Vagrant artifacts -.vagrant - -# Git clones -openstack-ansible-ops -previous diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index ed8ff73..0000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,81 +0,0 @@ -=================================================== -OpenStack-Ansible repo_build contributor guidelines -=================================================== - -Filing bugs -~~~~~~~~~~~ - -Bugs should be filed on Launchpad, not GitHub: "https://bugs.launchpad.net/openstack-ansible" - - -When submitting a bug, or working on a bug, please ensure the following criteria are met: - * The description clearly states or describes the original problem or root cause of the problem. - * Include historical information on how the problem was identified. - * Any relevant logs are included. - * The provided information should be totally self-contained. External access to web services/sites should not be needed. - * Steps to reproduce the problem if possible. - - -Submitting code -~~~~~~~~~~~~~~~ - -Changes to the project should be submitted for review via the Gerrit tool, following -the workflow documented at: "http://docs.openstack.org/infra/manual/developers.html#development-workflow" - -Pull requests submitted through GitHub will be ignored and closed without regard. - - -Extra -~~~~~ - -Tags: - If it's a bug that needs fixing in a branch in addition to Master, add a '\-backport-potential' tag (eg ``juno-backport-potential``). There are predefined tags that will autocomplete. - -Status: - Please leave this alone, it should be New till someone triages the issue. - -Importance: - Should only be touched if it is a Blocker/Gating issue. If it is, please set to High, and only use Critical if you have found a bug that can take down whole infrastructures. - - -Style guide -~~~~~~~~~~~ - -When creating tasks and other roles for use in Ansible please create them using the YAML dictionary format. - -Example YAML dictionary format: - .. code-block:: yaml - - - name: The name of the tasks - module_name: - thing1: "some-stuff" - thing2: "some-other-stuff" - tags: - - some-tag - - some-other-tag - - -Example **NOT** in YAML dictionary format: - .. code-block:: yaml - - - name: The name of the tasks - module_name: thing1="some-stuff" thing2="some-other-stuff" - tags: - - some-tag - - some-other-tag - - -Usage of the ">" and "|" operators should be limited to Ansible conditionals and command modules such as the ansible ``shell`` module. - - -Issues -~~~~~~ - -When submitting an issue, or working on an issue please ensure the following criteria are met: - * The description clearly states or describes the original problem or root cause of the problem. - * Include historical information on how the problem was identified. - * Any relevant logs are included. - * If the issue is a bug that needs fixing in a branch other than Master, add the 'backport potential' tag TO THE ISSUE (not the PR). - * The provided information should be totally self-contained. External access to web services/sites should not be needed. - * If the issue is needed for a hotfix release, add the 'expedite' label. - * Steps to reproduce the problem if possible. diff --git a/README.rst b/README.rst index 6f99d12..754d6dc 100644 --- a/README.rst +++ b/README.rst @@ -1,30 +1,8 @@ -======================== -Team and repository tags -======================== +This project is no longer maintained. -.. image:: https://governance.openstack.org/tc/badges/openstack-ansible-repo_build.svg - :target: https://governance.openstack.org/tc/reference/tags/index.html +The contents of this repository are still available in the Git source code +management system. To see the contents of this repository before it reached its +end of life, please check out the previous commit with "git checkout HEAD^1". -.. Change things from this point on - -============================ -OpenStack-Ansible repo_build -============================ - -Ansible role that builds a repository of Git repositories, Python -wheels, and virtualenvs. - -Documentation for the project can be found at: - https://docs.openstack.org/openstack-ansible-repo_build/latest/ - -Release notes for the project can be found at: - https://docs.openstack.org/releasenotes/openstack-ansible-repo_build/ - -The project source code repository is located at: - https://opendev.org/openstack/openstack-ansible-repo_build/ - -The project home is at: - https://launchpad.net/openstack-ansible - -The project bug tracker is located at: - https://bugs.launchpad.net/openstack-ansible/ +For any further questions, please email openstack-discuss@lists.openstack.org with +[openstack-ansible] tag or join #openstack-ansible on Freenode. diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index bf2400c..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,62 +0,0 @@ -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/Vagrantfile -# -# If you need to perform any change on it, you should modify the central file, -# then, an OpenStack CI job will propagate your changes to every OSA repository -# since every repo uses the same Vagrantfile - -# Verify whether required plugins are installed. -required_plugins = [ "vagrant-disksize" ] -required_plugins.each do |plugin| - if not Vagrant.has_plugin?(plugin) - raise "The vagrant plugin #{plugin} is required. Please run `vagrant plugin install #{plugin}`" - end -end - -Vagrant.configure(2) do |config| - config.vm.provider "virtualbox" do |v| - v.memory = 6144 - v.cpus = 2 - # https://github.com/hashicorp/vagrant/issues/9524 - v.customize ["modifyvm", :id, "--audio", "none"] - end - - config.vm.synced_folder ".", "/vagrant", type: "rsync" - - config.vm.provision "shell", - privileged: false, - inline: <<-SHELL - cd /vagrant - ./run_tests.sh - SHELL - - config.vm.define "centos7" do |centos7| - centos7.vm.box = "centos/7" - end - - config.vm.define "debian8" do |debian8| - debian8.vm.box = "debian/jessie64" - end - - config.vm.define "debian9" do |debian9| - debian9.vm.box = "debian/stretch64" - end - - config.vm.define "gentoo" do |gentoo| - gentoo.vm.box = "generic/gentoo" - end - - config.vm.define "opensuse150" do |leap150| - leap150.vm.box = "opensuse/openSUSE-15.0-x86_64" - end - - config.vm.define "opensuse151" do |leap151| - leap151.vm.box = "opensuse/openSUSE-15.1-x86_64" - end - - config.vm.define "ubuntu1804" do |bionic| - bionic.disksize.size = "40GB" - bionic.vm.box = "ubuntu/bionic64" - end -end diff --git a/bindep.txt b/bindep.txt deleted file mode 100644 index ef56cb6..0000000 --- a/bindep.txt +++ /dev/null @@ -1,55 +0,0 @@ -# This file facilitates OpenStack-CI package installation -# before the execution of any tests. -# -# See the following for details: -# - https://docs.openstack.org/infra/bindep/ -# - https://opendev.org/openstack-infra/bindep -# -# Even if the role does not make use of this facility, it -# is better to have this file empty, otherwise OpenStack-CI -# will fall back to installing its default packages which -# will potentially be detrimental to the tests executed. -# -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/bindep.txt -# If you need to remove or add extra dependencies, you should modify -# the central file instead and once your change is accepted then update -# this file as well. The purpose of this file is to ensure that Python and -# Ansible have all their necessary binary requirements on the test host before -# tox executes. Any binary requirements needed by services/roles should be -# installed by those roles in their applicable package install tasks, not through -# using this file. -# - -# The gcc compiler -gcc - -# Base requirements for Ubuntu -git-core [platform:dpkg platform:suse] -libssl-dev [platform:dpkg] -libffi-dev [platform:dpkg] -python2.7 [platform:dpkg] -python-apt [platform:dpkg] -python-dev [platform:dpkg] -python3 [platform:dpkg] -python3-apt [platform:dpkg] -python3-dev [platform:dpkg] - -# Base requirements for RPM distros -gcc-c++ [platform:rpm] -git [platform:rpm !platform:suse] -libffi-devel [platform:rpm] -openssl-devel [platform:rpm] -python-devel [platform:rpm] -python2-dnf [platform:fedora] - -# Base requirements for Gentoo -git [platform:gentoo] - -# For SELinux -libselinux-python [platform:redhat] -libsemanage-python [platform:redhat] - -# Required for compressing collected log files in CI -gzip diff --git a/defaults/main.yml b/defaults/main.yml deleted file mode 100644 index 11232da..0000000 --- a/defaults/main.yml +++ /dev/null @@ -1,93 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -# Additional options passed to pip during package installation. -# A common use is with the '--cert' argument for internally signed -# SSL certificates. -pip_install_options: "" - -# Set the package install state for distribution and pip packages -# Options are 'present' and 'latest' -repo_build_package_state: "latest" -repo_build_pip_package_state: "latest" - -# Use OpenStack's upper-constraints -repo_build_use_upper_constraints: true - -# A list of overrides to apply to OpenStack's upper constraints -# Use these with caution as you're implementing a change to the -# package set which OpenStack has tested its releases with! -repo_build_upper_constraints_overrides: [] - -repo_build_service_user_name: "nginx" -repo_build_service_group_name: "www-data" -repo_build_base_path: "/var/www/repo" - -# NOTE(hwoarang): ansible_distribution may return a string with spaces -# such as "openSUSE Leap" so we need to replace the space with underscore -# in order to create a more sensible repo name for the distro. -repo_build_os_distro_version: "{{ (ansible_distribution | lower) | replace(' ', '_') }}-{{ ansible_distribution_version.split('.')[:2] | join('.') }}-{{ ansible_architecture | lower }}" - -repo_build_release_tag: "untagged" -repo_build_global_links_path: "{{ repo_build_base_path }}/links/{{ repo_build_os_distro_version }}" -repo_build_release_version_path: "os-releases/{{ repo_build_release_tag }}" -repo_build_release_path: "{{ repo_build_base_path }}/{{ repo_build_release_version_path }}/{{ repo_build_os_distro_version }}" -repo_build_dir: "/tmp/openstack-builder" -repo_build_output: "/tmp/openstack-wheel-output" -repo_build_git_dir: "{{ repo_build_base_path }}/openstackgit" -repo_build_pool_dir: "{{ repo_build_base_path }}/pools/{{ repo_build_os_distro_version }}" - -# Toggle whether git repositories should be cloned selectively or not -repo_build_git_selective: "{{ repo_build_wheel_selective | bool }}" - -# Toggle whether a git clone should be forced -repo_build_git_reclone: no - -# Toggle the git clone depth -repo_build_git_depth: 1 - -# Toggle whether wheels should be built selectively or not -repo_build_wheel_selective: yes - -# Toggle whether a wheel rebuild should be forced -repo_build_wheel_rebuild: no - -# Optionally set this to change the default index from pypi to an alternative -repo_build_pip_default_index: "https://pypi.python.org/simple" - -# Optionally set this to a list of extra indexes to be used when building wheels -#repo_build_pip_extra_indexes: -# - "https://pypi.python.org/simple" - -# Optionally set this to a list of packages which must always have the wheel -# compiled from source. This will ensure that a pre-compiled wheel is not -# downloaded from any of the indexes. -#repo_build_pip_no_binary: -# - libvirt-python - -repo_build_timeout: 120 - -# Path to the repo build venv binaries -repo_build_bin: "/openstack/venvs/repo-build-{{ repo_build_release_tag }}/bin" - -# Python packages to install into the repo build venv -repo_pip_packages: - - cython - - pbr - - requests - - urllib3 - - wheel - -repo_build_store_pip_sources: false diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 5ddd983..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,195 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/openstack-ansible-repo_build.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/openstack-ansible-repo_build.qhc" - -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/openstack-ansible-repo_build" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/openstack-ansible-repo_build" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -livehtml: html - sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index 72bf5aa..0000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,17 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -# WARNING: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/branch/master/sync/doc/requirements.txt -# If you need to modify this file, update the one in the -# openstack-ansible-tests repository. Once it merges there, the changes will -# automatically be proposed to all the repositories which use it. - -sphinx>=1.8.0,<2.0.0;python_version=='2.7' # BSD -sphinx>=1.8.0,!=2.1.0;python_version>='3.4' # BSD -sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD -openstackdocstheme>=1.20.0 # Apache-2.0 -reno>=2.5.0 # Apache-2.0 -doc8>=0.6.0 # Apache-2.0 diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100644 index 1b3d26d..0000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,312 +0,0 @@ -#!/usr/bin/env python3 - -# 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. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import pbr.version - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'openstackdocstheme', - 'sphinx.ext.autodoc', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -author = 'OpenStack-Ansible Contributors' -category = 'Miscellaneous' -copyright = '2014-2016, OpenStack-Ansible Contributors' -description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' -project = 'OpenStack-Ansible' -role_name = 'repo_build' -target_name = 'openstack-ansible-' + role_name -title = 'OpenStack-Ansible Documentation: ' + role_name + 'role' - -# The link to the browsable source code (for the left hand menu) -oslosphinx_cgit_link = ( - "https://git.openstack.org/cgit/openstack/{}".format(target_name) -) - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version_info = pbr.version.VersionInfo(target_name) -# The full version, including alpha/beta/rc tags. -release = version_info.version_string_with_vcs() -# The short X.Y version. -version = version_info.canonical_version_string() - -# openstackdocstheme options -repository_name = 'openstack/' + target_name -bug_project = project.lower() -bug_tag = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -html_last_updated_fmt = '%Y-%m-%d %H:%M' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = target_name + '-docs' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', - - # Latex figure (float) alignment - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, target_name + '.tex', - title, author, 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, target_name, - title, [author], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, target_name, - title, author, project, - description, category), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index 1408ade..0000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,27 +0,0 @@ -============================ -OpenStack-Ansible repo_build -============================ - -Ansible role that builds a repository of Git repositories, Python -wheels, and virtualenvs. - -To clone or view the source code for this repository, visit the role repository -for `repo_build `_. - -Default variables -~~~~~~~~~~~~~~~~~ - -.. literalinclude:: ../../defaults/main.yml - :language: yaml - :start-after: under the License. - -Required variables -~~~~~~~~~~~~~~~~~~ - -None. - -Example playbook -~~~~~~~~~~~~~~~~ - -.. literalinclude:: ../../examples/playbook.yml - :language: yaml diff --git a/examples/playbook.yml b/examples/playbook.yml deleted file mode 100644 index 7f45aad..0000000 --- a/examples/playbook.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: Set up repo builds - hosts: repo_all - user: root - roles: - - { role: "repo_build", tags: [ "repo-build" ] } diff --git a/manual-test.rc b/manual-test.rc deleted file mode 100644 index 7016c45..0000000 --- a/manual-test.rc +++ /dev/null @@ -1,33 +0,0 @@ -export VIRTUAL_ENV=$(pwd) -export ANSIBLE_HOST_KEY_CHECKING=False -export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r - -# TODO (odyssey4me) These are only here as they are non-standard folder -# names for Ansible 1.9.x. We are using the standard folder names for -# Ansible v2.x. We can remove this when we move to Ansible 2.x. -export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action -export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback -export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter -export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup - -# This is required as the default is the current path or a path specified -# in ansible.cfg -export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library - -# This is required as the default is '/etc/ansible/roles' or a path -# specified in ansible.cfg -export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/.. - -export ANSIBLE_SSH_ARGS="-o ControlMaster=no \ - -o UserKnownHostsFile=/dev/null \ - -o StrictHostKeyChecking=no \ - -o ServerAliveInterval=64 \ - -o ServerAliveCountMax=1024 \ - -o Compression=no \ - -o TCPKeepAlive=yes \ - -o VerifyHostKeyDNS=no \ - -o ForwardX11=no \ - -o ForwardAgent=yes" - -echo "Run manual functional tests by executing the following:" -echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml" diff --git a/meta/main.yml b/meta/main.yml deleted file mode 100644 index f828a62..0000000 --- a/meta/main.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -galaxy_info: - author: rcbops - description: Install package repo build - company: Rackspace - license: Apache2 - min_ansible_version: 2.2 - platforms: - - name: Debian - versions: - - stretch - - name: Ubuntu - versions: - - xenial - - bionic - - name: EL - versions: - - 7 - - name: opensuse - versions: - - all - categories: - - cloud - - python - - development - - openstack -dependencies: - - role: apt_package_pinning - when: - - ansible_pkg_mgr == 'apt' diff --git a/meta/openstack-ansible.yml b/meta/openstack-ansible.yml deleted file mode 100644 index be178e4..0000000 --- a/meta/openstack-ansible.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. -# -# (c) 2017, Jean-Philippe Evrard - -maturity_info: - status: complete - created_during: mitaka diff --git a/releasenotes/notes/.placeholder b/releasenotes/notes/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/notes/apt-source-filenamed-796a4feb4434655c.yaml b/releasenotes/notes/apt-source-filenamed-796a4feb4434655c.yaml deleted file mode 100644 index ea744d9..0000000 --- a/releasenotes/notes/apt-source-filenamed-796a4feb4434655c.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - The filename of the apt source for the ubuntu - cloud archive can now be defined with the - variable ``uca_apt_source_list_filename``. \ No newline at end of file diff --git a/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml b/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml deleted file mode 100644 index 01c0a67..0000000 --- a/releasenotes/notes/custom-pip-package-add-4c17638c6e5b3373.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - The option ``repo_venv_default_pip_packages`` has been added which will - allow deployers to insert any packages into a service venv as needed. - The option expects a list of strings which are valid python package names as - found on PYPI. diff --git a/releasenotes/notes/enable_pip_install_options-7c2131c89f90b2c6.yaml b/releasenotes/notes/enable_pip_install_options-7c2131c89f90b2c6.yaml deleted file mode 100644 index 51ab9b2..0000000 --- a/releasenotes/notes/enable_pip_install_options-7c2131c89f90b2c6.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - The pip_install_options variable is now honored during repo - building. This variable allows deployers to specify trusted - CA certificates by setting the variable to "--cert - /etc/ssl/certs/ca-certificates.crt" diff --git a/releasenotes/notes/git-cache-df0afe90d4029f68.yaml b/releasenotes/notes/git-cache-df0afe90d4029f68.yaml deleted file mode 100644 index 9defd13..0000000 --- a/releasenotes/notes/git-cache-df0afe90d4029f68.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - The repo build process is now able to make use of a pre-staged git cache. - If the ``/var/www/repo/openstackgit`` folder on the repo server is found - to contain existing git clones then they will be updated if they do not - already contain the required SHA for the build. diff --git a/releasenotes/notes/idempotent-wheel-build-4c527045bec09fd5.yaml b/releasenotes/notes/idempotent-wheel-build-4c527045bec09fd5.yaml deleted file mode 100644 index 69b1df7..0000000 --- a/releasenotes/notes/idempotent-wheel-build-4c527045bec09fd5.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -upgrade: - - The entire repo build process is now idempotent. From now on when - the repo build is re-run, it will only fetch updated git - repositories and rebuild the wheels/venvs if the requirements - have changed, or a new release is being deployed. - - The git clone part of the repo build process now only happens when - the requirements change. A git reclone can be forced by using the - boolean variable ``repo_build_git_reclone``. - - The python wheel build process now only happens when requirements - change. A wheel rebuild may be forced by using the boolean variable - ``repo_build_wheel_rebuild``. - - The python venv build process now only happens when requirements - change. A venv rebuild may be forced by using the boolean variable - ``repo_build_venv_rebuild``. - - The repo build process now only has the following tags, providing - a clear path for each deliverable. The tag ``repo-build-install`` - completes the installation of required packages. The tag - ``repo-build-wheels`` completes the wheel build process. The tag - ``repo-build-venvs`` completes the venv build process. Finally, the - tag ``repo-build-index`` completes the manifest preparation and - indexing of the os-releases and links folders. diff --git a/releasenotes/notes/multi-arch-build-1ad512acdf6cabb9.yaml b/releasenotes/notes/multi-arch-build-1ad512acdf6cabb9.yaml deleted file mode 100644 index b774a0e..0000000 --- a/releasenotes/notes/multi-arch-build-1ad512acdf6cabb9.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - The repo build process is now able to support building and synchronizing - artifacts for multiple CPU architectures. Build artifacts are now tagged - with the appropriate CPU architecture by default, and synchronization of - build artifacts from secondary, architecture-specific repo servers back - to the primary repo server is supported. diff --git a/releasenotes/notes/multi-os-wheel-repos-7910b13547ea59ad.yaml b/releasenotes/notes/multi-os-wheel-repos-7910b13547ea59ad.yaml deleted file mode 100644 index 9a57ca4..0000000 --- a/releasenotes/notes/multi-os-wheel-repos-7910b13547ea59ad.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -features: - - The repo server file system structure has been updated to - allow for multiple Operating systems running multiple - architectures to be run at the same time and served from - a single server without impacting pools, venvs, wheel - archives, and manifests. The new structure follows the - following pattern `$RELEASE/$OS_TYPE-$ARCH` and has been - applied to *os-releases*, *venvs*, and *pools*. diff --git a/releasenotes/notes/package-state-55fceaf0cd23147e.yaml b/releasenotes/notes/package-state-55fceaf0cd23147e.yaml deleted file mode 100644 index 18333ed..0000000 --- a/releasenotes/notes/package-state-55fceaf0cd23147e.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -features: - - The repo_build role now supports the ability to configure whether - apt/yum tasks install the latest available package, or just ensure - that the package is present. The default action is to ensure that - the latest package is present. The action taken may be changed to - only ensure that the package is present by setting - ``repo_build_package_state`` to ``present``. -upgrade: - - The repo_build role always checks whether the latest package is - installed when executed. If a deployer wishes to change the check to - only validate the presence of the package, the option - ``repo_build_package_state`` should be set to ``present``. diff --git a/releasenotes/notes/pip-extra-index-remove-db32c770a70c8faa.yaml b/releasenotes/notes/pip-extra-index-remove-db32c770a70c8faa.yaml deleted file mode 100644 index 62eb518..0000000 --- a/releasenotes/notes/pip-extra-index-remove-db32c770a70c8faa.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -deprecations: - - The variable ``repo_build_pip_extra_index`` has been removed. - The replacement list variable ``repo_build_pip_extra_indexes`` - should be used instead. diff --git a/releasenotes/notes/pip-source-store-d94ff2b68a99481a.yaml b/releasenotes/notes/pip-source-store-d94ff2b68a99481a.yaml deleted file mode 100644 index aa2aa27..0000000 --- a/releasenotes/notes/pip-source-store-d94ff2b68a99481a.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -features: - - The repo build process now has the ability to store the pip - sources within the build archive. This ability is useful when - deploying environments that are "multi-architecture", - "multi-distro", or "multi-interpreter" where specific pre-build - wheels may not be enough to support all of the deployment. - To enable the ability to store the python source code within a - given release, set the new option ``repo_build_store_pip_sources`` - to ``true``. diff --git a/releasenotes/notes/remove-uca-rdo-8c625c61eeb9a771.yaml b/releasenotes/notes/remove-uca-rdo-8c625c61eeb9a771.yaml deleted file mode 100644 index 9c5b819..0000000 --- a/releasenotes/notes/remove-uca-rdo-8c625c61eeb9a771.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -other: - - From now on, external repo management (in use for - RDO/UCA for example) will be done inside the - pip-install role, not in the repo_build role. diff --git a/releasenotes/notes/repo-build-deprecate-repo-build-apt-packages-df1ca334b857787a.yaml b/releasenotes/notes/repo-build-deprecate-repo-build-apt-packages-df1ca334b857787a.yaml deleted file mode 100644 index 1f80e24..0000000 --- a/releasenotes/notes/repo-build-deprecate-repo-build-apt-packages-df1ca334b857787a.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - The ``repo_build_apt_packages`` variable has been renamed. - ``repo_build_distro_packages`` should be used instead to - override packages required to build Python wheels and venvs. diff --git a/releasenotes/notes/repo-build-fix-upper-constraints-9e24c56520538df2.yaml b/releasenotes/notes/repo-build-fix-upper-constraints-9e24c56520538df2.yaml deleted file mode 100644 index fcdf4cd..0000000 --- a/releasenotes/notes/repo-build-fix-upper-constraints-9e24c56520538df2.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - The ``repo_build`` role now correctly applies OpenStack requirements - upper-constraints when building Python wheels. This resolves - https://bugs.launchpad.net/openstack-ansible/+bug/1605846 diff --git a/releasenotes/notes/repo-build-use-uca-by-default-bde8ded7d72cd42c.yaml b/releasenotes/notes/repo-build-use-uca-by-default-bde8ded7d72cd42c.yaml deleted file mode 100644 index 58b69b3..0000000 --- a/releasenotes/notes/repo-build-use-uca-by-default-bde8ded7d72cd42c.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - The ``repo_build`` role now makes use of Ubuntu Cloud Archive by default. - This can be disabled by setting ``repo_build_uca_enable`` to ``False``. diff --git a/releasenotes/notes/repo-build-venv-removed-80686a21b693b0cd.yaml b/releasenotes/notes/repo-build-venv-removed-80686a21b693b0cd.yaml deleted file mode 100644 index cdabf9a..0000000 --- a/releasenotes/notes/repo-build-venv-removed-80686a21b693b0cd.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -deprecations: - - | - The repo build process no longer builds packaged venvs. Instead, the venvs - are created on the target hosts as the install process for each service - needs to. This opens up the opportunity for roles to be capable of creating - multiple venvs, and for any role to create venvs - neither of these options - were possible in previous releases. - - The following variables therefore have been removed. - - * ``repo_build_venv_selective`` - * ``repo_build_venv_rebuild`` - * ``repo_build_venv_timeout`` - * ``repo_build_concurrency`` - * ``repo_build_venv_build_dir`` - * ``repo_build_venv_dir`` - * ``repo_build_venv_pip_install_options`` - * ``repo_build_venv_command_options`` - * ``repo_venv_default_pip_packages`` - diff --git a/releasenotes/notes/selective-git-clone-77d766cc0eaa2175.yaml b/releasenotes/notes/selective-git-clone-77d766cc0eaa2175.yaml deleted file mode 100644 index f1015b7..0000000 --- a/releasenotes/notes/selective-git-clone-77d766cc0eaa2175.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - The repo build process now selectively clones git repositories - based on whether each OpenStack service group has any hosts in - it. If there are no hosts in the group, the git repo for the - service will not be cloned. This behaviour can be optionally - changed to force all git repositories to be cloned by setting - ``repo_build_git_selective`` to ``no``. diff --git a/releasenotes/notes/selective-venv-build-dd9f0e40cd1cc076.yaml b/releasenotes/notes/selective-venv-build-dd9f0e40cd1cc076.yaml deleted file mode 100644 index 801a133..0000000 --- a/releasenotes/notes/selective-venv-build-dd9f0e40cd1cc076.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - The repo build process now selectively builds venvs based on - whether each OpenStack service group has any hosts in it. If - there are no hosts in the group, the venv will not be built. - This behaviour can be optionally changed to force all venvs - to be built by setting ``repo_build_venv_selective`` to - ``yes``. diff --git a/releasenotes/notes/selective-wheel-build-34b1c154bb548ed7.yaml b/releasenotes/notes/selective-wheel-build-34b1c154bb548ed7.yaml deleted file mode 100644 index d2c6a79..0000000 --- a/releasenotes/notes/selective-wheel-build-34b1c154bb548ed7.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - The repo build process now selectively builds python packages - based on whether each OpenStack service group has any hosts in - it. If there are no hosts in the group, the list of python - packages for the service will not be built. This behaviour can - be optionally changed to force all python packages to be built - by setting ``repo_build_wheel_selective`` to ``no``. diff --git a/releasenotes/notes/support-global_environment_variables-46cd4d90279fd0e9.yaml b/releasenotes/notes/support-global_environment_variables-46cd4d90279fd0e9.yaml deleted file mode 100644 index 3973be3..0000000 --- a/releasenotes/notes/support-global_environment_variables-46cd4d90279fd0e9.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - The repo_build play now correctly evaluates environment - variables configured in /etc/environment. This enables - deployments in an environment with http proxies. diff --git a/releasenotes/notes/upper-constraints-override-6853ffec6c07d7f5.yaml b/releasenotes/notes/upper-constraints-override-6853ffec6c07d7f5.yaml deleted file mode 100644 index 64fb5e0..0000000 --- a/releasenotes/notes/upper-constraints-override-6853ffec6c07d7f5.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -features: - - The ``repo_build`` role now provides the ability to override the - upper-constraints applied which are sourced from OpenStack and - from the global-requirements-pins.txt file. The variable - ``repo_build_upper_constraints_overrides`` can be populated with - a list of upper constraints. This list will take the highest - precedence in the constraints process, with the exception of - the pins set in the git source SHAs. diff --git a/releasenotes/source/_static/.placeholder b/releasenotes/source/_static/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/_templates/.placeholder b/releasenotes/source/_templates/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py deleted file mode 100644 index b89d7ec..0000000 --- a/releasenotes/source/conf.py +++ /dev/null @@ -1,285 +0,0 @@ -#!/usr/bin/env python3 - -# 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. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'openstackdocstheme', - 'reno.sphinxext', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -author = 'OpenStack-Ansible Contributors' -category = 'Miscellaneous' -copyright = '2014-2016, OpenStack-Ansible Contributors' -description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' -project = 'OpenStack-Ansible' -role_name = 'repo_build' -target_name = 'openstack-ansible-' + role_name -title = 'OpenStack-Ansible Release Notes: ' + role_name + 'role' - -# The link to the browsable source code (for the left hand menu) -oslosphinx_cgit_link = ( - "https://git.openstack.org/cgit/openstack/{}".format(target_name) -) - -# Release notes do not need a version number in the title, they -# cover multiple releases. -# The full version, including alpha/beta/rc tags. -release = '' -# The short X.Y version. -version = '' - -# openstackdocstheme options -repository_name = 'openstack/' + target_name -bug_project = project.lower() -bug_tag = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -html_last_updated_fmt = '%Y-%m-%d %H:%M' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = target_name + '-docs' - - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, target_name + '.tex', - title, author, 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, target_name, - title, [author], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, target_name, - title, author, project, - description, category), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - -# -- Options for Internationalization output ------------------------------ -locale_dirs = ['locale/'] diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst deleted file mode 100644 index 656e9ca..0000000 --- a/releasenotes/source/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -========================================== -OpenStack-Ansible repo_build release notes -========================================== - -.. toctree:: - :maxdepth: 1 - - unreleased - train - stein - rocky - queens - pike - ocata - newton - mitaka diff --git a/releasenotes/source/mitaka.rst b/releasenotes/source/mitaka.rst deleted file mode 100644 index 0b84275..0000000 --- a/releasenotes/source/mitaka.rst +++ /dev/null @@ -1,6 +0,0 @@ -=========================== -Mitaka series release notes -=========================== - -.. release-notes:: - :branch: origin/stable/mitaka diff --git a/releasenotes/source/newton.rst b/releasenotes/source/newton.rst deleted file mode 100644 index 97036ed..0000000 --- a/releasenotes/source/newton.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Newton Series Release Notes -=================================== - -.. release-notes:: - :branch: origin/stable/newton diff --git a/releasenotes/source/ocata.rst b/releasenotes/source/ocata.rst deleted file mode 100644 index ebe62f4..0000000 --- a/releasenotes/source/ocata.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Ocata Series Release Notes -=================================== - -.. release-notes:: - :branch: origin/stable/ocata diff --git a/releasenotes/source/pike.rst b/releasenotes/source/pike.rst deleted file mode 100644 index e43bfc0..0000000 --- a/releasenotes/source/pike.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Pike Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/pike diff --git a/releasenotes/source/queens.rst b/releasenotes/source/queens.rst deleted file mode 100644 index 36ac616..0000000 --- a/releasenotes/source/queens.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Queens Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/queens diff --git a/releasenotes/source/rocky.rst b/releasenotes/source/rocky.rst deleted file mode 100644 index 40dd517..0000000 --- a/releasenotes/source/rocky.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Rocky Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/rocky diff --git a/releasenotes/source/stein.rst b/releasenotes/source/stein.rst deleted file mode 100644 index efaceb6..0000000 --- a/releasenotes/source/stein.rst +++ /dev/null @@ -1,6 +0,0 @@ -=================================== - Stein Series Release Notes -=================================== - -.. release-notes:: - :branch: stable/stein diff --git a/releasenotes/source/train.rst b/releasenotes/source/train.rst deleted file mode 100644 index 5839003..0000000 --- a/releasenotes/source/train.rst +++ /dev/null @@ -1,6 +0,0 @@ -========================== -Train Series Release Notes -========================== - -.. release-notes:: - :branch: stable/train diff --git a/releasenotes/source/unreleased.rst b/releasenotes/source/unreleased.rst deleted file mode 100644 index d9855f0..0000000 --- a/releasenotes/source/unreleased.rst +++ /dev/null @@ -1,5 +0,0 @@ -============================ -Current series release notes -============================ - -.. release-notes:: diff --git a/run_tests.sh b/run_tests.sh deleted file mode 100755 index 3129599..0000000 --- a/run_tests.sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -# PURPOSE: -# This script clones the openstack-ansible-tests repository to the -# tests/common folder in order to be able to re-use test components -# for role testing. This is intended to be the thinnest possible -# shim for test execution outside of OpenStack CI. - -# WARNING: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/run_tests.sh -# If you need to modify this file, update the one in the openstack-ansible-tests -# repository and then update this file as well. The purpose of this file is to -# prepare the host and then execute all the tox tests. -# - -## Shell Opts ---------------------------------------------------------------- -set -xeu - -## Vars ---------------------------------------------------------------------- - -WORKING_DIR="$(readlink -f $(dirname $0))" -OSA_PROJECT_NAME="$(sed -n 's|^project=openstack/\(.*\).git$|\1|p' $(pwd)/.gitreview)" - -COMMON_TESTS_PATH="${WORKING_DIR}/tests/common" -TESTING_HOME=${TESTING_HOME:-$HOME} -ZUUL_TESTS_CLONE_LOCATION="/home/zuul/src/opendev.org/openstack/openstack-ansible-tests" - -# Use .gitreview as the key to determine the appropriate -# branch to clone for tests. -TESTING_BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' "${WORKING_DIR}/.gitreview") -if [[ "${TESTING_BRANCH}" == "" ]]; then - TESTING_BRANCH="master" -fi - -## Main ---------------------------------------------------------------------- - -# Source distribution information -source /etc/os-release || source /usr/lib/os-release - -# Prefer dnf over yum for CentOS. -which dnf &>/dev/null && RHT_PKG_MGR='dnf' || RHT_PKG_MGR='yum' - -# Figure out the appropriate package install command -case ${ID,,} in - *suse*) pkg_mgr_cmd="zypper -n in" ;; - centos|rhel|fedora) pkg_mgr_cmd="${RHT_PKG_MGR} install -y" ;; - ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;; - # Gentoo needs to have version set since it's rolling - gentoo) pkg_mgr_cmd="emerge --jobs=4"; VERSION="rolling" ;; - *) echo "unsupported distribution: ${ID,,}"; exit 1 ;; -esac - -# Install git so that we can clone the tests repo if git is not available -case ${ID,,} in - gentoo) which git &>/dev/null || eval sudo "${pkg_mgr_cmd}" dev-vcs/git ;; - *) which git &>/dev/null || eval sudo "${pkg_mgr_cmd}" git ;; -esac - -# Clone the tests repo for access to the common test script -if [[ ! -d "${COMMON_TESTS_PATH}" ]]; then - # The tests repo doesn't need a clone, we can just - # symlink it. - if [[ "${OSA_PROJECT_NAME}" == "openstack-ansible-tests" ]]; then - ln -s "${WORKING_DIR}" "${COMMON_TESTS_PATH}" - - # In zuul v3 any dependent repository is placed into - # /home/zuul/src/opendev.org, so we check to see - # if there is a tests checkout there already. If so, we - # symlink that and use it. - elif [[ -d "${ZUUL_TESTS_CLONE_LOCATION}" ]]; then - ln -s "${ZUUL_TESTS_CLONE_LOCATION}" "${COMMON_TESTS_PATH}" - - # Otherwise we're clearly not in zuul or using a previously setup - # repo in some way, so just clone it from upstream. - else - git clone -b "${TESTING_BRANCH}" \ - https://opendev.org/openstack/openstack-ansible-tests \ - "${COMMON_TESTS_PATH}" - fi -fi - -# Execute the common test script -source tests/common/run_tests_common.sh diff --git a/setup.cfg b/setup.cfg index 72a0059..e0cdbcf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,13 +12,9 @@ classifier = License :: OSI Approved :: Apache Software License Operating System :: POSIX :: Linux -[build_sphinx] -all_files = 1 -build-dir = doc/build -source-dir = doc/source [pbr] warnerrors = True [wheel] -universal = 1 +universal = 1 \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml deleted file mode 100644 index 4967af4..0000000 --- a/tasks/main.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -- name: Gather variables for each operating system - include_vars: "{{ item }}" - with_first_found: - - "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" - - "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml" - - "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml" - - "{{ ansible_distribution | lower }}.yml" - - "{{ ansible_os_family | lower }}.yml" - tags: - - always - -- include_tasks: repo_build_install.yml - tags: - - repo-build-install - -- include_tasks: repo_build_prepare.yml - tags: - - always - -- name: refresh local facts - setup: - filter: ansible_local - gather_subset: "!all" - tags: - - always - -- include_tasks: repo_build_wheels.yml - when: - - ansible_local['openstack_ansible']['repo_build']['need_wheel_build'] | bool - tags: - - repo-build-wheels - -- include_tasks: repo_build_index.yml - tags: - - repo-build-index - -# Synchronize all built packages back to the repo master -- include_tasks: repo_package_sync.yml - when: inventory_hostname != groups['repo_all'][0] diff --git a/tasks/repo_build_index.yml b/tasks/repo_build_index.yml deleted file mode 100644 index fe311ed..0000000 --- a/tasks/repo_build_index.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. - -- name: Index all os-releases/venvs files - find: - file_type: any - paths: - - "{{ repo_build_release_path }}" - register: manifest_items - tags: - - repo-create-release-manifest - -- name: Index all openstackgit directories - find: - file_type: directory - paths: - - "{{ repo_build_git_dir }}" - register: manifest_git_items - tags: - - repo-create-release-manifest - -- name: Create release manifest - template: - src: "manifest.in.j2" - dest: "{{ repo_build_release_path }}/MANIFEST.in" - tags: - - repo-create-release-manifest diff --git a/tasks/repo_build_install.yml b/tasks/repo_build_install.yml deleted file mode 100644 index e00cc52..0000000 --- a/tasks/repo_build_install.yml +++ /dev/null @@ -1,52 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -- name: Install EPEL gpg keys - rpm_key: - key: "http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7" - state: present - when: - - ansible_pkg_mgr in ['yum', 'dnf'] - register: _add_yum_keys - until: _add_yum_keys is success - retries: 5 - delay: 2 - -- name: Install the EPEL repository - yum_repository: - name: epel-repo_build - baseurl: "{{ (centos_epel_mirror | default ('http://download.fedoraproject.org/pub/epel')) ~ '/' ~ ansible_distribution_major_version ~ '/' ~ ansible_architecture }}" - description: 'Extra Packages for Enterprise Linux 7 - $basearch' - gpgcheck: yes - enabled: yes - state: present - includepkgs: 'moreutils perl-Time-Duration' - when: - - ansible_pkg_mgr in ['yum', 'dnf'] - register: install_epel_repo - until: install_epel_repo is success - retries: 5 - delay: 2 - -- name: Install packages - package: - name: "{{ repo_build_distro_packages }}" - state: "{{ repo_build_package_state }}" - update_cache: "{{ (ansible_pkg_mgr == 'apt' or ansible_pkg_mgr == 'zypper') | ternary('yes', omit) }}" - cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" - register: install_packages - until: install_packages is success - retries: 5 - delay: 2 diff --git a/tasks/repo_build_prepare.yml b/tasks/repo_build_prepare.yml deleted file mode 100644 index adbda81..0000000 --- a/tasks/repo_build_prepare.yml +++ /dev/null @@ -1,159 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -- name: Initialize local facts - ini_file: - dest: "/etc/ansible/facts.d/openstack_ansible.fact" - section: repo_build - option: "need_wheel_build" - value: False - when: - - "(ansible_local is not defined) or - ('openstack_ansible' not in ansible_local) or - ('repo_build' not in ansible_local['openstack_ansible']) or - ('need_wheel_build' not in ansible_local['openstack_ansible']['repo_build'])" - -- name: Create package directories - file: - path: "{{ item }}" - state: directory - owner: "{{ repo_build_service_user_name }}" - with_items: - - "{{ repo_build_release_path }}" - - "{{ repo_build_global_links_path }}" - -- name: Build package requirements file - template: - src: "requirements.txt.j2" - dest: "{{ repo_build_release_path }}/requirements.txt" - register: _wheel_build_requirements - -- include_tasks: repo_clone_git.yml - when: - - (repo_build_git_reclone | bool) or - (_wheel_build_requirements is changed) - tags: - - repo-clone-repos - -- name: Retrieve upper constraints content - slurp: - src: "{{ repo_build_git_dir }}/requirements/upper-constraints.txt" - register: slurp_upper_constraints - -- name: Decode the upper constraints content - set_fact: - upper_constraints: "{{ slurp_upper_constraints.content | b64decode | splitlines }}" - -- name: Build package constraints file - template: - src: "requirements_constraints.txt.j2" - dest: "{{ repo_build_release_path }}/requirements_constraints.txt" - register: _wheel_build_constraints - -- name: Record whether a wheel build is required - ini_file: - dest: "/etc/ansible/facts.d/openstack_ansible.fact" - section: repo_build - option: "need_wheel_build" - value: True - when: - - (_wheel_build_requirements | changed) or - (_wheel_build_constraints | changed) or - (repo_build_wheel_rebuild | bool) - -- name: Create the virtualenv (if it does not exist) - command: "virtualenv --never-download --no-site-packages {{ repo_build_bin | dirname }}" - args: - creates: "{{ repo_build_bin }}/activate" - -# Note(odyssey4me): -# To cater for a situation where the pip packages are changing, but the repo -# does not yet have the package built, we need to ensure that this task can -# fetch from pypi. To do this we try the local repo first, then fall back to -# using pypi. -- name: Try installing from the repo first, then fall back to using pypi - tags: - - repo-build-install - block: - - name: Upgrade pip/setuptools/wheel to the versions we want (from repo) - pip: - name: - - pip - - setuptools - - wheel - state: "{{ repo_build_pip_package_state }}" - virtualenv: "{{ repo_build_bin | dirname }}" - virtualenv_site_packages: "no" - extra_args: >- - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - {{ pip_install_options | default('') }} - register: install_packages - until: install_packages is success - retries: 5 - delay: 2 - - - name: Install pip packages (from repo) - pip: - name: "{{ repo_pip_packages }}" - state: "{{ repo_build_pip_package_state }}" - virtualenv: "{{ repo_build_bin | dirname }}" - virtualenv_site_packages: "no" - extra_args: >- - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - {{ pip_install_options | default('') }} - register: install_packages - until: install_packages is success - retries: 5 - delay: 5 - rescue: - - name: Upgrade pip/setuptools/wheel to the versions we want (from pypi mirror) - pip: - name: - - pip - - setuptools - - wheel - state: "{{ repo_build_pip_package_state }}" - virtualenv: "{{ repo_build_bin | dirname }}" - virtualenv_site_packages: "no" - extra_args: >- - --index-url {{ repo_build_pip_default_index }} - --trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }} - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - {{ pip_install_options | default('') }} - register: install_packages - until: install_packages is success - retries: 5 - delay: 2 - - - name: Install pip packages (from pypi mirror) - pip: - name: "{{ repo_pip_packages }}" - state: "{{ repo_build_pip_package_state }}" - virtualenv: "{{ repo_build_bin | dirname }}" - virtualenv_site_packages: "no" - extra_args: >- - --index-url {{ repo_build_pip_default_index }} - --trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }} - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - {{ pip_install_options | default('') }} - register: install_packages - until: install_packages is success - retries: 5 - delay: 5 - -- name: Create repo log directory - file: - path: /var/log/repo - state: directory diff --git a/tasks/repo_build_wheels.yml b/tasks/repo_build_wheels.yml deleted file mode 100644 index ab58a3b..0000000 --- a/tasks/repo_build_wheels.yml +++ /dev/null @@ -1,144 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -- name: Ensure that temporary folders from previous build failures are absent - file: - path: "{{ item }}" - state: "absent" - with_items: - - "{{ repo_build_dir }}" - - "{{ repo_build_output }}" - -- name: Create temporary folders - file: - path: "{{ item }}" - state: directory - owner: "{{ repo_build_service_user_name }}" - with_items: - - "{{ repo_build_dir }}" - - "{{ repo_build_output }}" - -- name: Create distutils configuration file with index mirror - ini_file: - dest: "~/.pydistutils.cfg" - section: easy_install - option: index_url - value: "{{ repo_build_pip_default_index }}" - when: repo_build_pip_default_index is defined - -- name: Download requirement pip sources - shell: >- - set -o pipefail; - yes i | {{ repo_build_bin }}/pip install - --timeout {{ repo_build_timeout }} - --download {{ repo_build_output }} - --no-binary :all: - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - --index-url {{ repo_build_pip_default_index }} - --trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }} - {% if repo_build_pip_extra_indexes is defined %} - --extra-index-url {{ repo_build_pip_extra_indexes | join(' --extra-index-url ') }} - --trusted-host {{ repo_build_pip_extra_indexes | map('urlsplit', 'hostname') | join(' --trusted-host ') }} - {% endif %} - --requirement {{ repo_build_release_path }}/requirements.txt - {{ pip_install_options }} - 2>&1 | ts > /var/log/repo/source_download.log - args: - executable: "/bin/bash" - when: repo_build_store_pip_sources | bool - -- name: Create OpenStack-Ansible requirement wheels - shell: >- - set -o pipefail; - {{ repo_build_bin }}/pip wheel - --timeout {{ repo_build_timeout }} - --wheel-dir {{ repo_build_output }} - --find-links {{ repo_build_global_links_path }} - --find-links {{ repo_build_output }} - --constraint {{ repo_build_release_path }}/requirements_constraints.txt - {% if repo_build_pip_no_binary is defined %} - --no-binary {{ repo_build_pip_no_binary | join(' --no-binary ') }} - {% endif %} - --index-url {{ repo_build_pip_default_index }} - --trusted-host {{ repo_build_pip_default_index | urlsplit('hostname') }} - {% if repo_build_pip_extra_indexes is defined %} - --extra-index-url {{ repo_build_pip_extra_indexes | join(' --extra-index-url ') }} - --trusted-host {{ repo_build_pip_extra_indexes | map('urlsplit', 'hostname') | join(' --trusted-host ') }} - {% endif %} - --build {{ repo_build_dir }} - --requirement {{ repo_build_release_path }}/requirements.txt - {{ pip_install_options }} - 2>&1 | ts > /var/log/repo/wheel_build.log - args: - executable: "/bin/bash" - tags: - - skip_ansible_lint - -- name: Register os-release files - find: - file_type: any - paths: "{{ repo_build_release_path }}" - patterns: - - "*{{ ansible_architecture | lower }}.whl" - - "*none-any.whl" - register: os_release_files - -- name: Ensure os-release files are cleaned up - file: - path: "{{ item['path'] }}" - state: "absent" - with_items: "{{ os_release_files.files }}" - -- name: Index built wheels - find: - paths: "{{ repo_build_output }}" - register: built_wheels - -- name: Create release process script - template: - src: "op-release-script.sh.j2" - dest: "/opt/op-release-script.sh" - mode: "0755" - -- name: Run release process script - shell: "/opt/op-release-script.sh" - args: - executable: "/bin/bash" - changed_when: false - # This task requires the use of the shell module, so we skip lint - # to avoid: - # ANSIBLE0013 Use shell only when shell functionality is required - tags: - - skip_ansible_lint - -- name: Create absolute requirements - template: - src: "requirements_absolute_requirements.txt.j2" - dest: "{{ repo_build_release_path }}/requirements_absolute_requirements.txt" - -- name: Clean up temporary build folders to save space - file: - path: "{{ item }}" - state: "absent" - with_items: - - "{{ repo_build_dir }}" - - "{{ repo_build_output }}" - -- name: Disable the wheel build requirement now that it is complete - ini_file: - dest: "/etc/ansible/facts.d/openstack_ansible.fact" - section: repo_build - option: need_wheel_build - value: False diff --git a/tasks/repo_clone_git.yml b/tasks/repo_clone_git.yml deleted file mode 100644 index e97cb10..0000000 --- a/tasks/repo_clone_git.yml +++ /dev/null @@ -1,57 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -- name: Check if the git folder exists already - stat: - path: "{{ repo_build_git_dir }}" - register: _git_folder - -- name: Git service data folder setup - file: - path: "{{ (_git_folder.stat.exists and _git_folder.stat.islnk) | ternary(_git_folder.stat.lnk_source, repo_build_git_dir) }}" - state: "directory" - owner: "{{ repo_build_service_user_name }}" - group: "{{ repo_build_service_group_name }}" - recurse: true - -- name: Retrieve requirements content - slurp: - src: "{{ repo_build_release_path }}/requirements.txt" - register: slurp_requirements - -- name: Build filtered list of repos to clone - set_fact: - _repo_build_git_clone_list: "{{ _repo_build_git_clone_list | default([]) + [ item ] }}" - with_items: "{{ local_packages.results.0.item.remote_package_parts }}" - when: > - (not repo_build_git_selective | bool) or - (item['name'] in slurp_requirements.content | b64decode | splitlines) or - ((groups[item['project_group']] is defined) and (groups[item['project_group']] | length > 0)) - -- name: Clone git repositories - become: yes - become_user: "{{ repo_build_service_user_name }}" - environment: "{{ global_environment_variables | default({}) }}" - git: - repo: "{{ item['url'] }}" - dest: "{{ repo_build_git_dir }}/{{ item['name'] }}" - version: "{{ item['version'] }}" - depth: "{{ repo_build_git_depth }}" - force: yes - with_items: "{{ _repo_build_git_clone_list }}" - register: _git_clone - until: _git_clone is success - delay: 5 - retries: 10 diff --git a/tasks/repo_package_sync.yml b/tasks/repo_package_sync.yml deleted file mode 100644 index 1433fa4..0000000 --- a/tasks/repo_package_sync.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -# Copyright 2016, IBM. -# -# 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. - -# Ansible synchronize module not used here due to remote user setting not -# working on the delegated host (as of ansible 2.1) -- name: Synchronize and Copy repo files - command: > - rsync - --delay-updates -F --compress --archive - --rsh 'ssh -l {{ repo_build_service_user_name }} -o stricthostkeychecking=no' - --out-format='<>%i %n%L' - --rsync-path='mkdir -p {{ item.dest }} && rsync' - {{ item.src }} - {{ repo_build_service_user_name }}@{{ hostvars[groups['repo_all'][0]]['ansible_host'] }}:{{ item.dest }} - with_items: - - src: "{{ repo_build_release_path }}" - dest: "{{ repo_build_base_path }}/{{ repo_build_release_version_path }}" - - src: "{{ repo_build_pool_dir }}" - dest: "{{ repo_build_base_path }}/pools" - become: true - become_user: "{{ repo_build_service_user_name }}" - register: _sync_files - changed_when: _sync_files.stdout - tags: - # don't trigger ANSIBLE0006. remove when synchronize module is used - - skip_ansible_lint diff --git a/templates/manifest.in.j2 b/templates/manifest.in.j2 deleted file mode 100644 index ae08516..0000000 --- a/templates/manifest.in.j2 +++ /dev/null @@ -1,13 +0,0 @@ -{% for item in manifest_items['files'] %} -{% set item_cleaned = item['path'] | regex_replace(repo_build_base_path ~ "/", '') %} -{% set item_basename = item_cleaned | basename %} -{% if item_cleaned is match(repo_build_release_version_path + "/.*/.*\.whl") %} -{{ repo_build_pool_dir | regex_replace(repo_build_base_path ~ "/", '') }}/{{ item_basename.split('-')[0] }}/{{ item_basename | lower }} -{{ item_cleaned | lower }} -{% else %} -{{ item_cleaned }} -{% endif %} -{% endfor %} -{% for item in manifest_git_items['files'] %} -{{ item['path'] | regex_replace(repo_build_base_path ~ "/", '') }} -{% endfor %} diff --git a/templates/manual-init.override.j2 b/templates/manual-init.override.j2 deleted file mode 100644 index 306c937..0000000 --- a/templates/manual-init.override.j2 +++ /dev/null @@ -1,9 +0,0 @@ -# {{ ansible_managed }} - -pre-start script - echo "pass" -end script - -post-stop script - echo "pass" -end script diff --git a/templates/op-release-script.sh.j2 b/templates/op-release-script.sh.j2 deleted file mode 100644 index 4f752a4..0000000 --- a/templates/op-release-script.sh.j2 +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -set -e - - -function build_repo { - PKG_DIRECTORY="$1" - PKG_LOWER="$2" - RAW_PKG="$3" - - # If the target PKG_DIRECTORY does not exist, create it - [[ ! -d "${PKG_DIRECTORY}" ]] && mkdir -p "${PKG_DIRECTORY}" - - # Make sure the repo service user owns the PKG_DIRECTORY - chown "{{ repo_build_service_user_name }}" "${PKG_DIRECTORY}" - - # If the target wheel PKG_DIRECTORY has an index.html file in it, remove it. This is - # in support of older archives that may have been created in the early liberty/kilo - # timeframe. - [[ -f "${PKG_DIRECTORY}/index.html" ]] && rm "${PKG_DIRECTORY}/index.html" - - # Move the built wheel into place if it does not exist or is different from one - # already found that is using the same name. - if [ ! -f "${PKG_DIRECTORY}/${PKG_LOWER}" ];then - mv "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}" - elif ! diff "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}" > /dev/null;then - mv "{{ repo_build_output }}/${RAW_PKG}" "${PKG_DIRECTORY}/${PKG_LOWER}" - fi - - # Make sure the repo service user owns the package - chown "{{ repo_build_service_user_name }}" "${PKG_DIRECTORY}/${PKG_LOWER}" - - # link the built package to the release reference - ln -sf "${PKG_DIRECTORY}/${PKG_LOWER}" "{{ repo_build_release_path }}/${PKG_LOWER}" - - # Make sure the repo service user owns the link - chown -h "{{ repo_build_service_user_name }}" "{{ repo_build_release_path }}/${PKG_LOWER}" - - # link the built package to the global links reference - ln -sf "${PKG_DIRECTORY}/${PKG_LOWER}" "{{ repo_build_global_links_path }}/${PKG_LOWER}" - - # Make sure the repo service user owns the link - chown -h "{{ repo_build_service_user_name }}" "{{ repo_build_global_links_path }}/${PKG_LOWER}" -} - - -# Loop through all built wheels. -{% for file_data in built_wheels['files'] %} -{% set file_name = file_data['path'] | basename %} - -# Set the PKG_DIRECTORY variable normalizing the name -# Set the package name variable normalizing the name -DIRECTORY="{{ repo_build_pool_dir }}/{{ file_name.split('-')[0] | lower }}" -NAME_LOWER="{{ file_name | lower }}" -RAW_NAME="{{ file_name }}" - -echo -n "Moving ${RAW_NAME} to repo..." -build_repo "${DIRECTORY}" "${NAME_LOWER}" "${RAW_NAME}" -echo "done" - -unset PKG_DIRECTORY -unset PKG_LOWER - -{% endfor %} - diff --git a/templates/requirements.txt.j2 b/templates/requirements.txt.j2 deleted file mode 100644 index 60d68b1..0000000 --- a/templates/requirements.txt.j2 +++ /dev/null @@ -1,105 +0,0 @@ -# This is a unique, sorted list of requirements compiled by the repo -# build process. The requirements are compiled from all the roles -# using their *_pip_packages lists, the global-requirements-pins, -# and the git sources provided. -# Where a package is found to be provided from a git source, the -# designated git repository SHA is added as a comment. - -{# #} -{# To make it easier to add the comment for each git sourced package #} -{# when compiling the all_requirements list, we need to put together #} -{# a map of the package names to the version based on the git data #} -{# provided by the py_pkgs lookup. #} -{# #} -{% set git_packages = {} %} -{% for clone_item in local_packages.results.0.item.remote_package_parts %} -{% if 'ignorerequirements=true' not in clone_item['original'] %} -{% set name_normalized = clone_item['name'] | replace('-', '_') | lower %} -{% set _ = git_packages.update({name_normalized: clone_item['version']}) %} -{% endif %} -{% endfor %} -{# #} -{# The list provided by the py_pkgs lookup is a raw set which needs #} -{# some normalization. We also want to add the SHA/version as a #} -{# comment to anything provided from a git source to make it simple #} -{# for the git cloning and wheel building process to be idempotent. #} -{# #} -{% set all_requirements={} %} -{% for requirement_raw in local_packages.results.0.item.packages %} -{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %} -{% set data = requirement_raw | regex_replace(name,'') %} -{% set name_normalized = name | replace('-', '_') | lower %} -{% if name_normalized in git_packages %} -{% set requirement_normalized = name_normalized ~ data ~ ' # ' ~ git_packages[name_normalized] %} -{% else %} -{% set requirement_normalized = name_normalized ~ data %} -{% endif %} -{% set _ = all_requirements.update({name_normalized: requirement_normalized}) %} -{% endfor %} -{# #} -{# Now we have a complete, normalised and commented reference set #} -{# to work with. Now, for a non-selective wheel build, we simply #} -{# output the resulting list. #} -{# #} -{% if not repo_build_wheel_selective | bool %} -{% for requirement_name, requirement in all_requirements.items() | sort %} -{{ requirement }} -{% endfor %} -{% else %} -{# #} -{# For a selective wheel build, we now need to build a set of the #} -{# packages we actually want to build. This list of packages must #} -{# be a unique set (or pip wheel will fail). We will use a #} -{# key:value mechanism to compile the set. #} -{# #} -{% set selected_requirements={} %} -{# #} -{# These are files which are in the root repo requirements and must #} -{# always be built. #} -{# #} -{% for requirement_raw in local_packages.results.0.item.role_requirement_files.default.txt_file_packages %} -{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %} -{% set name_normalized = name | replace('-', '_') | lower %} -{% set requirement_normalized = all_requirements[name_normalized] %} -{% set _ = selected_requirements.update({name_normalized: requirement_normalized}) %} -{% endfor %} -{# #} -{# These are files which are in the roles. We only select them if #} -{# their project_groups are populated. #} -{# #} -{% for role_name, role_data in local_packages.results.0.item.role_requirements.items() %} -{% set _host_group = role_data['project_group'] %} -{% if ((groups[_host_group] is defined) and (groups[_host_group] | length > 0)) %} -{% set _build_wheel = True %} -{% else %} -{% set _build_wheel = False %} -{% endif %} -{% if (_build_wheel | bool) %} -{% for requirement_key, requirement_data in role_data.items() %} -{# #} -{# We only want to iterate through the '_pip_packages' lists #} -{# as there may be other data structures in the role_data. #} -{# We must also make sure we're skipping the properietary #} -{# packages as they're not available for the repo server to #} -{# download/build. #} -{# #} -{% if '_pip_packages' in requirement_key and 'proprietary' not in requirement_key %} -{% for requirement_raw in requirement_data %} -{% set name = requirement_raw | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %} -{% set name_normalized = name | replace('-', '_') | lower %} -{% if name_normalized in all_requirements %} -{% set requirement_normalized = all_requirements[name_normalized] %} -{% set _ = selected_requirements.update({name_normalized: requirement_normalized}) %} -{% endif %} -{% endfor %} -{% endif %} -{% endfor %} -{% endif %} -{% endfor %} -{# #} -{# Now that we have a complete set of requirements, we output them. #} -{# #} -{% for requirement_name, requirement in selected_requirements.items() | sort %} -{{ requirement }} -{% endfor %} -{% endif %} diff --git a/templates/requirements_absolute_requirements.txt.j2 b/templates/requirements_absolute_requirements.txt.j2 deleted file mode 100644 index 7d553be..0000000 --- a/templates/requirements_absolute_requirements.txt.j2 +++ /dev/null @@ -1,4 +0,0 @@ -{% for file_data in built_wheels['files'] %} -{% set file_name = file_data['path'] | basename %} -{{ file_name.split('-')[0] | lower }}=={{ (file_name.split('-')[1].split('_')) | join('.post') | lower }} -{% endfor %} diff --git a/templates/requirements_constraints.txt.j2 b/templates/requirements_constraints.txt.j2 deleted file mode 100644 index 3854785..0000000 --- a/templates/requirements_constraints.txt.j2 +++ /dev/null @@ -1,47 +0,0 @@ -# -# Constraints set by SHA's in the git sources -# -{% set constraint_pkgs = [] %} -{% for clone_item in local_packages.results.0.item.remote_package_parts %} -{% if 'ignorerequirements=true' not in clone_item['original'] %} -{{ clone_item['original'] | replace(clone_item['url'], 'file://' + repo_build_git_dir + '/' + clone_item['name'] ) }} -{% set _ = constraint_pkgs.append(clone_item['name'] | replace('-', '_') | lower) %} -{% endif %} -{% endfor %} -# -# User-provided constraints set through a variable -# -{% set override_packages = [] %} -{% for constraint_override_item in repo_build_upper_constraints_overrides %} -{% set constraint_override_name = constraint_override_item | regex_replace('(>=|<=|>|<|==|~=|!=).*$','') %} -{% set _ = override_packages.append(constraint_override_name) %} -{{ constraint_override_item }} -{% endfor %} -# -# Global pins set through the file global-requirement-pins.txt -# -{% set global_pin_packages = [] %} -{% for global_pin in local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages %} -{% set global_pin_package_name = global_pin | regex_replace('(<=|<|==).*$','') %} -{% set _ = global_pin_packages.append(global_pin_package_name) %} -{# we want to ensure that repo_build_upper_constraints_overrides take the highest precedence #} -{% if global_pin_package_name not in repo_build_upper_constraints_overrides %} -{{ global_pin }} -{% endif %} -{% endfor %} -{# we don't bother applying OpenStack upper-constraints if the deployer has opted not to #} -{% if repo_build_use_upper_constraints | bool %} -# -# Upper constraints from the OpenStack requirements repo -# -{% for constraint_item in upper_constraints %} -{% set constraint_name = constraint_item | regex_replace('===.*', '') %} -{% set constraint_data = constraint_item | regex_replace('.*===', '') %} -{# The name has to be normalised to comply with PEP standards #} -{% set constraint_name_normalized = constraint_name | replace('-', '_') | lower %} -{% set constraint = constraint_name_normalized + '<=' + constraint_data %} -{% if (constraint_name_normalized not in constraint_pkgs) and (constraint_name_normalized not in override_packages) and (constraint_name_normalized not in global_pin_packages) %} -{{ constraint }} -{% endif %} -{% endfor %} -{% endif %} diff --git a/tests/ansible-role-requirements.yml b/tests/ansible-role-requirements.yml deleted file mode 100644 index ffbd7d0..0000000 --- a/tests/ansible-role-requirements.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: apt_package_pinning - src: https://opendev.org/openstack/openstack-ansible-apt_package_pinning - scm: git - version: master -- name: pip_install - src: https://opendev.org/openstack/openstack-ansible-pip_install - scm: git - version: master -- name: galera_client - src: https://opendev.org/openstack/openstack-ansible-galera_client - scm: git - version: master -- name: openstack_hosts - src: https://opendev.org/openstack/openstack-ansible-openstack_hosts - scm: git - version: master -- name: lxc_hosts - src: https://opendev.org/openstack/openstack-ansible-lxc_hosts - scm: git - version: master -- name: lxc_container_create - src: https://opendev.org/openstack/openstack-ansible-lxc_container_create - scm: git - version: master -- name: repo_server - src: https://opendev.org/openstack/openstack-ansible-repo_server - scm: git - version: master diff --git a/tests/group_vars/all_containers.yml b/tests/group_vars/all_containers.yml deleted file mode 100644 index 802a50f..0000000 --- a/tests/group_vars/all_containers.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -container_networks: - management_address: - address: "{{ ansible_host }}" - bridge: "br-mgmt" - interface: "eth1" - netmask: "255.255.255.0" - type: "veth" -physical_host: localhost -properties: - service_name: "{{ inventory_hostname }}" diff --git a/tests/host_vars/container1.yml b/tests/host_vars/container1.yml deleted file mode 100644 index 2f664fd..0000000 --- a/tests/host_vars/container1.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -ansible_host: 10.100.100.2 -ansible_become: True -ansible_user: root -container_name: container1 diff --git a/tests/host_vars/localhost.yml b/tests/host_vars/localhost.yml deleted file mode 100644 index 65ddeaa..0000000 --- a/tests/host_vars/localhost.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -bridges: - - "br-mgmt" - -ansible_python_interpreter: "/usr/bin/python2" diff --git a/tests/inventory b/tests/inventory index 271412d..e2ff33d 100644 --- a/tests/inventory +++ b/tests/inventory @@ -1,46 +1,2 @@ [all] -localhost -container1 - -[repo_all] -container1 - -[all_containers:children] -repo_all - -# This is here to validate selectively building with -# requirements like "aodh[mysql]" -[aodh_all] -container1 - -# This is here to validate the venv build inclusion -[keystone_all] -container1 - -# This is here to validate the venv build inclusion -[utility_all] -container1 - -# This is here to validate the git clone exclusion -[nova_all] - -# This is here to validate the git clone exclusion -[cinder_all] - -# This is here to validate the git clone exclusion -[ceilometer_all] - -# This is here to validate the git clone exclusion -[glance_all] - -# This is here to validate the git clone exclusion -[heat_all] - -# This is here to validate the git clone exclusion -[horizon_all] - -# This is here to validate the git clone exclusion -[neutron_all] - -# This is here to validate the git clone exclusion -[swift_all] +localhost \ No newline at end of file diff --git a/tests/test-data.yml b/tests/test-data.yml deleted file mode 100644 index d2876c7..0000000 --- a/tests/test-data.yml +++ /dev/null @@ -1,1328 +0,0 @@ ---- -# Test data output from the py_pkgs lookup -# To produce a fresh version of this, execute: -# /opt/ansible-runtime/bin/python /etc/ansible/roles/plugins/lookup/py_pkgs.py \ -# /opt/openstack-ansible /etc/ansible/roles /etc/openstack_deploy | \ -# /opt/ansible-runtime/bin/python -c 'import sys, yaml, json; yaml.safe_dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)' -- packages: - - alembic>=0.7.2 - - ansible==2.4.3.0 - - aodh - - barbican - - blazar_dashboard - - ceilometer - - ceilometermiddleware - - cinder - - cliff - - cmd2<0.9.0 - - configobj - - congress - - cryptography - - cython - - ddt - - designate - - designate_dashboard - - django-appconf - - django-openstack-auth - - dnspython - - dragonflow - - ecdsa - - glance - - gnocchi[keystone,mysql,{{ gnocchi_storage_driver | default('file') }}] - - gnocchiclient - - greenlet - - heat - - heat_dashboard - - horizon - - hponeview - - httplib2 - - imcsdk - - ironic - - ironic-oneview-cli - - ironic-oneviewd - - ironic-ui - - jmespath>=0.9.3 - - junitxml - - kazoo - - keystone - - keystonemiddleware - - ldappool - - libvirt-python - - lxml - - magnum - - magnum-ui - - morph==0.1.2 - - ndg-httpsclient>=0.4.2;python_version<'3.0' - - netaddr>=0.7.18 - - networking-bgpvpn - - networking-calico - - networking-odl - - networking-ovn - - networking-sfc - - neutron - - neutron-fwaas-dashboard - - neutron-lbaas-dashboard - - neutron_dynamic_routing - - neutron_fwaas - - neutron_lbaas - - neutron_vpnaas - - nose - - nova - - nova-lxd - - nova-powervm - - octavia - - octavia_dashboard - - os-brick - - os-client-config - - os-faults==0.1.17 - - os-testr - - oslo.config - - oslo.messaging[amqp1] - - osprofiler - - pbr - - pexpect - - pip==18.0 - - ply - - positional===1.2.1 - - prettytable<0.8,>=0.7.1 - - proliantutils - - pyasn1!=0.2.3,>=0.1.8 - - pyasn1-modules - - pyeclib - - pylxd - - pymongo - - pymysql>=0.6.2 - - pyngus - - pyopenssl>=17.1.0 - - pypiserver[cache]==1.2.0 - - pysnmp - - python-ceilometerclient - - python-cinderclient - - python-congressclient - - python-designateclient - - python-dracclient - - python-etcd - - python-glanceclient - - python-heatclient - - python-ilorest-library - - python-ironic-inspector-client - - python-ironicclient - - python-keystoneclient>=3.8.0 - - python-memcached>=1.56 - - python-neutronclient - - python-novaclient - - python-octaviaclient - - python-oneviewclient - - python-openstackclient>=3.14.2 - - python-saharaclient - - python-scciclient - - python-subunit - - python-swiftclient - - python-tackerclient - - python-troveclient - - python-xclarityclient - - pyyaml>=3.12 - - rally-openstack==1.2.0 - - redis - - repoze.lru - - requests - - sahara - - sahara_dashboard - - setuptools==40.0.0 - - shade>=1.17.0 - - sqlalchemy-utils - - sqlalchemy>=0.9.7 - - sushy - - swift - - swift3 - - systemd-python - - tacker - - tempest - - testscenarios - - tooz[zake] - - trove - - trove_dashboard - - ucssdk - - urllib3 - - uwsgi - - virtualenv>=14.0.6 - - warlock - - websockify - - wheel==0.31.1 - remote_package_parts: - - egg_name: aodh - fragment: null - name: aodh - original: git+https://git.openstack.org/openstack/aodh@d7dc751a7922fc0a5ea08ec80e3acb2db4b6979e#egg=aodh&gitname=aodh&projectgroup=aodh_all - project_group: aodh_all - url: https://git.openstack.org/openstack/aodh - version: d7dc751a7922fc0a5ea08ec80e3acb2db4b6979e - - egg_name: barbican - fragment: null - name: barbican - original: git+https://git.openstack.org/openstack/barbican@08ca2287dd845011d940a722f6418c3b73c6c7ae#egg=barbican&gitname=barbican&projectgroup=barbican_all - project_group: barbican_all - url: https://git.openstack.org/openstack/barbican - version: 08ca2287dd845011d940a722f6418c3b73c6c7ae - - egg_name: blazar_dashboard - fragment: null - name: blazar-dashboard - original: git+https://git.openstack.org/openstack/blazar-dashboard@master#egg=blazar_dashboard&gitname=blazar-dashboard&projectgroup=all - project_group: all - url: https://git.openstack.org/openstack/blazar-dashboard - version: master - - egg_name: ceilometer - fragment: null - name: ceilometer - original: git+https://git.openstack.org/openstack/ceilometer@413f9a3261c2b247395c36eef938b53ff8279214#egg=ceilometer&gitname=ceilometer&projectgroup=all - project_group: all - url: https://git.openstack.org/openstack/ceilometer - version: 413f9a3261c2b247395c36eef938b53ff8279214 - - egg_name: cinder - fragment: null - name: cinder - original: git+https://git.openstack.org/openstack/cinder@a27d0eb32afc32d745de6a3aafb905ea6151813c#egg=cinder&gitname=cinder&projectgroup=cinder_all - project_group: cinder_all - url: https://git.openstack.org/openstack/cinder - version: a27d0eb32afc32d745de6a3aafb905ea6151813c - - egg_name: congress - fragment: null - name: congress - original: git+https://git.openstack.org/openstack/congress@502f40a7d24dd2603bc9e026edc685a956a52e15#egg=congress&gitname=congress&projectgroup=congress_all - project_group: congress_all - url: https://git.openstack.org/openstack/congress - version: 502f40a7d24dd2603bc9e026edc685a956a52e15 - - egg_name: designate - fragment: null - name: designate - original: git+https://git.openstack.org/openstack/designate@6daedf125c6126bd1c32a377fded9d7b46a2b4e9#egg=designate&gitname=designate&projectgroup=designate_all - project_group: designate_all - url: https://git.openstack.org/openstack/designate - version: 6daedf125c6126bd1c32a377fded9d7b46a2b4e9 - - egg_name: designate_dashboard - fragment: null - name: designate-dashboard - original: git+https://git.openstack.org/openstack/designate-dashboard@e41d74a03d46d678c3e86bf98703bcc16dff71f6#egg=designate_dashboard&gitname=designate-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/designate-dashboard - version: e41d74a03d46d678c3e86bf98703bcc16dff71f6 - - egg_name: dragonflow - fragment: null - name: dragonflow - original: git+https://git.openstack.org/openstack/dragonflow@0f05fc13d7bd26097d16c634c5ddeb63f9bfaecd#egg=dragonflow&gitname=dragonflow&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/dragonflow - version: 0f05fc13d7bd26097d16c634c5ddeb63f9bfaecd - - egg_name: glance - fragment: null - name: glance - original: git+https://git.openstack.org/openstack/glance@bfa25c5e5c05399506404e66d53b0d61eaa06ab7#egg=glance&gitname=glance&projectgroup=glance_all - project_group: glance_all - url: https://git.openstack.org/openstack/glance - version: bfa25c5e5c05399506404e66d53b0d61eaa06ab7 - - egg_name: gnocchi - fragment: null - name: gnocchi - original: git+https://github.com/gnocchixyz/gnocchi@8099dfc2a30ddf305d9f904de0106e4dd5e56147#egg=gnocchi&gitname=gnocchi&projectgroup=gnocchi_all - project_group: gnocchi_all - url: https://github.com/gnocchixyz/gnocchi - version: 8099dfc2a30ddf305d9f904de0106e4dd5e56147 - - egg_name: heat - fragment: null - name: heat - original: git+https://git.openstack.org/openstack/heat@8ca06cfeafc94e739947cf89affa4db57b6bf3c9#egg=heat&gitname=heat&projectgroup=heat_all - project_group: heat_all - url: https://git.openstack.org/openstack/heat - version: 8ca06cfeafc94e739947cf89affa4db57b6bf3c9 - - egg_name: heat_dashboard - fragment: null - name: heat-dashboard - original: git+https://git.openstack.org/openstack/heat-dashboard@df563384901294ac118c45a1e92734f67b6593d8#egg=heat_dashboard&gitname=heat-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/heat-dashboard - version: df563384901294ac118c45a1e92734f67b6593d8 - - egg_name: horizon - fragment: null - name: horizon - original: git+https://git.openstack.org/openstack/horizon@a4443f4be7a7e38ce052080ed157337bc778c18d#egg=horizon&gitname=horizon&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/horizon - version: a4443f4be7a7e38ce052080ed157337bc778c18d - - egg_name: ironic - fragment: null - name: ironic - original: git+https://git.openstack.org/openstack/ironic@89f68e70e06e24b100d93e751e2a3e8cb8dd9b61#egg=ironic&gitname=ironic&projectgroup=ironic_all - project_group: ironic_all - url: https://git.openstack.org/openstack/ironic - version: 89f68e70e06e24b100d93e751e2a3e8cb8dd9b61 - - egg_name: ironic_ui - fragment: null - name: ironic-ui - original: git+https://git.openstack.org/openstack/ironic-ui@36840aaa0da8053d2e4032c060a6a45af224572b#egg=ironic_ui&gitname=ironic-ui&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/ironic-ui - version: 36840aaa0da8053d2e4032c060a6a45af224572b - - egg_name: keystone - fragment: null - name: keystone - original: git+https://git.openstack.org/openstack/keystone@a2b510c17638d31d2983317a4261f9dc27507d24#egg=keystone&gitname=keystone&projectgroup=keystone_all - project_group: keystone_all - url: https://git.openstack.org/openstack/keystone - version: a2b510c17638d31d2983317a4261f9dc27507d24 - - egg_name: magnum - fragment: null - name: magnum - original: git+https://git.openstack.org/openstack/magnum@97b34e67508a69d800239087d0131c6ea128e790#egg=magnum&gitname=magnum&projectgroup=magnum_all - project_group: magnum_all - url: https://git.openstack.org/openstack/magnum - version: 97b34e67508a69d800239087d0131c6ea128e790 - - egg_name: magnum_ui - fragment: null - name: magnum-ui - original: git+https://git.openstack.org/openstack/magnum-ui@dcf62a6e80fd3733b530cb76218b2ec5c3532cb6#egg=magnum_ui&gitname=magnum-ui&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/magnum-ui - version: dcf62a6e80fd3733b530cb76218b2ec5c3532cb6 - - egg_name: networking_bgpvpn - fragment: null - name: networking-bgpvpn - original: git+https://git.openstack.org/openstack/networking-bgpvpn@3b93ddacd390d92fb144e5660324d4da064ad9a4#egg=networking_bgpvpn&gitname=networking-bgpvpn&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/networking-bgpvpn - version: 3b93ddacd390d92fb144e5660324d4da064ad9a4 - - egg_name: networking_calico - fragment: null - name: networking-calico - original: git+https://git.openstack.org/openstack/networking-calico@5d852f653552f2332dce48aa425ee842b5b684ad#egg=networking_calico&gitname=networking-calico&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/networking-calico - version: 5d852f653552f2332dce48aa425ee842b5b684ad - - egg_name: networking_odl - fragment: null - name: networking-odl - original: git+https://git.openstack.org/openstack/networking-odl@53ff740b2a78626d5b077278997bdcec6b1b0892#egg=networking_odl&gitname=networking-odl&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/networking-odl - version: 53ff740b2a78626d5b077278997bdcec6b1b0892 - - egg_name: networking_ovn - fragment: null - name: networking-ovn - original: git+https://git.openstack.org/openstack/networking-ovn@378f4ec58e16a363aeabd16da1911775d0b36487#egg=networking_ovn&gitname=networking-ovn&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/networking-ovn - version: 378f4ec58e16a363aeabd16da1911775d0b36487 - - egg_name: networking_sfc - fragment: null - name: networking-sfc - original: git+https://git.openstack.org/openstack/networking-sfc@4c38303620c8a3f38d7261a64ce8532979bf7560#egg=networking_sfc&gitname=networking-sfc&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/networking-sfc - version: 4c38303620c8a3f38d7261a64ce8532979bf7560 - - egg_name: neutron - fragment: null - name: neutron - original: git+https://git.openstack.org/openstack/neutron@06f1aa6629d3e54c04ab06ca2808479f5ed9f186#egg=neutron&gitname=neutron&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/neutron - version: 06f1aa6629d3e54c04ab06ca2808479f5ed9f186 - - egg_name: neutron_dynamic_routing - fragment: null - name: neutron-dynamic-routing - original: git+https://git.openstack.org/openstack/neutron-dynamic-routing@ac63f126c6bd0ab12d6cd80077023c3e5c264e98#egg=neutron_dynamic_routing&gitname=neutron-dynamic-routing&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/neutron-dynamic-routing - version: ac63f126c6bd0ab12d6cd80077023c3e5c264e98 - - egg_name: neutron_fwaas - fragment: null - name: neutron-fwaas - original: git+https://git.openstack.org/openstack/neutron-fwaas@d61bd2961c5117f22d227a910b7a20e65322bb82#egg=neutron_fwaas&gitname=neutron-fwaas&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/neutron-fwaas - version: d61bd2961c5117f22d227a910b7a20e65322bb82 - - egg_name: neutron_fwaas_dashboard - fragment: null - name: neutron-fwaas-dashboard - original: git+https://git.openstack.org//openstack/neutron-fwaas-dashboard@5ece747e15896cf998e3787aa07f547fa39e3e44#egg=neutron_fwaas_dashboard&gitname=neutron-fwaas-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org//openstack/neutron-fwaas-dashboard - version: 5ece747e15896cf998e3787aa07f547fa39e3e44 - - egg_name: neutron_lbaas - fragment: null - name: neutron-lbaas - original: git+https://git.openstack.org/openstack/neutron-lbaas@e4a9d3c1dfb06482f90699e60b98a94481af5f75#egg=neutron_lbaas&gitname=neutron-lbaas&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/neutron-lbaas - version: e4a9d3c1dfb06482f90699e60b98a94481af5f75 - - egg_name: neutron_lbaas_dashboard - fragment: null - name: neutron-lbaas-dashboard - original: git+https://git.openstack.org/openstack/neutron-lbaas-dashboard@dde6dfb2eba8eb2f1d9cd61986032b512330b281#egg=neutron_lbaas_dashboard&gitname=neutron-lbaas-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/neutron-lbaas-dashboard - version: dde6dfb2eba8eb2f1d9cd61986032b512330b281 - - egg_name: neutron_vpnaas - fragment: null - name: neutron-vpnaas - original: git+https://git.openstack.org/openstack/neutron-vpnaas@da4fff7e7aa756cd8280e8dd14fb8cccc5777277#egg=neutron_vpnaas&gitname=neutron-vpnaas&projectgroup=neutron_all - project_group: neutron_all - url: https://git.openstack.org/openstack/neutron-vpnaas - version: da4fff7e7aa756cd8280e8dd14fb8cccc5777277 - - egg_name: nova - fragment: null - name: nova - original: git+https://git.openstack.org/openstack/nova@c52c2caf97a90de8770e9296d553e0e4a65ac946#egg=nova&gitname=nova&projectgroup=nova_all - project_group: nova_all - url: https://git.openstack.org/openstack/nova - version: c52c2caf97a90de8770e9296d553e0e4a65ac946 - - egg_name: nova_lxd - fragment: null - name: nova-lxd - original: git+https://git.openstack.org/openstack/nova-lxd@bc8d540c95b3209321658000fd74b0e5065a7ee2#egg=nova_lxd&gitname=nova-lxd&projectgroup=nova_all - project_group: nova_all - url: https://git.openstack.org/openstack/nova-lxd - version: bc8d540c95b3209321658000fd74b0e5065a7ee2 - - egg_name: nova_powervm - fragment: null - name: nova-powervm - original: git+https://git.openstack.org/openstack/nova-powervm@9b518d8c9986249a06e3f5dc1450b66283af91f1#egg=nova_powervm&gitname=nova-powervm&projectgroup=nova_all - project_group: nova_all - url: https://git.openstack.org/openstack/nova-powervm - version: 9b518d8c9986249a06e3f5dc1450b66283af91f1 - - egg_name: noVNC - fragment: null - name: novnc - original: git+https://github.com/novnc/noVNC@b3ac94a97802ea8eba0a895d594a2dd2c0f820aa#egg=noVNC&gitname=noVNC&projectgroup=nova_console - project_group: nova_console - url: https://github.com/novnc/noVNC - version: b3ac94a97802ea8eba0a895d594a2dd2c0f820aa - - egg_name: octavia - fragment: null - name: octavia - original: git+https://git.openstack.org/openstack/octavia@a166c89b643c1bdaf3f36004fede25eb7a1c26f5#egg=octavia&gitname=octavia&projectgroup=octavia_all - project_group: octavia_all - url: https://git.openstack.org/openstack/octavia - version: a166c89b643c1bdaf3f36004fede25eb7a1c26f5 - - egg_name: octavia_dashboard - fragment: null - name: octavia-dashboard - original: git+https://git.openstack.org/openstack/octavia-dashboard@4f7a5591ae8dd61b25af7f746f20d8f058aa991c#egg=octavia_dashboard&gitname=octavia-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/octavia-dashboard - version: 4f7a5591ae8dd61b25af7f746f20d8f058aa991c - - egg_name: requirements - fragment: null - name: requirements - original: git+https://git.openstack.org/openstack/requirements@4425ce22fda513fb7a20e77f28685004296731d0#egg=requirements&gitname=requirements&projectgroup=all - project_group: all - url: https://git.openstack.org/openstack/requirements - version: 4425ce22fda513fb7a20e77f28685004296731d0 - - egg_name: sahara - fragment: null - name: sahara - original: git+https://git.openstack.org/openstack/sahara@2c6232c9ad37079020ac72a29a54ab794cc80500#egg=sahara&gitname=sahara&projectgroup=sahara_all - project_group: sahara_all - url: https://git.openstack.org/openstack/sahara - version: 2c6232c9ad37079020ac72a29a54ab794cc80500 - - egg_name: sahara_dashboard - fragment: null - name: sahara-dashboard - original: git+https://git.openstack.org/openstack/sahara-dashboard@4585a9d004427f52e34f0cd89374e8ba1cba2dff#egg=sahara_dashboard&gitname=sahara-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/sahara-dashboard - version: 4585a9d004427f52e34f0cd89374e8ba1cba2dff - - egg_name: spice_html5 - fragment: null - name: spice-html5 - original: git+https://gitlab.freedesktop.org/spice/spice-html5.git@f9f700ee549d9d0fd08263f36bbebebe6b011789#egg=spice_html5&gitname=spice-html5&projectgroup=nova_console - project_group: nova_console - url: https://gitlab.freedesktop.org/spice/spice-html5.git - version: f9f700ee549d9d0fd08263f36bbebebe6b011789 - - egg_name: swift - fragment: null - name: swift - original: git+https://git.openstack.org/openstack/swift@7f7482c096d6c587c64a75e207842ab4dee6e8dd#egg=swift&gitname=swift&projectgroup=swift_all - project_group: swift_all - url: https://git.openstack.org/openstack/swift - version: 7f7482c096d6c587c64a75e207842ab4dee6e8dd - - egg_name: swift3 - fragment: null - name: swift3 - original: git+https://git.openstack.org/openstack/swift3@90db5d1510b2a770387961e7bf0fbeae8101ba45#egg=swift3&gitname=swift3&projectgroup=swift_all - project_group: swift_all - url: https://git.openstack.org/openstack/swift3 - version: 90db5d1510b2a770387961e7bf0fbeae8101ba45 - - egg_name: tacker - fragment: null - name: tacker - original: git+https://git.openstack.org/openstack/tacker@5987ad8c56a61e3a6d8fcf37a2557926c585de41#egg=tacker&gitname=tacker&projectgroup=tacker_all - project_group: tacker_all - url: https://git.openstack.org/openstack/tacker - version: 5987ad8c56a61e3a6d8fcf37a2557926c585de41 - - egg_name: tempest - fragment: null - name: tempest - original: git+https://git.openstack.org/openstack/tempest@master#egg=tempest&gitname=tempest&projectgroup=utility_all - project_group: utility_all - url: https://git.openstack.org/openstack/tempest - version: master - - egg_name: trove - fragment: null - name: trove - original: git+https://git.openstack.org/openstack/trove@5f2462f0ea4ec2d084db102dbad35bf97eca1135#egg=trove&gitname=trove&projectgroup=trove_all - project_group: trove_all - url: https://git.openstack.org/openstack/trove - version: 5f2462f0ea4ec2d084db102dbad35bf97eca1135 - - egg_name: trove_dashboard - fragment: null - name: trove-dashboard - original: git+https://git.openstack.org/openstack/trove-dashboard@9b7f3d9561ce47f370642a3d169fce6469203148#egg=trove_dashboard&gitname=trove-dashboard&projectgroup=horizon_all - project_group: horizon_all - url: https://git.openstack.org/openstack/trove-dashboard - version: 9b7f3d9561ce47f370642a3d169fce6469203148 - remote_packages: - - git+https://git.openstack.org//openstack/neutron-fwaas-dashboard@5ece747e15896cf998e3787aa07f547fa39e3e44#egg=neutron_fwaas_dashboard&gitname=neutron-fwaas-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/aodh@d7dc751a7922fc0a5ea08ec80e3acb2db4b6979e#egg=aodh&gitname=aodh&projectgroup=aodh_all - - git+https://git.openstack.org/openstack/barbican@08ca2287dd845011d940a722f6418c3b73c6c7ae#egg=barbican&gitname=barbican&projectgroup=barbican_all - - git+https://git.openstack.org/openstack/blazar-dashboard@master#egg=blazar_dashboard&gitname=blazar-dashboard&projectgroup=all - - git+https://git.openstack.org/openstack/ceilometer@413f9a3261c2b247395c36eef938b53ff8279214#egg=ceilometer&gitname=ceilometer&projectgroup=all - - git+https://git.openstack.org/openstack/cinder@a27d0eb32afc32d745de6a3aafb905ea6151813c#egg=cinder&gitname=cinder&projectgroup=cinder_all - - git+https://git.openstack.org/openstack/congress@502f40a7d24dd2603bc9e026edc685a956a52e15#egg=congress&gitname=congress&projectgroup=congress_all - - git+https://git.openstack.org/openstack/designate-dashboard@e41d74a03d46d678c3e86bf98703bcc16dff71f6#egg=designate_dashboard&gitname=designate-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/designate@6daedf125c6126bd1c32a377fded9d7b46a2b4e9#egg=designate&gitname=designate&projectgroup=designate_all - - git+https://git.openstack.org/openstack/dragonflow@0f05fc13d7bd26097d16c634c5ddeb63f9bfaecd#egg=dragonflow&gitname=dragonflow&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/glance@bfa25c5e5c05399506404e66d53b0d61eaa06ab7#egg=glance&gitname=glance&projectgroup=glance_all - - git+https://git.openstack.org/openstack/heat-dashboard@df563384901294ac118c45a1e92734f67b6593d8#egg=heat_dashboard&gitname=heat-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/heat@8ca06cfeafc94e739947cf89affa4db57b6bf3c9#egg=heat&gitname=heat&projectgroup=heat_all - - git+https://git.openstack.org/openstack/horizon@a4443f4be7a7e38ce052080ed157337bc778c18d#egg=horizon&gitname=horizon&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/ironic-ui@36840aaa0da8053d2e4032c060a6a45af224572b#egg=ironic_ui&gitname=ironic-ui&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/ironic@89f68e70e06e24b100d93e751e2a3e8cb8dd9b61#egg=ironic&gitname=ironic&projectgroup=ironic_all - - git+https://git.openstack.org/openstack/keystone@a2b510c17638d31d2983317a4261f9dc27507d24#egg=keystone&gitname=keystone&projectgroup=keystone_all - - git+https://git.openstack.org/openstack/magnum-ui@dcf62a6e80fd3733b530cb76218b2ec5c3532cb6#egg=magnum_ui&gitname=magnum-ui&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/magnum@97b34e67508a69d800239087d0131c6ea128e790#egg=magnum&gitname=magnum&projectgroup=magnum_all - - git+https://git.openstack.org/openstack/networking-bgpvpn@3b93ddacd390d92fb144e5660324d4da064ad9a4#egg=networking_bgpvpn&gitname=networking-bgpvpn&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/networking-calico@5d852f653552f2332dce48aa425ee842b5b684ad#egg=networking_calico&gitname=networking-calico&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/networking-odl@53ff740b2a78626d5b077278997bdcec6b1b0892#egg=networking_odl&gitname=networking-odl&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/networking-ovn@378f4ec58e16a363aeabd16da1911775d0b36487#egg=networking_ovn&gitname=networking-ovn&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/networking-sfc@4c38303620c8a3f38d7261a64ce8532979bf7560#egg=networking_sfc&gitname=networking-sfc&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/neutron-dynamic-routing@ac63f126c6bd0ab12d6cd80077023c3e5c264e98#egg=neutron_dynamic_routing&gitname=neutron-dynamic-routing&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/neutron-fwaas@d61bd2961c5117f22d227a910b7a20e65322bb82#egg=neutron_fwaas&gitname=neutron-fwaas&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/neutron-lbaas-dashboard@dde6dfb2eba8eb2f1d9cd61986032b512330b281#egg=neutron_lbaas_dashboard&gitname=neutron-lbaas-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/neutron-lbaas@e4a9d3c1dfb06482f90699e60b98a94481af5f75#egg=neutron_lbaas&gitname=neutron-lbaas&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/neutron-vpnaas@da4fff7e7aa756cd8280e8dd14fb8cccc5777277#egg=neutron_vpnaas&gitname=neutron-vpnaas&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/neutron@06f1aa6629d3e54c04ab06ca2808479f5ed9f186#egg=neutron&gitname=neutron&projectgroup=neutron_all - - git+https://git.openstack.org/openstack/nova-lxd@bc8d540c95b3209321658000fd74b0e5065a7ee2#egg=nova_lxd&gitname=nova-lxd&projectgroup=nova_all - - git+https://git.openstack.org/openstack/nova-powervm@9b518d8c9986249a06e3f5dc1450b66283af91f1#egg=nova_powervm&gitname=nova-powervm&projectgroup=nova_all - - git+https://git.openstack.org/openstack/nova@c52c2caf97a90de8770e9296d553e0e4a65ac946#egg=nova&gitname=nova&projectgroup=nova_all - - git+https://git.openstack.org/openstack/octavia-dashboard@4f7a5591ae8dd61b25af7f746f20d8f058aa991c#egg=octavia_dashboard&gitname=octavia-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/octavia@a166c89b643c1bdaf3f36004fede25eb7a1c26f5#egg=octavia&gitname=octavia&projectgroup=octavia_all - - git+https://git.openstack.org/openstack/requirements@4425ce22fda513fb7a20e77f28685004296731d0#egg=requirements&gitname=requirements&projectgroup=all - - git+https://git.openstack.org/openstack/sahara-dashboard@4585a9d004427f52e34f0cd89374e8ba1cba2dff#egg=sahara_dashboard&gitname=sahara-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/sahara@2c6232c9ad37079020ac72a29a54ab794cc80500#egg=sahara&gitname=sahara&projectgroup=sahara_all - - git+https://git.openstack.org/openstack/swift3@90db5d1510b2a770387961e7bf0fbeae8101ba45#egg=swift3&gitname=swift3&projectgroup=swift_all - - git+https://git.openstack.org/openstack/swift@7f7482c096d6c587c64a75e207842ab4dee6e8dd#egg=swift&gitname=swift&projectgroup=swift_all - - git+https://git.openstack.org/openstack/tacker@5987ad8c56a61e3a6d8fcf37a2557926c585de41#egg=tacker&gitname=tacker&projectgroup=tacker_all - - git+https://git.openstack.org/openstack/tempest@master#egg=tempest&gitname=tempest&projectgroup=utility_all - - git+https://git.openstack.org/openstack/trove-dashboard@9b7f3d9561ce47f370642a3d169fce6469203148#egg=trove_dashboard&gitname=trove-dashboard&projectgroup=horizon_all - - git+https://git.openstack.org/openstack/trove@5f2462f0ea4ec2d084db102dbad35bf97eca1135#egg=trove&gitname=trove&projectgroup=trove_all - - git+https://github.com/gnocchixyz/gnocchi@8099dfc2a30ddf305d9f904de0106e4dd5e56147#egg=gnocchi&gitname=gnocchi&projectgroup=gnocchi_all - - git+https://github.com/novnc/noVNC@b3ac94a97802ea8eba0a895d594a2dd2c0f820aa#egg=noVNC&gitname=noVNC&projectgroup=nova_console - - git+https://gitlab.freedesktop.org/spice/spice-html5.git@f9f700ee549d9d0fd08263f36bbebebe6b011789#egg=spice_html5&gitname=spice-html5&projectgroup=nova_console - role_packages: - os_aodh: - - alembic>=0.7.2 - - aodh - - ceilometermiddleware - - cryptography - - gnocchiclient - - osprofiler - - pymysql>=0.6.2 - - python-ceilometerclient - - python-memcached - - sqlalchemy-utils - - sqlalchemy>=0.9.7 - - systemd-python - - warlock - os_barbican: - - barbican - - osprofiler - - pymysql - - python-memcached - - systemd-python - - uwsgi - os_ceilometer: - - ceilometer - - ceilometermiddleware - - cryptography - - gnocchiclient - - kazoo - - libvirt-python - - osprofiler - - pymongo - - pymysql - - python-ceilometerclient - - python-memcached - - redis - - systemd-python - - tooz[zake] - - warlock - os_cinder: - - cinder - - cryptography - - ecdsa - - httplib2 - - keystonemiddleware - - osprofiler - - pymysql - - python-memcached - - python-openstackclient - - systemd-python - - uwsgi - os_congress: - - congress - - osprofiler - - pymysql - - python-congressclient - - python-heatclient - - systemd-python - os_designate: - - cryptography - - designate - - osprofiler - - pymysql - - python-designateclient - - python-memcached - - systemd-python - - warlock - os_glance: - - cryptography - - glance - - keystonemiddleware - - os-brick - - osprofiler - - pymysql - - python-cinderclient - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-swiftclient - - uwsgi - - warlock - os_gnocchi: - - cryptography - - gnocchi[keystone,mysql,{{ gnocchi_storage_driver | default('file') }}] - - gnocchiclient - - kazoo - - osprofiler - - python-memcached - - redis - os_heat: - - cryptography - - heat - - keystonemiddleware - - osprofiler - - pymysql - - python-ceilometerclient - - python-glanceclient - - python-heatclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-openstackclient - - python-swiftclient - - python-troveclient - - uwsgi - os_horizon: - - cryptography - - django-appconf - - django-openstack-auth - - greenlet - - horizon - - keystonemiddleware - - oslo.config - - ply - - pymysql - - python-keystoneclient - - python-memcached - os_ironic: - - cryptography - - imcsdk - - ironic - - osprofiler - - proliantutils - - pymysql - - pysnmp - - python-dracclient - - python-ilorest-library - - python-ironic-inspector-client - - python-ironicclient - - python-memcached - - python-scciclient - - python-swiftclient - - python-xclarityclient - - sushy - - ucssdk - - uwsgi - os_keystone: - - keystone - - ldappool - - osprofiler - - pymysql - - pyngus - - python-memcached - - python-openstackclient - - systemd-python - - uwsgi - os_magnum: - - magnum - - osprofiler - - pymysql - - python-memcached - - uwsgi - os_neutron: - - cliff - - configobj - - cryptography - - keystonemiddleware - - neutron - - osprofiler - - pymysql - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - repoze.lru - os_nova: - - cryptography - - keystonemiddleware - - nova - - nova-lxd - - nova-powervm - - osprofiler - - pyasn1-modules - - pylxd - - pymysql - - pyopenssl - - python-ironicclient - - python-keystoneclient - - python-memcached - - python-novaclient - - python-openstackclient - - uwsgi - - websockify - os_octavia: - - cryptography - - keystonemiddleware - - octavia - - osprofiler - - pymysql - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-octaviaclient - - python-openstackclient - - uwsgi - os_rally: - - ansible==2.4.3.0 - - morph==0.1.2 - - os-faults==0.1.17 - - positional===1.2.1 - - pymysql - - rally-openstack==1.2.0 - os_sahara: - - cryptography - - keystonemiddleware - - osprofiler - - pymysql - - python-keystoneclient - - python-memcached - - python-saharaclient - - sahara - - uwsgi - - warlock - os_swift: - - ceilometermiddleware - - cryptography - - dnspython - - ecdsa - - keystonemiddleware - - osprofiler - - pyeclib - - python-keystoneclient - - python-memcached - - python-swiftclient - - swift - - swift3 - os_tacker: - - networking-sfc - - osprofiler - - pymysql - - python-heatclient - - python-tackerclient - - tacker - os_tempest: - - cmd2<0.9.0 - - ddt - - junitxml - - lxml - - nose - - os-testr - - python-ceilometerclient - - python-cinderclient - - python-glanceclient - - python-heatclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-openstackclient - - python-saharaclient - - python-subunit - - python-swiftclient - - tempest - - testscenarios - os_trove: - - cryptography - - os-client-config - - osprofiler - - pexpect - - pymysql - - python-memcached - - python-troveclient - - trove - pip_install: - - pip - - setuptools - - wheel - python_venv_build: [] - repo_build: - - cython - - pbr - - requests - - urllib3 - - wheel - repo_server: - - pypiserver[cache]==1.2.0 - role_project_groups: - ansible-hardening: all - apt_package_pinning: all - bird: all - bootstrap-host: all - ceph-agent: all - ceph-ansible: all - ceph-client: all - ceph-common: all - ceph-common-coreos: all - ceph-defaults: all - ceph-fetch-keys: all - ceph-iscsi-gw: all - ceph-mds: all - ceph-mgr: all - ceph-mon: all - ceph-nfs: all - ceph-osd: all - ceph-rbd-mirror: all - ceph-restapi: all - ceph-rgw: all - ceph.ceph-common: all - ceph_client: all - common: all - compute: all - etcd: all - galera_client: all - galera_server: all - haproxy_endpoints: all - haproxy_server: all - infra: all - keepalived: all - lxc_container_create: all - lxc_hosts: all - memcached_server: all - network: all - nspawn_container_create: all - nspawn_hosts: all - opendaylight: all - openstack_hosts: all - openstack_openrc: all - os_aodh: aodh_all - os_barbican: barbican_all - os_ceilometer: ceilometer_all - os_cinder: cinder_all - os_congress: congress_all - os_designate: designate_all - os_glance: glance_all - os_gnocchi: gnocchi_all - os_heat: heat_all - os_horizon: horizon_all - os_ironic: ironic_all - os_keystone: keystone_all - os_magnum: magnum_all - os_neutron: neutron_all - os_nova: nova_all - os_octavia: octavia_all - os_rally: utility_all - os_sahara: sahara_all - os_swift: swift_all - os_tacker: tacker_all - os_tempest: utility_all - os_trove: trove_all - pip_install: all - python_venv_build: all - rabbitmq_server: all - repo_build: all - repo_server: all - resolvconf: all - rsyslog_client: all - rsyslog_server: all - service: all - sshd: all - system_crontab_coordination: all - systemd_mount: all - systemd_networkd: all - systemd_service: all - unbound: all - role_requirement_files: - default: - project_group: all - txt_file_packages: - - jmespath>=0.9.3 - - ndg-httpsclient>=0.4.2;python_version<'3.0' - - netaddr>=0.7.18 - - pip==18.0 - - prettytable<0.8,>=0.7.1 - - pyasn1!=0.2.3,>=0.1.8 - - pyopenssl>=17.1.0 - - python-keystoneclient>=3.8.0 - - python-memcached>=1.56 - - python-openstackclient>=3.14.2 - - pyyaml>=3.12 - - setuptools==40.0.0 - - shade>=1.17.0 - - virtualenv>=14.0.6 - - wheel==0.31.1 - global_pins: - pinned_packages: - - pip==18.0 - - setuptools==40.0.0 - - wheel==0.31.1 - project_group: all - role_requirements: - os_aodh: - aodh_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - aodh_pip_packages: - - alembic>=0.7.2 - - aodh - - ceilometermiddleware - - cryptography - - gnocchiclient - - osprofiler - - pymysql>=0.6.2 - - python-ceilometerclient - - python-memcached - - sqlalchemy-utils - - sqlalchemy>=0.9.7 - - systemd-python - - warlock - project_group: aodh_all - os_barbican: - barbican_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - barbican_pip_packages: - - barbican - - osprofiler - - pymysql - - python-memcached - - systemd-python - - uwsgi - project_group: barbican_all - os_ceilometer: - ceilometer_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - ceilometer_pip_packages: - - ceilometer - - ceilometermiddleware - - cryptography - - gnocchiclient - - kazoo - - libvirt-python - - osprofiler - - pymongo - - pymysql - - python-ceilometerclient - - python-memcached - - redis - - systemd-python - - tooz[zake] - - warlock - project_group: ceilometer_all - os_cinder: - cinder_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - cinder_pip_packages: - - cinder - - cryptography - - ecdsa - - httplib2 - - keystonemiddleware - - osprofiler - - pymysql - - python-memcached - - python-openstackclient - - systemd-python - - uwsgi - project_group: cinder_all - os_congress: - congress_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - congress_pip_packages: - - congress - - osprofiler - - pymysql - - python-congressclient - - python-heatclient - - systemd-python - project_group: congress_all - os_designate: - designate_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - designate_pip_packages: - - cryptography - - designate - - osprofiler - - pymysql - - python-designateclient - - python-memcached - - systemd-python - - warlock - project_group: designate_all - os_glance: - glance_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - glance_pip_packages: - - cryptography - - glance - - keystonemiddleware - - os-brick - - osprofiler - - pymysql - - python-cinderclient - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-swiftclient - - uwsgi - - warlock - project_group: glance_all - os_gnocchi: - gnocchi_pip_packages: - - cryptography - - gnocchi[keystone,mysql,{{ gnocchi_storage_driver | default('file') }}] - - gnocchiclient - - kazoo - - osprofiler - - python-memcached - - redis - project_group: gnocchi_all - os_heat: - heat_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - heat_pip_packages: - - cryptography - - heat - - keystonemiddleware - - osprofiler - - pymysql - - python-ceilometerclient - - python-glanceclient - - python-heatclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-openstackclient - - python-swiftclient - - python-troveclient - - uwsgi - project_group: heat_all - os_horizon: - horizon_blazar_optional_pip_packages: - - blazar_dashboard - horizon_designate_optional_pip_packages: - - designate_dashboard - horizon_heat_optional_pip_packages: - - heat_dashboard - horizon_ironic_optional_pip_packages: - - ironic-ui - horizon_magnum_optional_pip_packages: - - magnum-ui - horizon_neutron_fwaas_optional_pip_packages: - - neutron-fwaas-dashboard - horizon_neutron_lbaas_optional_pip_packages: - - neutron-lbaas-dashboard - horizon_octavia_optional_pip_packages: - - octavia_dashboard - horizon_pip_packages: - - cryptography - - django-appconf - - django-openstack-auth - - greenlet - - horizon - - keystonemiddleware - - oslo.config - - ply - - pymysql - - python-keystoneclient - - python-memcached - horizon_sahara_optional_pip_packages: - - sahara_dashboard - horizon_trove_optional_pip_packages: - - trove_dashboard - project_group: horizon_all - os_ironic: - ironic_oneview_optional_pip_packages: - - hponeview - - ironic-oneview-cli - - ironic-oneviewd - - python-oneviewclient - ironic_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - ironic_pip_packages: - - cryptography - - imcsdk - - ironic - - osprofiler - - proliantutils - - pymysql - - pysnmp - - python-dracclient - - python-ilorest-library - - python-ironic-inspector-client - - python-ironicclient - - python-memcached - - python-scciclient - - python-swiftclient - - python-xclarityclient - - sushy - - ucssdk - - uwsgi - project_group: ironic_all - os_keystone: - keystone_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - keystone_pip_packages: - - keystone - - ldappool - - osprofiler - - pymysql - - pyngus - - python-memcached - - python-openstackclient - - systemd-python - - uwsgi - project_group: keystone_all - os_magnum: - magnum_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - magnum_pip_packages: - - magnum - - osprofiler - - pymysql - - python-memcached - - uwsgi - project_group: magnum_all - os_neutron: - neutron_optional_bgp_pip_packages: - - neutron_dynamic_routing - neutron_optional_calico_pip_packages: - - networking-calico - - python-etcd - neutron_optional_dragonflow_pip_packages: - - dragonflow - - python-etcd - neutron_optional_fwaas_pip_packages: - - neutron_fwaas - neutron_optional_lbaas_pip_packages: - - neutron_lbaas - neutron_optional_opendaylight_pip_packages: - - ceilometer - - networking-bgpvpn - - networking-odl - neutron_optional_opendaylight_sfc_pip_packages: - - networking-sfc - neutron_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - neutron_optional_ovn_pip_packages: - - networking-ovn - neutron_optional_vpnaas_pip_packages: - - neutron_vpnaas - neutron_pip_packages: - - cliff - - configobj - - cryptography - - keystonemiddleware - - neutron - - osprofiler - - pymysql - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - repoze.lru - project_group: neutron_all - os_nova: - nova_compute_ironic_pip_packages: - - python-ironicclient - nova_compute_lxd_pip_packages: - - nova-lxd - - pylxd - - pyopenssl - nova_compute_powervm_pip_packages: - - nova-powervm - - pyasn1-modules - nova_novnc_pip_packages: - - websockify - nova_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - nova_pip_packages: - - cryptography - - keystonemiddleware - - nova - - osprofiler - - pymysql - - python-keystoneclient - - python-memcached - - python-novaclient - - python-openstackclient - - uwsgi - project_group: nova_all - os_octavia: - octavia_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - octavia_pip_packages: - - cryptography - - keystonemiddleware - - octavia - - osprofiler - - pymysql - - python-glanceclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-octaviaclient - - python-openstackclient - - uwsgi - project_group: octavia_all - os_rally: - project_group: utility_all - rally_pip_packages: - - ansible==2.4.3.0 - - morph==0.1.2 - - os-faults==0.1.17 - - positional===1.2.1 - - pymysql - - rally-openstack==1.2.0 - os_sahara: - project_group: sahara_all - sahara_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - sahara_pip_packages: - - cryptography - - keystonemiddleware - - osprofiler - - pymysql - - python-keystoneclient - - python-memcached - - python-saharaclient - - sahara - - uwsgi - - warlock - os_swift: - project_group: swift_all - swift_pip_packages: - - ceilometermiddleware - - cryptography - - dnspython - - ecdsa - - keystonemiddleware - - osprofiler - - pyeclib - - python-keystoneclient - - python-memcached - - python-swiftclient - - swift - - swift3 - os_tacker: - project_group: tacker_all - tacker_horizon_pip_packages: - - python-tackerclient - tacker_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - tacker_pip_packages: - - networking-sfc - - osprofiler - - pymysql - - python-heatclient - - python-tackerclient - - tacker - os_tempest: - project_group: utility_all - tempest_pip_packages: - - cmd2<0.9.0 - - ddt - - junitxml - - lxml - - nose - - os-testr - - python-ceilometerclient - - python-cinderclient - - python-glanceclient - - python-heatclient - - python-keystoneclient - - python-memcached - - python-neutronclient - - python-novaclient - - python-openstackclient - - python-saharaclient - - python-subunit - - python-swiftclient - - tempest - - testscenarios - os_trove: - project_group: trove_all - trove_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - trove_pip_packages: - - cryptography - - os-client-config - - osprofiler - - pexpect - - pymysql - - python-memcached - - python-troveclient - - trove - pip_install: - pip_packages: - - pip - - setuptools - - wheel - project_group: all - python_venv_build: - project_group: all - repo_build: - project_group: all - repo_pip_packages: - - cython - - pbr - - requests - - urllib3 - - wheel - repo_server: - project_group: all - repo_pypiserver_pip_packages: - - pypiserver[cache]==1.2.0 diff --git a/tests/test-install-server.yml b/tests/test-install-server.yml deleted file mode 100644 index e6ccb94..0000000 --- a/tests/test-install-server.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -- name: Install repo server - hosts: repo_all - user: root - roles: - - "repo_server" - post_tasks: - - name: Check if the git cache exists on deployment host - local_action: - module: stat - path: "/opt/git/opendev.org/openstack" - register: _local_git_cache - - - name: Pre-cache the keystone git repository (from git cache) - synchronize: - src: "/opt/git/opendev.org/openstack/keystone/" - dest: "/var/www/repo/openstackgit/keystone" - when: - - _local_git_cache.stat is defined - - _local_git_cache.stat.exists - - - name: Pre-cache the keystone git repository (from git source) - git: - repo: "https://opendev.org/openstack/keystone" - dest: "/var/www/repo/openstackgit/keystone" - clone: yes - update: yes - become: yes - become_user: "{{ repo_build_service_user_name }}" - when: - - _local_git_cache.stat is defined - - not _local_git_cache.stat.exists - tags: - - skip_ansible_lint - - - name: Pre-cache the tempest git repository (from git source) - git: - repo: "https://opendev.org/openstack/tempest" - dest: "/var/www/repo/openstackgit/tempest" - clone: yes - update: yes - become: yes - become_user: "{{ repo_build_service_user_name }}" - tags: - - skip_ansible_lint - - - name: Intentionally set the keystone repo remote origin to github - command: "git remote set-url origin https://github.com/openstack/keystone.git" - args: - chdir: "/var/www/repo/openstackgit/keystone" - tags: - - skip_ansible_lint - - vars_files: - - test-vars.yml diff --git a/tests/test-repo-build.yml b/tests/test-repo-build.yml deleted file mode 100644 index bda4b94..0000000 --- a/tests/test-repo-build.yml +++ /dev/null @@ -1,161 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -- name: Build repo - hosts: repo_all - user: root - vars: - test_data_file_path: "{{ lookup('env', 'WORKING_DIR') }}/tests/test-data.yml" - vars_files: - - test-vars.yml - pre_tasks: - # Test data output from the py_pkgs lookup - # To produce a fresh version of this, execute: - # /opt/ansible-runtime/bin/python /etc/ansible/roles/plugins/lookup/py_pkgs.py \ - # /opt/openstack-ansible /etc/ansible/roles /etc/openstack_deploy | \ - # /opt/ansible-runtime/bin/python -c 'import sys, yaml, json; yaml.safe_dump(json.load(sys.stdin), sys.stdout, default_flow_style=False)' - # then perform the final minor adjustment of the top-end structure to fit the current structure - - name: Import the test data - set_fact: - local_packages: - results: - - - item: - "{{ (lookup('file', test_data_file_path) | from_yaml)[0] }}" - - - name: Check if this is an OpenStack-CI nodepool instance - stat: - path: /etc/nodepool/provider - register: nodepool - delegate_to: localhost - - - name: Determine the existing Ubuntu repo URL (only on OpenStack-CI) - shell: 'awk "/^deb .*ubuntu\/? {{ ansible_distribution_release }} main/ {print \$2; exit}" /etc/apt/sources.list' - register: ubuntu_repo_url - changed_when: false - when: - - ansible_pkg_mgr == 'apt' - - nodepool.stat.exists | bool - delegate_to: localhost - - - name: Set Ubuntu Cloud Archive repo URL based on discovered information - set_fact: - uca_apt_repo_url: "{{ ubuntu_repo_url.stdout | urlsplit('scheme') ~ '://' ~ urlsplit('netloc') }}/ubuntu-cloud-archive" - when: - - ansible_pkg_mgr == 'apt' - - nodepool.stat.exists | bool - roles: - - "repo_build" - post_tasks: - - name: List the files in the git folder - command: ls -1 /var/www/repo/openstackgit/ - register: git_folder_content - changed_when: false - - - name: Ensure that the keystone git repo is present - assert: - that: "'keystone' in git_folder_content.stdout" - - - name: Ensure that the tempest git repo is present - assert: - that: "'tempest' in git_folder_content.stdout" - - - name: Ensure that the requirements git repo is present - assert: - that: "'requirements' in git_folder_content.stdout" - - - name: Ensure that the nova git repo is NOT present - assert: - that: "'nova' not in git_folder_content.stdout" - - - name: Slurp upper constraints - slurp: - src: "{{ repo_build_git_dir }}/requirements/upper-constraints.txt" - register: slurp_upper_constraints - - - name: Slurp requirements constraints - slurp: - src: "{{ repo_build_release_path }}/requirements_constraints.txt" - register: slurp_requirements_constraints - - - name: Set fact for requirements constraints content - set_fact: - requirements_constraints_content: "{{ slurp_requirements_constraints.content | b64decode }}" - - - name: Set fact for upper constraints content - set_fact: - upper_constraints_list: > - {%- set constraints = [] %} - {%- for constraint_raw in slurp_upper_constraints.content | b64decode | splitlines %} - {%- set constraint_name = constraint_raw | regex_replace('===.*', '') %} - {%- set constraint_data = constraint_raw | regex_replace('.*===', '') %} - {%- set constraint_name_normalized = constraint_name | replace('-', '_') | lower %} - {%- set constraint = constraint_name_normalized + '<=' + constraint_data %} - {%- set _ = constraints.append(constraint) %} - {%- endfor %} - {{- constraints -}} - - - name: Set fact for upper constraints override - set_fact: - upper_constraints_override_list: > - {%- set override_packages = [] %} - {%- for override in repo_build_upper_constraints_overrides %} - {%- set name = override | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %} - {%- set name_normalized = name | replace('-', '_') | lower %} - {%- set _ = override_packages.append(name_normalized) %} - {%- endfor %} - {{- override_packages -}} - - - name: Set fact for global pins - set_fact: - global_pins_list: > - {%- set global_pins = [] %} - {%- for pin in local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages %} - {%- set name = pin | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') %} - {%- set name_normalized = name | replace('-', '_') | lower %} - {%- set _ = global_pins.append(name_normalized) %} - {%- endfor %} - {{- global_pins -}} - - - name: Set facts for packages built from git sources - set_fact: - git_package_list: > - {%- set git_packages = [] %} - {%- for remote_package_part in local_packages.results.0.item.remote_package_parts %} - {%- set _ = git_packages.append(remote_package_part['egg_name']) %} - {%- endfor %} - {{- git_packages -}} - - - name: Ensure that upper constraints from the OpenStack requirements repo are complete - assert: - that: item in requirements_constraints_content - with_items: "{{ upper_constraints_list }}" - when: - - repo_build_use_upper_constraints | bool - - item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in upper_constraints_override_list - - item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in global_pins_list - - item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in git_package_list - - - name: Ensure that global pins have been applied - assert: - that: item in requirements_constraints_content - with_items: "{{ local_packages.results.0.item.role_requirement_files.global_pins.pinned_packages }}" - when: - - item | regex_replace('(\[|>=|<=|>|<|==|~=|!=).*$','') not in upper_constraints_override_list - - - name: Ensure that upper constraints overrides are applied - assert: - that: item in requirements_constraints_content - with_items: "{{ repo_build_upper_constraints_overrides }}" diff --git a/tests/test-vars.yml b/tests/test-vars.yml deleted file mode 100644 index f155744..0000000 --- a/tests/test-vars.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Copyright 2016, @WalmartLabs -# -# 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. - -openstack_release: testing -repo_build_release_tag: "{{ openstack_release }}" - -repo_build_service_user_name: "nginx" - -# Test data input for upper constraints validation -repo_build_upper_constraints_overrides: - - elasticsearch<2.1.0 diff --git a/tests/test.yml b/tests/test.yml index 625d4ff..d376a58 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -1,23 +1,5 @@ --- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -# Prepare the host -- import_playbook: common/test-setup-host.yml - -# Install repo server -- import_playbook: test-install-server.yml - -# Build repo -- import_playbook: test-repo-build.yml +- hosts: all + tasks: + - debug: + msg: "" diff --git a/tox.ini b/tox.ini index 6fd0e98..032fa6b 100644 --- a/tox.ini +++ b/tox.ini @@ -32,34 +32,6 @@ setenv = WORKING_DIR={toxinidir} -[testenv:docs] -basepython = python3 -deps = -r{toxinidir}/doc/requirements.txt -commands= - bash -c "rm -rf doc/build" - doc8 doc - sphinx-build -b html doc/source doc/build/html - - -[doc8] -# Settings for doc8: -extensions = .rst - - -[testenv:releasenotes] -basepython = python3 -deps = -r{toxinidir}/doc/requirements.txt -commands = - sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html - - -# environment used by the -infra templated docs job -[testenv:venv] -basepython = python3 -commands = - {posargs} - - [testenv:pep8] basepython = python3 commands = @@ -91,11 +63,6 @@ commands = bash -c "{toxinidir}/tests/common/test-ansible-lint.sh" -[testenv:functional] -commands = - bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" - - [testenv:linters] basepython = python3 commands = diff --git a/vars/debian.yml b/vars/debian.yml deleted file mode 100644 index c9cc96a..0000000 --- a/vars/debian.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -## APT Cache options -cache_timeout: 600 - -repo_build_distro_packages: - - build-essential - - cmake - - git - - liberasurecode-dev # required to build pyeclib - - libffi-dev # required to build xattr - - libjpeg-dev # required to build pillow - - libkrb5-dev # required to build pykerberos - - libldap2-dev # required to build python-ldap - - libpcre3-dev # required to build uwsgi - - libpq-dev # required to build psycopg2 - - librados-dev # required to build cradox - - libsasl2-dev # required to build python-ldap - - libsqlite3-dev # required to build pysqlite - - libssl-dev # required to build cryptography - - libvirt-dev # required to build libvirt-python - - libxslt1-dev # required to build lxml - - libxml2-dev # required to build lxml - - libsystemd-dev # required to build systemd-python - - moreutils # provides `ts` command to timestamp pip logs - - pkg-config - - python-dev - - swig diff --git a/vars/main.yml b/vars/main.yml deleted file mode 100644 index 4fab8f3..0000000 --- a/vars/main.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. - -# The following rules are applied in order to determine the filtered list -# of roles to be processed for producing venvs. -# -# 1. The role name must be named 'os_*'. We only want the OpenStack -# services to be compiled into venvs. -# 2. If repo_build_venv_selective is disabled, then all the roles -# which pass rule 1 will have venvs built. -# 3. If the 'project_group' for the role is defined and is populated -# then the venv will be built. -# -filtered_venv_role_python_requirements: |- - {%- set filtered_role_list = [] %} - {%- for role_name, role_data in local_packages.results.0.item.role_requirements.items() %} - {%- if ("os_" in role_name) %} - {%- set project_group = role_data['project_group'] %} - {%- if (not repo_build_venv_selective | bool) or - ((groups[project_group] is defined) and (groups[project_group] | length > 0)) %} - {%- set _ = filtered_role_list.append({'role_name': role_name, 'role_data': role_data}) %} - {%- endif %} - {%- endif %} - {%- endfor %} - {{- filtered_role_list }} diff --git a/vars/redhat.yml b/vars/redhat.yml deleted file mode 100644 index 9455746..0000000 --- a/vars/redhat.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# Copyright 2016, @WalmartLabs -# -# 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. - -repo_build_distro_packages: - - cmake - - gcc - - git - - krb5-devel # required to build pykerberos - - liberasurecode-devel # required to build pyeclib - - libffi-devel # required to build xattr - - libjpeg-turbo-devel # required to build pillow - - librados2-devel # required to build cradox - - libvirt-devel # required to build libvirt-python - - libxslt-devel # required to build lxml - - moreutils # provides `ts` command to timestamp pip logs - - openldap-devel # required to build python-ldap - - pcre-devel # required to build uwsgi - - postgresql-devel # required to build psycopg2 - - python2-devel - - openssl-devel # required to build cryptography - - systemd-devel # required to build systemd-python - - sqlite-devel # required to build pysqlite - - swig - - which - - tar # required for /opt/op-venv-script.sh diff --git a/vars/suse.yml b/vars/suse.yml deleted file mode 100644 index 8e77118..0000000 --- a/vars/suse.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -# Copyright 2016, @WalmartLabs -# Copyright 2017, SUSE LINUX GmbH. -# -# 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. - -repo_build_distro_packages: - - gcc - - cmake - - git-core - - krb5-devel # required to build pykerberos - - liberasurecode-devel # required to build pyeclib - - libffi-devel # required to build xattr - - libjpeg8-devel # required to build pillow - - librados-devel # required to build cradox - - libvirt-devel # required to build libvirt-python - - libxslt1 - - libxslt-devel # required to build lxml - - moreutils # provides `ts` command to timestamp pip logs - - cyrus-sasl-devel # required to build python-ldap - - openldap2-devel # required to build python-ldap - - postgresql-devel # required to build psycopg2 - - pcre-devel # required to build uwsgi - - python-devel - - libopenssl-devel # required to build cryptography - - systemd-devel # required to build systemd-python - - sqlite-devel # required to build pysqlite - - swig - - which - - tar # required for /opt/op-venv-script.sh diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 7ddbf62..1d41193 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -1,21 +1,3 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. - - project: templates: - - openstack-ansible-role-jobs - - check-requirements - - publish-openstack-docs-pti - - release-notes-jobs-python3 + - openstack-ansible-linters