Retire Tripleo: remove repo content
TripleO project is retiring - https://review.opendev.org/c/openstack/governance/+/905145 this commit remove the content of this project repo Depends-On: https://review.opendev.org/c/openstack/project-config/+/910075 Change-Id: I05ba454853950b40942b5b4ff044f6070aa2117f
This commit is contained in:
parent
ec349ebef6
commit
934fe57620
@ -1,6 +0,0 @@
|
||||
[run]
|
||||
branch = True
|
||||
source = tempest_skip
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
46
.gitignore
vendored
46
.gitignore
vendored
@ -1,46 +0,0 @@
|
||||
*.py[cod]
|
||||
*.pyc
|
||||
|
||||
# Packages
|
||||
*.egg*
|
||||
*.egg-info
|
||||
dist
|
||||
build
|
||||
eggs
|
||||
parts
|
||||
bin
|
||||
var
|
||||
sdist
|
||||
develop-eggs
|
||||
.installed.cfg
|
||||
lib
|
||||
lib64
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
cover/
|
||||
.coverage*
|
||||
!.coveragerc
|
||||
.tox
|
||||
.venv
|
||||
|
||||
# Mr Developer
|
||||
.project
|
||||
.pydevproject
|
||||
|
||||
# Sphinx
|
||||
doc/build
|
||||
|
||||
# pbr generates these
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
||||
# Editors
|
||||
*~
|
||||
.*.swp
|
||||
.*sw?
|
||||
|
||||
# Files created by releasenotes build
|
||||
releasenotes/build
|
32
.zuul.yaml
32
.zuul.yaml
@ -1,32 +0,0 @@
|
||||
- project:
|
||||
templates:
|
||||
- publish-openstack-docs-pti
|
||||
- openstack-python3-zed-jobs
|
||||
- release-notes-jobs-python3
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tempest-skiplist-validate
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tempest-skiplist-validate
|
||||
|
||||
- job:
|
||||
name: openstack-tempest-skiplist-base
|
||||
parent: unittests
|
||||
description: Base job for tempest-skiplist
|
||||
required-projects:
|
||||
- openstack/openstack-tempest-skiplist
|
||||
roles:
|
||||
- zuul: openstack/openstack-tempest-skiplist
|
||||
irrelevant-files:
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
- ^.*\.rst$
|
||||
|
||||
- job:
|
||||
name: openstack-tempest-skiplist-validate
|
||||
parent: openstack-tempest-skiplist-base
|
||||
description: Tempest skiplist to validate yaml file
|
||||
pre-run:
|
||||
- playbooks/tempest_skip_install.yaml
|
||||
run: playbooks/tempest_skip_validate.yaml
|
86
README.rst
86
README.rst
@ -1,80 +1,10 @@
|
||||
openstack-tempest-skiplist
|
||||
==========================
|
||||
This project is no longer maintained.
|
||||
|
||||
Overview
|
||||
--------
|
||||
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".
|
||||
|
||||
openstack-tempest-skiplist will generate a skip list to be executed by tempest
|
||||
|
||||
- Free software: Apache license
|
||||
- Documentation: https://docs.openstack.org/openstack-tempest-skiplist/latest/
|
||||
- Source: https://opendev.org/openstack/openstack-tempest-skiplist
|
||||
- Bugs: https://storyboard.openstack.org/#!/project/1173
|
||||
- Release notes: https://docs.openstack.org/releasenotes/openstack-tempest-skiplist
|
||||
|
||||
Quickstart
|
||||
==========
|
||||
|
||||
- edit tempest_skip.yml
|
||||
- add the required fields, including the launchpad
|
||||
- execute tox tests
|
||||
- submit :)
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Installing from git and virtualenv::
|
||||
|
||||
$ git clone https://opendev.org/openstack/openstack-tempest-skiplist
|
||||
$ cd openstack-tempest-skiplist
|
||||
$ virtualenv .venv
|
||||
$ source .venv/bin/activate
|
||||
$ pip install .
|
||||
|
||||
Validation
|
||||
----------
|
||||
|
||||
After edit your file, you can check if it is valid with the following command::
|
||||
|
||||
$ tempest-skip validate --file file.yaml
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
A simple example of the structure of the yaml file expected by
|
||||
tempest-skiplist.
|
||||
For more information about each field, visit the `documentation <https://docs.openstack.org/openstack-tempest-skiplist/latest/yaml/formatting.html>` website:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'full.tempest.test'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
- 'overcloud'
|
||||
jobs:
|
||||
- job1
|
||||
- job2
|
||||
reason: 'default reason'
|
||||
releases:
|
||||
- name: master
|
||||
lp: 'https://launchpad.net/bugs/2'
|
||||
reason: 'Some reason'
|
||||
- name: train
|
||||
bz: 'https://bugzilla.redhat.com/train1'
|
||||
installers:
|
||||
- 'osp'
|
||||
- name: ussuri
|
||||
installers:
|
||||
- 'tripleo'
|
||||
bz: 'https://bugzilla.redhat.com/ussuri1'
|
||||
|
||||
In the above example, the test *full.tempest.test* will be executed by tempest
|
||||
in both deployments, undercloud, and overcloud (depending on the job).
|
||||
It will also be skipped in the releases master, train and ussuri, specifically
|
||||
in jobs job1 and job2. It will not be skipped in any other job, no matter what
|
||||
the release is.
|
||||
|
||||
Removing the list of jobs, means it will be skipped everywhere.
|
||||
For any further questions, please email
|
||||
openstack-discuss@lists.openstack.org or join #openstack-dev on
|
||||
OFTC.
|
||||
|
@ -1,6 +0,0 @@
|
||||
openstackdocstheme>=2.2.1 # Apache-2.0
|
||||
reno>=3.1.0 # Apache-2.0
|
||||
sphinx>=2.0.0,!=2.1.0 # BSD
|
||||
sphinx-argparse>=0.2.2 # MIT
|
||||
sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
|
||||
validators==0.18.2
|
@ -1,86 +0,0 @@
|
||||
========================
|
||||
Adding tests to skiplist
|
||||
========================
|
||||
|
||||
Adding tests
|
||||
------------
|
||||
|
||||
Of course it is possible to directly edit the yaml file and add the test
|
||||
itself, but that may lead to failures, as for example duplicated entries,
|
||||
identation issues, having a namespace test instead of full path test name.
|
||||
|
||||
In order to avoid that, you can use the `addtest` command that will identify if
|
||||
the test is already on the skiplist, avoiding duplication. It will also
|
||||
generate the yaml file properly as well as avoid the use of test namespace. For
|
||||
example, if a user tries to add the tempest.scenario, it will skip all the
|
||||
tests under tempest.scenario, which is not the desirable behavior. However, it
|
||||
is a lot of work to add each entry under tempest.scenario, since we must repeat
|
||||
all the reasons, bugzilla, releases, etc.
|
||||
|
||||
The addtest command solves all these problems for you. First of all, when you
|
||||
try to add a test passing a test namespace, addtest will give you a list of
|
||||
tests under that particular namespace, where you can choose from the list which
|
||||
ones you would like to add. Select the ones you want and you are done!
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
The command below add the test tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks::
|
||||
|
||||
$ tempest-skip addtest \
|
||||
--file roles/validate-tempest/vars/tempest_skip.yml \
|
||||
--release master \
|
||||
--test tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks \
|
||||
--reason 'Failing on network' \
|
||||
--lp https://launchpad.net/bug/12345
|
||||
|
||||
In this example, we are adding the full path test, and so, the command will not
|
||||
prompt you a list of tests that you want to choose. If for example, only the
|
||||
namespace be parsed, you will be prompted with a list of tests under that
|
||||
namespace::
|
||||
|
||||
$ tempest-skip addtest \
|
||||
--file roles/validate-tempest/vars/tempest_skip.yml \
|
||||
--release master \
|
||||
--test tempest.scenario.test_network_basic_ops \
|
||||
--reason 'Failing on network' \
|
||||
--lp https://launchpad.net/bug/12345
|
||||
|
||||
And this is the output:
|
||||
|
||||
.. code-block::
|
||||
|
||||
[?] These are the tests available on the namespace, choose which ones you want to add. Press space to select:
|
||||
> o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_connectivity_between_vms_on_different_networks
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_mtu_sized_frames
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_preserve_preexisting_port
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_router_rescheduling
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_subnet_details
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_instance_port_admin_state
|
||||
o tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_update_router_admin_state
|
||||
|
||||
You can use the arrow keys on your keyboard to navigate through the list, and
|
||||
space to select. Once you are done, just press enter, the command will go
|
||||
through each test, check if the test exists or not. If it exists, it will also
|
||||
check the release exists, and properly add the test.
|
||||
|
||||
Once you are done, you can validate if the yaml file was generated properly
|
||||
with the command::
|
||||
|
||||
$ tempest-skip validate --file roles/validate-tempest/vars/tempest_skip.yml
|
||||
|
||||
There are some arguments you can pass to the addtest, the required ones are:
|
||||
|
||||
* --file
|
||||
* --lp or --bz
|
||||
* --reason
|
||||
|
||||
All the other arguments have default values, for example, `--release` default
|
||||
value is master and `--deployment` default value is overcloud
|
||||
|
||||
For more information, use::
|
||||
|
||||
$ tempest-skip addtest --help
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
addtest
|
@ -1,86 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# 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.
|
||||
|
||||
|
||||
# -- General configuration ----------------------------------------------------
|
||||
|
||||
# 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.intersphinx',
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinxcontrib.rsvgconverter',
|
||||
'sphinxarg.ext'
|
||||
]
|
||||
|
||||
html_theme = 'openstackdocs'
|
||||
|
||||
# openstackdocstheme options
|
||||
openstackdocs_repo_name = 'openstack/openstack-tempest-skiplist'
|
||||
openstackdocs_pdf_link = True
|
||||
openstackdocs_use_storyboard = True
|
||||
|
||||
# autodoc generation is a bit aggressive and a nuisance when doing heavy
|
||||
# text edit cycles.
|
||||
# execute "export SPHINX_DEBUG=1" in your terminal to disable
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = 'openstack-tempest-skiplist'
|
||||
copyright = u'2016, Red Hat'
|
||||
|
||||
# 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
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'native'
|
||||
|
||||
# -- Options for HTML output --------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
||||
# Sphinx are currently 'default' and 'sphinxdoc'.
|
||||
# html_theme_path = ["."]
|
||||
# html_theme = '_theme'
|
||||
# html_static_path = ['static']
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = '%sdoc' % project
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass
|
||||
# [howto/manual]).
|
||||
latex_documents = [
|
||||
('index',
|
||||
'doc-%s.tex' % project,
|
||||
u'%s Documentation' % project,
|
||||
u'Red Hat, Inc.', 'manual'),
|
||||
]
|
||||
|
||||
latex_use_xindy = False
|
||||
latex_elements = {
|
||||
'extraclassoptions': 'openany,oneside',
|
||||
}
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
#intersphinx_mapping = {'http://docs.python.org/': None}
|
@ -1,21 +0,0 @@
|
||||
Welcome to openstack-tempest-skiplist documentation!
|
||||
========================================================
|
||||
|
||||
openstack-tempest-skiplist is a tool for generate tempest skiplist based on
|
||||
different criteria such as release, installer type, and job name
|
||||
|
||||
Content:
|
||||
--------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
overview
|
||||
install/index
|
||||
yaml/index
|
||||
validate/index
|
||||
listyaml/index
|
||||
listallowed/index
|
||||
addtest/index
|
||||
|
||||
* :ref:`search`
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
installation
|
@ -1,34 +0,0 @@
|
||||
============
|
||||
Installation
|
||||
============
|
||||
|
||||
Git
|
||||
---
|
||||
|
||||
1. Clone and change to the directory::
|
||||
|
||||
$ git clone https://opendev.org/openstack/openstack-tempest-skiplist
|
||||
$ cd openstack-tempest-skiplist
|
||||
|
||||
2. Create a virtual environment using :command:`virtualenv`::
|
||||
|
||||
$ virtualenv .venv
|
||||
$ source .venv/bin/activate
|
||||
|
||||
3. Install requirements in the newly created virtual environment::
|
||||
|
||||
(.venv) $ pip install .
|
||||
|
||||
4. *(optional)* Instead of manual installation described in steps 2 and 3
|
||||
above, tox can be used for installing the requirements as well.
|
||||
To create python 3.6 environment run following::
|
||||
|
||||
$ tox -epy36
|
||||
$ source .tox/py36/bin/activate
|
||||
|
||||
Pip installation
|
||||
----------------
|
||||
|
||||
Install ``openstack-tempest-skiplist`` via pip as follows::
|
||||
|
||||
$ pip install openstack-tempest-skiplist
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
listallowed
|
@ -1,68 +0,0 @@
|
||||
==================
|
||||
List allowed tests
|
||||
==================
|
||||
|
||||
List allowed tests
|
||||
------------------
|
||||
|
||||
You can use :command:`tempest-skip list-allowed` command to list the tests to
|
||||
be executed with two positional parameters which are in the
|
||||
expected format::
|
||||
|
||||
1. ``--file`` is the positional parameter - list all the tests in the file
|
||||
2. ``--group`` or ``--job`` - filter the tests for a specific job, or a
|
||||
specific group.
|
||||
|
||||
Job filter
|
||||
----------
|
||||
|
||||
The job filter, is as the name indicate, it checks the yaml file for a job that
|
||||
matches (must be full match, not partial), and list the tests related to that
|
||||
specific job::
|
||||
|
||||
$ tempets-skip list-allowed --file tempest_allow.yml --job job1
|
||||
|
||||
Group filter
|
||||
------------
|
||||
|
||||
The group filter, which have precedence on the ``--job``, will list the tests
|
||||
for a particular group. This is good when you have several jobs, that run a
|
||||
specific set of tests. In this case, you don't need to repeat the same set of
|
||||
tests for several different jobs::
|
||||
|
||||
$ tempest-skip list-allowed --file tempest_allow.yml --group default_group
|
||||
|
||||
Release filter
|
||||
--------------
|
||||
|
||||
The release filter, which is default to master, filter based on group or job
|
||||
for an specific release.
|
||||
|
||||
Multiple Groups with same name
|
||||
------------------------------------------
|
||||
|
||||
Multiple groups can have same name with different tests and releases. This
|
||||
behaviour allows us to classify the tests on the basis of releases. Here, we
|
||||
cannot define a release more than once in such groups i.e groups having same
|
||||
name should mandatorily have different releases::
|
||||
|
||||
- name: featureset062 # standalone-jobs
|
||||
tests:
|
||||
- 'octavia_tempest_plugin.tests.scenario.v2.test_healthmonitor'
|
||||
- 'octavia_tempest_plugin.tests.scenario.v2.test_listener'
|
||||
releases:
|
||||
- master
|
||||
- wallaby
|
||||
- name: featureset062 # standalone-jobs
|
||||
tests:
|
||||
- 'octavia_tempest_plugin.tests.scenario.v2.test_healthmonitor'
|
||||
- 'octavia_tempest_plugin.tests.scenario.v2.test_l7policy'
|
||||
releases:
|
||||
- train
|
||||
|
||||
Wildcard filter for releases
|
||||
----------------------------
|
||||
|
||||
If in the releases list in the yaml file, the release ``all`` is set, that
|
||||
means, it will not matter which release is passed to ``tempest-skip`` command,
|
||||
it will be included in the final list.
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
listyaml
|
@ -1,32 +0,0 @@
|
||||
======================
|
||||
List skipped tests
|
||||
======================
|
||||
|
||||
List skipped tests
|
||||
-------------------
|
||||
|
||||
You can use :command:`tempest-skip list-skipped` command to list tests in the yaml
|
||||
file with one positional and two optional parameters which is in the expected
|
||||
format::
|
||||
|
||||
1. ``--file`` is the positional parameter - lists all the tests in the file::
|
||||
|
||||
$ tempest-skip list-skipped yaml --file tempest_skip.yml
|
||||
|
||||
2. ``--release``, ``--deployment``, ``--installer`` and ``--job`` are the
|
||||
optional parameters - list all the tests within a specific release,
|
||||
deployment or a specific job::
|
||||
|
||||
$ tempest-skip list-skipped --file tempest_skip.yml --release train
|
||||
$ tempest-skip list-skipped --file tempest_skip.yml --job job1
|
||||
$ tempest-skip list-skipped --file tempest_skip.yml --release train --job job1
|
||||
$ tempest-skip list-skipped --file tempest_skip.yml --deployment undercloud
|
||||
$ tempest-skip list-skipped --file tempest_skip.yml --installer tripleo
|
||||
|
||||
This will return any tests that match the job, as well as tests that doesn't
|
||||
have any job configured. This is required when you configure your zuul jobs to
|
||||
always parse the ``--job`` option. In this scenario, if a job2 is parsed, and
|
||||
there is no test with job2, it would return zero tests to be skipped, which is
|
||||
not the intent. The test with no job defined, means, skip everywhere, if you
|
||||
define the job in the test yaml file, it means, skip all the tests that doesn't
|
||||
have a job defined, plus this test.
|
@ -1,13 +0,0 @@
|
||||
========
|
||||
Overview
|
||||
========
|
||||
|
||||
openstack-tempest-skiplist will automatically generate the list of tests to
|
||||
be skipped by tempest based on the criterias passed to the tool
|
||||
|
||||
- Free software: Apache license
|
||||
- Documentation: https://docs.openstack.org/openstack-tempest-skiplist/latest/
|
||||
- Storyboard: https://storyboard.openstack.org/#!/project/1173
|
||||
- Source: https://opendev.org/openstack/openstack-tempest-skiplist
|
||||
- Bugs: https://storyboard.openstack.org/#!/project/1173
|
||||
- Release notes: https://docs.openstack.org/releasenotes/openstack-tempest-skiplist
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
validate
|
@ -1,20 +0,0 @@
|
||||
======================
|
||||
Validate the yaml file
|
||||
======================
|
||||
|
||||
Validation
|
||||
----------
|
||||
|
||||
You can use :command:`tempest-skip validate` command to validate if the yaml
|
||||
file is in the expected format for the allowed list::
|
||||
|
||||
$ tempest-skip validate --allowed --file good_file.yaml
|
||||
|
||||
or for the skipped list:
|
||||
|
||||
$ tempest-skip validate --skipped --file good_file.yaml
|
||||
|
||||
This will return nothing if the file is valid, or an error otherwise::
|
||||
|
||||
$ tempest-skip validate --file bad_file.yaml
|
||||
required key not provided @ data['known_failures'][0]['releases'][2]['reason']
|
@ -1,201 +0,0 @@
|
||||
==========
|
||||
Formatting
|
||||
==========
|
||||
|
||||
YAML File
|
||||
---------
|
||||
|
||||
The YAML file used by `openstack-tempest-skiplist` use the following pattern:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'full.tempest.test'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
- 'overcloud'
|
||||
jobs:
|
||||
- job1
|
||||
- job2
|
||||
reason: 'default reason'
|
||||
releases:
|
||||
- name: master
|
||||
lp: 'https://launchpad.net/bugs/2'
|
||||
reason: 'Some reason'
|
||||
- name: train
|
||||
bz: 'https://bugzilla.redhat.com/train1'
|
||||
- name: ussuri
|
||||
bz: 'https://bugzilla.redhat.com/ussuri1'
|
||||
|
||||
|
||||
YAML values
|
||||
-----------
|
||||
|
||||
|
||||
BZ and LP
|
||||
+++++++++
|
||||
|
||||
One of them is required, not both, but it's crucial that people are able to
|
||||
trackdown the reason the test is being added in the skiplist.
|
||||
Here there are two levels of lp and bz: the first one, is the global lp and bz
|
||||
and the second is based on the release. This is required because it's possible
|
||||
to have the test failing in two different releases but with different reasons.
|
||||
If the lp or bz is set on test level, you don't need to add it per release, it
|
||||
will use the test level.
|
||||
The value of both lp and bz are their respective URL
|
||||
|
||||
|
||||
Deployment
|
||||
++++++++++
|
||||
|
||||
This is right now TripleO only configuration, since it deploys two different
|
||||
openstack instances, undercloud and overcloud. Default to overcloud.
|
||||
|
||||
|
||||
Installers
|
||||
++++++++++
|
||||
This is a list of installers per release where the test will be
|
||||
skipped. The options for installers are 'tripleo' and 'osp',
|
||||
where 'tripleo' is the upstream installer and 'osp' is the
|
||||
downstream installer.
|
||||
The default (if this option is not set) is 'tripleo' and 'osp'.
|
||||
|
||||
|
||||
Jobs
|
||||
++++
|
||||
|
||||
This is a list of jobs where the test should be skipped. This is not a
|
||||
required field, however, once set, the tool will return the test only if the
|
||||
job matches.
|
||||
|
||||
|
||||
Reason
|
||||
++++++
|
||||
|
||||
This is a description about why this test is being skipped. It exists in two
|
||||
levels, the first in the test level, that will be the default reason, and in
|
||||
release level, where reason can be different.
|
||||
|
||||
|
||||
Releases
|
||||
++++++++
|
||||
|
||||
Releases contain a list of releases that the test will be skipped. It's very
|
||||
common that in a release the test is passing, but in another don't, so we can
|
||||
manage it here.
|
||||
Here, it's also required a reason, and a lp or a bz
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
Below are some examples of valid yaml files that can be used:
|
||||
|
||||
No releases
|
||||
+++++++++++
|
||||
|
||||
Since there's no releases, this will be valid for all releases:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'tempest_skip.tests.test_validate'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
reason: 'This test will be skipped in any release'
|
||||
|
||||
|
||||
With releases
|
||||
+++++++++++++
|
||||
|
||||
As release is set, the test will be skipped only on the matching releases
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'tempest_skip.tests.test_validate'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
reason: 'This test will be skipped in any release'
|
||||
releases:
|
||||
- name: rocky
|
||||
reason: 'Test failing in rock because of network'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
- name: ussuri
|
||||
reason: 'Test is failing in ussuri because of storage bug'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
|
||||
|
||||
With jobs
|
||||
+++++++++
|
||||
|
||||
If a list of jobs is set, the test will be skipped only in the matching jobs
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'tempest_skip.tests.test_validate'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
reason: 'This test will be skipped in any release'
|
||||
jobs:
|
||||
- tempest-test-job-skip1
|
||||
- tempest-test-job-skip2
|
||||
|
||||
|
||||
With jobs and releases
|
||||
++++++++++++++++++++++
|
||||
|
||||
This test will be skipped only when it matches both, job and release
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'tempest_skip.tests.test_validate'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'undercloud'
|
||||
reason: 'This test will be skipped in all releases'
|
||||
releases:
|
||||
- name: rocky
|
||||
reason: 'Test failing in rock because of network'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
- name: ussuri
|
||||
reason: 'Test is failing in ussuri because of storage bug'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
jobs:
|
||||
- tempest-test-job-skip1
|
||||
- tempest-test-job-skip2
|
||||
|
||||
|
||||
With releases and installers
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
known_failures:
|
||||
- test: 'tempest_skip.tests.test_validate'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
deployment:
|
||||
- 'overcloud'
|
||||
reason: 'This test will be skipped in any release'
|
||||
releases:
|
||||
- name: train
|
||||
reason: 'Test failing in train because of network'
|
||||
installers:
|
||||
- 'tripleo'
|
||||
lp: 'https://launchpad.net/bugs/1'
|
||||
- name: wallaby
|
||||
reason: 'Test is failing in /osp-17 because of storage bug'
|
||||
installers:
|
||||
- 'osp'
|
||||
bz: 'https://bugzilla.redhat.com/1'
|
@ -1,5 +0,0 @@
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
||||
formatting
|
@ -1,36 +0,0 @@
|
||||
groups:
|
||||
- name: openstack-operator
|
||||
tests:
|
||||
- tempest.api.identity.*.v3
|
||||
releases:
|
||||
- all
|
||||
- name: cinder-operator
|
||||
tests:
|
||||
- tempest.api.volume
|
||||
releases:
|
||||
- all
|
||||
- name: keystone-operator
|
||||
tests:
|
||||
- tempest.api.identity.*.v3
|
||||
releases:
|
||||
- all
|
||||
- name: neutron-operator
|
||||
tests:
|
||||
- tempest.api.network.*
|
||||
releases:
|
||||
- all
|
||||
- name: nova-operator
|
||||
tests:
|
||||
- tempest.api.compute.*
|
||||
releases:
|
||||
- all
|
||||
- name: manila-operator
|
||||
tests:
|
||||
- manila_tempest_tests.tests.api
|
||||
releases:
|
||||
- all
|
||||
- name: ironic-operator
|
||||
tests:
|
||||
- ironic_tempest_plugin.tests.api.admin.*
|
||||
releases:
|
||||
- all
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +0,0 @@
|
||||
---
|
||||
- hosts: all
|
||||
roles:
|
||||
- ensure-pip
|
||||
- install_skiplist
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
- hosts: all
|
||||
roles:
|
||||
- validate_yaml
|
||||
- list_skipped
|
@ -1,268 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# 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.
|
||||
|
||||
# Glance Release Notes documentation build configuration file, created by
|
||||
# sphinx-quickstart on Tue Nov 3 17:40:50 2015.
|
||||
#
|
||||
# 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',
|
||||
]
|
||||
|
||||
# openstackdocstheme options
|
||||
openstackdocs_repo_name = 'openstack/openstack-tempest-skiplist'
|
||||
openstackdocs_use_storyboard = True
|
||||
|
||||
# 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.
|
||||
copyright = u'2019, OpenStack'
|
||||
|
||||
# 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
|
||||
# "<project> v<release> 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 = '%b %d, %Y'
|
||||
|
||||
# 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 <link> 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 = 'skiplistReleaseNotesdoc'
|
||||
|
||||
|
||||
# -- 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 = [
|
||||
('index', 'skiplistReleaseNotes.tex',
|
||||
u'skiplist Release Notes Documentation', u'OpenStack', '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 = [
|
||||
('index', 'skiplistreleasenotes', u'skiplist Release Notes Documentation',
|
||||
[u'OpenStack'], 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 = [
|
||||
('index', 'skiplistReleaseNotes', u'skiplist Release Notes Documentation',
|
||||
u'OpenStack', 'skiplistReleaseNotes',
|
||||
'A collection of tempest skipped tests shared across OpenStack projects.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# 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/']
|
@ -1,8 +0,0 @@
|
||||
============================================
|
||||
openstack-tempest-skiplist Release Notes
|
||||
============================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
unreleased
|
@ -1,5 +0,0 @@
|
||||
==============================
|
||||
Current Series Release Notes
|
||||
==============================
|
||||
|
||||
.. release-notes::
|
@ -1,6 +0,0 @@
|
||||
cliff
|
||||
inquirer
|
||||
ruamel.yaml>=0.17.7
|
||||
tempest
|
||||
validators
|
||||
voluptuous
|
@ -1,11 +0,0 @@
|
||||
Install tempest skiplist
|
||||
========================
|
||||
|
||||
This role install tempest-skiplist.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: tempest_skip_path
|
||||
:type: string
|
||||
|
||||
A path to the openstack-tempest-skiplist directory
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
# Path for the tempest skip
|
||||
# tempest_skip_path:
|
||||
_zuul_path: "{{ zuul.projects['opendev.org/openstack/openstack-tempest-skiplist'].src_dir | default('') }}"
|
||||
_local_path: "{{ local_working_dir | default('') }}/usr/local/share/ansible"
|
||||
tempest_skip_path: "{{ (zuul is defined) | ternary(_zuul_path, _local_path) }}"
|
||||
list_skipped_yaml_file: "{{ tempest_skip_path }}/roles/validate-tempest/vars/tempest_skip.yml"
|
@ -1,18 +0,0 @@
|
||||
---
|
||||
- block:
|
||||
- name: Create tempest-skiplist venv with latest pip, setuptools and pbr
|
||||
pip:
|
||||
name: ['setuptools', 'pbr']
|
||||
state: latest
|
||||
extra_args: --user
|
||||
|
||||
- name: Ensure a recent version of pip is installed
|
||||
pip:
|
||||
name: "pip>=19.1.1"
|
||||
virtualenv_command: "/usr/bin/python3 -m venv"
|
||||
|
||||
- name: Install tempest-skiplist
|
||||
pip:
|
||||
name: "."
|
||||
chdir: "{{ tempest_skip_path }}"
|
||||
extra_args: --user
|
@ -1,23 +0,0 @@
|
||||
List allowed tempest tests
|
||||
==========================
|
||||
|
||||
This role executes the tempest-skip tool and returns the list of tests to be
|
||||
executed.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: list_allowed_yaml_file
|
||||
:type: string
|
||||
|
||||
Path to the yaml file containing the skipped tests
|
||||
|
||||
.. zuul:rolevar:: list_allowed_job
|
||||
:type: string
|
||||
|
||||
Job name to be used in the filter if required
|
||||
|
||||
.. zuul:rolevar:: list_allowed_group
|
||||
:type: string
|
||||
|
||||
Group to be used in the filter. It has more precedence than
|
||||
list_allowed_job.
|
@ -1,123 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from tempest_skip.list_allowed import ListAllowedYaml
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {
|
||||
'metadata_version': '0.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'
|
||||
}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: list_allowed
|
||||
author:
|
||||
- "Arx Cruz (@arxcruz)
|
||||
version_added: '2.9'
|
||||
short_description:
|
||||
- Parse filtered tests from tempest
|
||||
notes: []
|
||||
requirements:
|
||||
- tempest-skip
|
||||
options:
|
||||
yaml_file:
|
||||
description:
|
||||
- Path to a yaml file containing the tests in
|
||||
openstack-tempest-skiplist format
|
||||
required: True
|
||||
type: str
|
||||
job:
|
||||
description:
|
||||
- Name of the job to be used in the filter.
|
||||
required: False
|
||||
type: str
|
||||
group:
|
||||
description:
|
||||
- Group name to be used in the filter. It has more precedence than job
|
||||
required: False
|
||||
type: str
|
||||
'''
|
||||
|
||||
|
||||
EXAMPLES = '''
|
||||
- name: Get list of allowed tests
|
||||
list_allowed:
|
||||
yaml_file: /tmp/allowed.yaml
|
||||
job: tripleo-ci-centos-8-standalone
|
||||
group: default
|
||||
'''
|
||||
|
||||
|
||||
RETURN = '''
|
||||
allowed_tests:
|
||||
description:
|
||||
- List of tests filtered
|
||||
returned: Always
|
||||
type: list
|
||||
sample: [
|
||||
"tempest.api.volume.test_volumes_snapshots.VolumesSnapshotTestJSON"
|
||||
]
|
||||
'''
|
||||
|
||||
|
||||
def run_module():
|
||||
module_args = dict(
|
||||
yaml_file=dict(type='str', required=True),
|
||||
job=dict(type='str', required=False, default=None),
|
||||
group=dict(type='str', required=False, default=None),
|
||||
release=dict(type='str', required=False, default="master")
|
||||
)
|
||||
|
||||
result = dict(
|
||||
changed=True,
|
||||
message='',
|
||||
filtered_tests=[]
|
||||
)
|
||||
|
||||
module = AnsibleModule(
|
||||
argument_spec=module_args
|
||||
)
|
||||
if not module.params['yaml_file']:
|
||||
module.fail_json(msg="A yaml file must be provided!")
|
||||
|
||||
if not module.params['job'] and not module.params['group']:
|
||||
module.fail_json(msg="You must specify either job or group parameter!")
|
||||
|
||||
cmd = ListAllowedYaml(__name__, sys.argv[1:])
|
||||
parser = cmd.get_parser(__name__)
|
||||
parser.file = module.params['yaml_file']
|
||||
parser.group = module.params['group']
|
||||
parser.release = module.params['release']
|
||||
parser.job = module.params['job']
|
||||
|
||||
tests = cmd.take_action(parser)
|
||||
allowed_tests = [test[0] for test in tests[1]]
|
||||
|
||||
result.update({'allowed_tests': allowed_tests})
|
||||
module.exit_json(**result)
|
||||
|
||||
|
||||
def main():
|
||||
run_module()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
- name: List allowed tests
|
||||
list_allowed:
|
||||
yaml_file: "{{ list_allowed_yaml_file }}"
|
||||
group: "{{ list_allowed_group| default(omit) }}"
|
||||
release: "{{ list_allowed_release | default(omit) }}"
|
||||
job: "{{ list_allowed_job | default(omit) }}"
|
||||
register: tempest_allowed_register
|
@ -1,22 +0,0 @@
|
||||
List skipped tempest tests
|
||||
==========================
|
||||
|
||||
This role execute the tempest-skip tool and return the list of tests to be
|
||||
skipped.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: list_skipped_yaml_file
|
||||
:type: string
|
||||
|
||||
Path to the yaml file containing the skipped tests
|
||||
|
||||
.. zuul:rolevar:: list_skipped_release
|
||||
:type: string
|
||||
|
||||
Release name to be used in the filter if required.
|
||||
|
||||
.. zuul:rolevar:: list_skipped_job
|
||||
:type: string
|
||||
|
||||
Job name to be used in the filter if required.
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
# list_skipped_yaml_file: /home/zuul/src/openstack/openstack-tempest-skiplist/roles/validate-tempest/vars/tempest_skip.yml
|
||||
# list_skipped_job: tripleo-ci-centos-8-containers-multinode
|
||||
# list_skipped_release: master
|
||||
_zuul_path: "{{ zuul.projects['opendev.org/openstack/openstack-tempest-skiplist'].src_dir | default('') }}"
|
||||
_local_path: "{{ local_working_dir | default('') }}/usr/local/share/ansible"
|
||||
tempest_skip_path: "{{ (zuul is defined) | ternary(_zuul_path, _local_path) }}"
|
||||
list_skipped_yaml_file: "{{ tempest_skip_path }}/roles/validate-tempest/vars/tempest_skip.yml"
|
@ -1,137 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from tempest_skip.list_yaml import ListSkippedYaml
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {
|
||||
'metadata_version': '0.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'
|
||||
}
|
||||
|
||||
|
||||
DOCUMENTATION = '''
|
||||
---
|
||||
module: list_skipped
|
||||
author:
|
||||
- "Arx Cruz (@arxcruz)
|
||||
version_added: '2.9'
|
||||
short_description:
|
||||
- Parse skipped tests from tempest
|
||||
notes: []
|
||||
requirements:
|
||||
- tempest-skip
|
||||
options:
|
||||
yaml_file:
|
||||
description:
|
||||
- Path to a yaml file containing the skipped tests in
|
||||
openstack-tempest-skiplist format
|
||||
required: True
|
||||
type: str
|
||||
job:
|
||||
description:
|
||||
- Name of the job to be used in the filter. Passing the job it will
|
||||
filter only tests that have the specified job in the jobs list.
|
||||
required: False
|
||||
type: str
|
||||
release:
|
||||
description:
|
||||
- Release name to be used in the filter. Default is set to 'master'
|
||||
required: False
|
||||
type: str
|
||||
deployment:
|
||||
description:
|
||||
- Type of deployment, right now is undercloud or overcloud. Default is
|
||||
set to 'overcloud'
|
||||
required: False
|
||||
type: str
|
||||
installer:
|
||||
description:
|
||||
- Type of installer. Right now it's just a string, but in the future
|
||||
might be specific keys
|
||||
required: False
|
||||
type: str
|
||||
'''
|
||||
|
||||
|
||||
EXAMPLES = '''
|
||||
- name: Get list of skipped tests
|
||||
list_skipped:
|
||||
yaml_file: /tmp/skipped.yaml
|
||||
job: tripleo-ci-centos-8-standalone
|
||||
release: master
|
||||
deployment: 'overcloud'
|
||||
installer: 'tripleo'
|
||||
'''
|
||||
|
||||
|
||||
RETURN = '''
|
||||
skipped_tests:
|
||||
description:
|
||||
- List of tests filtered
|
||||
returned: Always
|
||||
type: list
|
||||
sample: [
|
||||
"tempest.api.volume.test_volumes_snapshots.VolumesSnapshotTestJSON"
|
||||
]
|
||||
'''
|
||||
|
||||
|
||||
def run_module():
|
||||
module_args = dict(
|
||||
yaml_file=dict(type='str', required=True),
|
||||
job=dict(type='str', required=False, default=None),
|
||||
release=dict(type='str', required=False, default='master'),
|
||||
deployment=dict(type='str', required=False, default='overcloud'),
|
||||
installer=dict(type='str', required=False, default='tripleo')
|
||||
)
|
||||
|
||||
result = dict(
|
||||
changed=True,
|
||||
message='',
|
||||
skipped_tests=[]
|
||||
)
|
||||
|
||||
module = AnsibleModule(
|
||||
argument_spec=module_args
|
||||
)
|
||||
if not module.params['yaml_file']:
|
||||
module.fail_json(msg="A yaml file must be provided!")
|
||||
|
||||
cmd = ListSkippedYaml(__name__, sys.argv[1:])
|
||||
parser = cmd.get_parser(__name__)
|
||||
parser.file = module.params['yaml_file']
|
||||
parser.release = module.params['release']
|
||||
parser.job = module.params['job']
|
||||
parser.deployment = module.params['deployment']
|
||||
parser.installer = module.params['installer']
|
||||
|
||||
tests = cmd.take_action(parser)
|
||||
skipped_tests = [test[0] for test in tests[1]]
|
||||
|
||||
result.update({'skipped_tests': skipped_tests})
|
||||
module.exit_json(**result)
|
||||
|
||||
|
||||
def main():
|
||||
run_module()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@ -1,9 +0,0 @@
|
||||
---
|
||||
- name: List skipped tests
|
||||
list_skipped:
|
||||
yaml_file: "{{ list_skipped_yaml_file }}"
|
||||
release: "{{ list_skipped_release | default(omit) }}"
|
||||
job: "{{ list_skipped_job | default(omit) }}"
|
||||
deployment: "{{ list_skipped_deployment | default(omit) }}"
|
||||
installer: "{{ list_skipped_installer | default(omit) }}"
|
||||
register: tempest_skip_register
|
@ -1,268 +0,0 @@
|
||||
groups:
|
||||
- name: default
|
||||
tests:
|
||||
- smoke
|
||||
releases:
|
||||
- all
|
||||
- name: featureset001
|
||||
tests:
|
||||
- 'tempest.scenario.test_network_basic_ops.TestNetworkBasicOps'
|
||||
releases:
|
||||
- all
|
||||
- name: featureset001_periodic
|
||||
tests:
|
||||
- 'tempest.api'
|
||||
- 'tempest.scenario.test_network_basic_ops.TestNetworkBasicOps'
|
||||
releases:
|
||||
- all
|