From a9fbc452a6575d9427b0a362302296e7231d256f Mon Sep 17 00:00:00 2001 From: ArkadyKanevsky Date: Mon, 12 Apr 2021 18:02:12 -0500 Subject: [PATCH] Reorganize guidelines and improve consistency.sh Reorganize guidelines into previous_guideline directory and current_guideline that is softlink to the latest approved guideline. Cleaned up some tooling that hardwired where guidelines lived. Change-Id: Ia6be9ca6326718488ee5668df3806da5f76dc456 --- add-ons/dns_current_guideline | 1 + add-ons/orchestration_current_guideline | 1 + .../dns.2018.02.json | 0 .../dns.2018.11.json | 0 .../dns.2019.06.json | 0 .../dns.2019.11.json | 0 .../dns.2020.06.json | 0 .../dns.2020.11.json | 0 .../orchestration.2018.02.json | 0 .../orchestration.2018.11.json | 0 .../orchestration.2019.06.json | 0 .../orchestration.2019.11.json | 0 .../orchestration.2020.06.json | 0 .../orchestration.2020.11.json | 0 .../shared_file_system.2020.11.json | 0 add-ons/shared_file_system_current_guideline | 1 + current_guideline | 1 + .../2015.03.json | 0 .../2015.04.json | 0 .../2015.04}/procedure.rst | 0 .../2015.05.json | 0 .../2015.05}/procedure.rst | 0 .../2015.07.json | 0 .../2015.07}/procedure.rst | 0 .../2016.01.json | 0 .../2016.01}/procedure.rst | 0 .../2016.08.json | 0 .../2016.08}/procedure.rst | 0 .../2017.01.json | 0 .../2017.09.json | 0 .../2018.02.json | 0 .../2018.11.json | 0 .../2019.06.json | 0 .../2019.11.json | 0 .../2020.06.json | 0 .../2020.11.json | 0 tools/consistency.sh | 109 +++++++++++++++--- tox.ini | 94 ++++++++------- 38 files changed, 147 insertions(+), 60 deletions(-) create mode 120000 add-ons/dns_current_guideline create mode 120000 add-ons/orchestration_current_guideline rename add-ons/{ => previous_guidelines}/dns.2018.02.json (100%) rename add-ons/{ => previous_guidelines}/dns.2018.11.json (100%) rename add-ons/{ => previous_guidelines}/dns.2019.06.json (100%) rename add-ons/{ => previous_guidelines}/dns.2019.11.json (100%) rename add-ons/{ => previous_guidelines}/dns.2020.06.json (100%) rename add-ons/{ => previous_guidelines}/dns.2020.11.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2018.02.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2018.11.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2019.06.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2019.11.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2020.06.json (100%) rename add-ons/{ => previous_guidelines}/orchestration.2020.11.json (100%) rename add-ons/{ => previous_guidelines}/shared_file_system.2020.11.json (100%) create mode 120000 add-ons/shared_file_system_current_guideline create mode 120000 current_guideline rename 2015.03.json => previous_guidelines/2015.03.json (100%) rename 2015.04.json => previous_guidelines/2015.04.json (100%) rename {2015.04 => previous_guidelines/2015.04}/procedure.rst (100%) rename 2015.05.json => previous_guidelines/2015.05.json (100%) rename {2015.05 => previous_guidelines/2015.05}/procedure.rst (100%) rename 2015.07.json => previous_guidelines/2015.07.json (100%) rename {2015.07 => previous_guidelines/2015.07}/procedure.rst (100%) rename 2016.01.json => previous_guidelines/2016.01.json (100%) rename {2016.01 => previous_guidelines/2016.01}/procedure.rst (100%) rename 2016.08.json => previous_guidelines/2016.08.json (100%) rename {2016.08 => previous_guidelines/2016.08}/procedure.rst (100%) rename 2017.01.json => previous_guidelines/2017.01.json (100%) rename 2017.09.json => previous_guidelines/2017.09.json (100%) rename 2018.02.json => previous_guidelines/2018.02.json (100%) rename 2018.11.json => previous_guidelines/2018.11.json (100%) rename 2019.06.json => previous_guidelines/2019.06.json (100%) rename 2019.11.json => previous_guidelines/2019.11.json (100%) rename 2020.06.json => previous_guidelines/2020.06.json (100%) rename 2020.11.json => previous_guidelines/2020.11.json (100%) diff --git a/add-ons/dns_current_guideline b/add-ons/dns_current_guideline new file mode 120000 index 00000000..d62ba18d --- /dev/null +++ b/add-ons/dns_current_guideline @@ -0,0 +1 @@ +previous_guidelines/dns.2020.11.json \ No newline at end of file diff --git a/add-ons/orchestration_current_guideline b/add-ons/orchestration_current_guideline new file mode 120000 index 00000000..080b9703 --- /dev/null +++ b/add-ons/orchestration_current_guideline @@ -0,0 +1 @@ +previous_guidelines/orchestration.2020.11.json \ No newline at end of file diff --git a/add-ons/dns.2018.02.json b/add-ons/previous_guidelines/dns.2018.02.json similarity index 100% rename from add-ons/dns.2018.02.json rename to add-ons/previous_guidelines/dns.2018.02.json diff --git a/add-ons/dns.2018.11.json b/add-ons/previous_guidelines/dns.2018.11.json similarity index 100% rename from add-ons/dns.2018.11.json rename to add-ons/previous_guidelines/dns.2018.11.json diff --git a/add-ons/dns.2019.06.json b/add-ons/previous_guidelines/dns.2019.06.json similarity index 100% rename from add-ons/dns.2019.06.json rename to add-ons/previous_guidelines/dns.2019.06.json diff --git a/add-ons/dns.2019.11.json b/add-ons/previous_guidelines/dns.2019.11.json similarity index 100% rename from add-ons/dns.2019.11.json rename to add-ons/previous_guidelines/dns.2019.11.json diff --git a/add-ons/dns.2020.06.json b/add-ons/previous_guidelines/dns.2020.06.json similarity index 100% rename from add-ons/dns.2020.06.json rename to add-ons/previous_guidelines/dns.2020.06.json diff --git a/add-ons/dns.2020.11.json b/add-ons/previous_guidelines/dns.2020.11.json similarity index 100% rename from add-ons/dns.2020.11.json rename to add-ons/previous_guidelines/dns.2020.11.json diff --git a/add-ons/orchestration.2018.02.json b/add-ons/previous_guidelines/orchestration.2018.02.json similarity index 100% rename from add-ons/orchestration.2018.02.json rename to add-ons/previous_guidelines/orchestration.2018.02.json diff --git a/add-ons/orchestration.2018.11.json b/add-ons/previous_guidelines/orchestration.2018.11.json similarity index 100% rename from add-ons/orchestration.2018.11.json rename to add-ons/previous_guidelines/orchestration.2018.11.json diff --git a/add-ons/orchestration.2019.06.json b/add-ons/previous_guidelines/orchestration.2019.06.json similarity index 100% rename from add-ons/orchestration.2019.06.json rename to add-ons/previous_guidelines/orchestration.2019.06.json diff --git a/add-ons/orchestration.2019.11.json b/add-ons/previous_guidelines/orchestration.2019.11.json similarity index 100% rename from add-ons/orchestration.2019.11.json rename to add-ons/previous_guidelines/orchestration.2019.11.json diff --git a/add-ons/orchestration.2020.06.json b/add-ons/previous_guidelines/orchestration.2020.06.json similarity index 100% rename from add-ons/orchestration.2020.06.json rename to add-ons/previous_guidelines/orchestration.2020.06.json diff --git a/add-ons/orchestration.2020.11.json b/add-ons/previous_guidelines/orchestration.2020.11.json similarity index 100% rename from add-ons/orchestration.2020.11.json rename to add-ons/previous_guidelines/orchestration.2020.11.json diff --git a/add-ons/shared_file_system.2020.11.json b/add-ons/previous_guidelines/shared_file_system.2020.11.json similarity index 100% rename from add-ons/shared_file_system.2020.11.json rename to add-ons/previous_guidelines/shared_file_system.2020.11.json diff --git a/add-ons/shared_file_system_current_guideline b/add-ons/shared_file_system_current_guideline new file mode 120000 index 00000000..b76a92b7 --- /dev/null +++ b/add-ons/shared_file_system_current_guideline @@ -0,0 +1 @@ +previous_guidelines/shared_file_system.2020.11.json \ No newline at end of file diff --git a/current_guideline b/current_guideline new file mode 120000 index 00000000..1574ce9e --- /dev/null +++ b/current_guideline @@ -0,0 +1 @@ +previous_guidelines/2020.11.json \ No newline at end of file diff --git a/2015.03.json b/previous_guidelines/2015.03.json similarity index 100% rename from 2015.03.json rename to previous_guidelines/2015.03.json diff --git a/2015.04.json b/previous_guidelines/2015.04.json similarity index 100% rename from 2015.04.json rename to previous_guidelines/2015.04.json diff --git a/2015.04/procedure.rst b/previous_guidelines/2015.04/procedure.rst similarity index 100% rename from 2015.04/procedure.rst rename to previous_guidelines/2015.04/procedure.rst diff --git a/2015.05.json b/previous_guidelines/2015.05.json similarity index 100% rename from 2015.05.json rename to previous_guidelines/2015.05.json diff --git a/2015.05/procedure.rst b/previous_guidelines/2015.05/procedure.rst similarity index 100% rename from 2015.05/procedure.rst rename to previous_guidelines/2015.05/procedure.rst diff --git a/2015.07.json b/previous_guidelines/2015.07.json similarity index 100% rename from 2015.07.json rename to previous_guidelines/2015.07.json diff --git a/2015.07/procedure.rst b/previous_guidelines/2015.07/procedure.rst similarity index 100% rename from 2015.07/procedure.rst rename to previous_guidelines/2015.07/procedure.rst diff --git a/2016.01.json b/previous_guidelines/2016.01.json similarity index 100% rename from 2016.01.json rename to previous_guidelines/2016.01.json diff --git a/2016.01/procedure.rst b/previous_guidelines/2016.01/procedure.rst similarity index 100% rename from 2016.01/procedure.rst rename to previous_guidelines/2016.01/procedure.rst diff --git a/2016.08.json b/previous_guidelines/2016.08.json similarity index 100% rename from 2016.08.json rename to previous_guidelines/2016.08.json diff --git a/2016.08/procedure.rst b/previous_guidelines/2016.08/procedure.rst similarity index 100% rename from 2016.08/procedure.rst rename to previous_guidelines/2016.08/procedure.rst diff --git a/2017.01.json b/previous_guidelines/2017.01.json similarity index 100% rename from 2017.01.json rename to previous_guidelines/2017.01.json diff --git a/2017.09.json b/previous_guidelines/2017.09.json similarity index 100% rename from 2017.09.json rename to previous_guidelines/2017.09.json diff --git a/2018.02.json b/previous_guidelines/2018.02.json similarity index 100% rename from 2018.02.json rename to previous_guidelines/2018.02.json diff --git a/2018.11.json b/previous_guidelines/2018.11.json similarity index 100% rename from 2018.11.json rename to previous_guidelines/2018.11.json diff --git a/2019.06.json b/previous_guidelines/2019.06.json similarity index 100% rename from 2019.06.json rename to previous_guidelines/2019.06.json diff --git a/2019.11.json b/previous_guidelines/2019.11.json similarity index 100% rename from 2019.11.json rename to previous_guidelines/2019.11.json diff --git a/2020.06.json b/previous_guidelines/2020.06.json similarity index 100% rename from 2020.06.json rename to previous_guidelines/2020.06.json diff --git a/2020.11.json b/previous_guidelines/2020.11.json similarity index 100% rename from 2020.11.json rename to previous_guidelines/2020.11.json diff --git a/tools/consistency.sh b/tools/consistency.sh index 05b46b59..bdd71924 100755 --- a/tools/consistency.sh +++ b/tools/consistency.sh @@ -1,40 +1,113 @@ #!/bin/bash # This script will run consistency checks for Tempest tests against -# the three latest interoperability guidelines. It can run in two +# the current and next interoperability guidelines. It can run in two # modes. # -# * If no arguments are specified, the script will check out Tempest -# into a temporary directory, run the consistency checks, then delete -# temporary checkout. +# * If no arguments are specified, the script will check out Tempest and +# tempest plugins into a temporary directory, run the consistency checks, +# then delete temporary checkout. # # * If an argument is given, this script will assume that it is a # user checked-out repository and run the consistency checks against # that, and leave the directory unchanged on exit. This mode is useful -# for gate jobs and Tempest development. +# for gate jobs and Tempest/tempest plugin development. set -x -if [ ! $@ ]; then - TEMPESTDIR=$(mktemp -d) - git clone https://opendev.org/openstack/tempest $TEMPESTDIR - CLEANTEMPEST=cleantempest -else - TEMPESTDIR=${1} +# Prints help +function usage { + SCRIPT_NAME="basename ${BASH_SOURCE[0]}" + echo "Usage: ${SCRIPT_NAME} [OPTION]..." + echo "Consistency check" + echo "" + echo " -h Print this usage message" + echo " -t Local Tempest directory" + echo " -d Local designate-tempest-plugin directory" + echo " -o Local heat-tempest-plugin directory" + echo " -s Local manila-tempest-plugin directory" + echo " -c Set if tempest and plugins directory should be removed after" + echo " the consistency check" + exit 1 +} + +while getopts t:d:o:s:ch FLAG; do + case ${FLAG} in + t) + TEMPESTDIR=${OPTARG} + ;; + d) + DNSDIR=${OPTARG} + ;; + o) + ORCHESTRATIONDIR=${OPTARG} + ;; + s) + SFSDIR=${OPTARG} + ;; + c) + CLEANTEMPEST=true + ;; + h) #show help + usage + ;; + \?) #unrecognized option - show help + echo -e \\n"Option -$OPTARG not allowed." + usage + ;; + esac +done + +# check if a local directory was given (for Tempest or one of the plugins), +# if not, create a temp dir and clone the project there +if [[ -z $TEMPESTDIR ]]; then + TEMPESTDIR=$(mktemp -d) + git clone https://opendev.org/openstack/tempest $TEMPESTDIR +fi +if [[ -z $DNSDIR ]]; then + DNSDIR=$(mktemp -d) + git clone https://opendev.org/openstack/designate-tempest-plugin $DNSDIR +fi +if [[ -z $ORCHESTRATIONDIR ]]; then + ORCHESTRATIONDIR=$(mktemp -d) + git clone https://opendev.org/openstack/heat-tempest-plugin $ORCHESTRATIONDIR +fi +if [[ -z $SFSDIR ]]; then + SFSDIR=$(mktemp -d) + git clone https://opendev.org/openstack/manila-tempest-plugin $SFSDIR fi -PYTHONPATH=$TEMPESTDIR python ./tools/checktests.py --guideline next.json + +export PYTHONPATH=$TEMPESTDIR:$DNSDIR:$ORCHESTRATIONDIR:$SFSDIR + +python3 ./tools/checktests.py --guideline next.json exit_1=$? +# TODO(kopecmartin) consistency check is commented out temporarily while we fix +# inconsistency issues in the follow-up patches +# python3 ./tools/checktests.py --guideline add-ons/dns.next.json --testlib designate_tempest_plugin +# exit_2=$? +# python3 ./tools/checktests.py --guideline add-ons/orchestration.next.json --testlib heat_tempest_plugin +# exit_3=$? +# python3 ./tools/checktests.py --guideline add-ons/shared_file_system.next.json --testlib manila_tempest_tests +# exit_4=$? -PYTHONPATH=$TEMPESTDIR python ./tools/checktests.py --guideline 2018.02.json -exit_2=$? +python3 ./tools/checktests.py --guideline current_guideline +exit_5=$? +# python3 ./tools/checktests.py --guideline add-ons/dns_current_guideline --testlib designate_tempest_plugin +# exit_6=$? +# python3 ./tools/checktests.py --guideline add-ons/orchestration_current_guideline --testlib heat_tempest_plugin +# exit_7=$? +# python3 ./tools/checktests.py --guideline add-ons/shared_file_system_current_guideline --testlib manila_tempest_tests +# exit_8=$? -PYTHONPATH=$TEMPESTDIR python ./tools/checktests.py --guideline 2018.11.json -exit_3=$? -if [[ ! -z "${CLEANTEMPEST}" ]]; then +if [[ "${CLEANTEMPEST}" ]]; then rm -rf $TEMPESTDIR + rm -rf $DNSDIR + rm -rf $ORCHESTRATIONDIR + rm -rf $SFSDIR fi -! (( $exit_1 || $exit_2 || $exit_3 )) +# ! (( $exit_1 || $exit_2 || $exit_3 || $exit_4 || $exit_5 || $exit_6 || $exit_7 || $exit_8 )) +! (( $exit_1 || $exit_5 )) diff --git a/tox.ini b/tox.ini index 4f6f1964..e7f31b03 100644 --- a/tox.ini +++ b/tox.ini @@ -45,63 +45,73 @@ exclude = .venv,.git,.tox,doc,conf.py [testenv:jsonlint] commands= jsonlint -s next.json - jsonlint -s 2015.07.json - jsonlint -s 2016.01.json - jsonlint -s 2016.08.json - jsonlint -s 2017.01.json - jsonlint -s 2017.09.json - jsonlint -s 2018.02.json - jsonlint -s 2018.11.json - jsonlint -s 2019.06.json - jsonlint -s 2019.11.json - jsonlint -s 2020.06.json - jsonlint -s 2020.11.json + jsonlint -s previous_guidelines/2015.07.json + jsonlint -s previous_guidelines/2016.01.json + jsonlint -s previous_guidelines/2016.08.json + jsonlint -s previous_guidelines/2017.01.json + jsonlint -s previous_guidelines/2017.09.json + jsonlint -s previous_guidelines/2018.02.json + jsonlint -s previous_guidelines/2018.11.json + jsonlint -s previous_guidelines/2019.06.json + jsonlint -s previous_guidelines/2019.11.json + jsonlint -s previous_guidelines/2020.06.json + jsonlint -s previous_guidelines/2020.11.json + jsonlint -s current_guideline jsonlint -s doc/source/schema/1.5.json jsonlint -s doc/source/schema/1.6.json jsonlint -s doc/source/schema/2.0.json jsonlint -s doc/source/schema/next.2.0.json jsonlint -s add-ons/dns.next.json jsonlint -s add-ons/orchestration.next.json - jsonlint -s add-ons/dns.2018.02.json - jsonlint -s add-ons/dns.2019.06.json - jsonlint -s add-ons/dns.2019.11.json - jsonlint -s add-ons/dns.2020.06.json - jsonlint -s add-ons/dns.2020.11.json - jsonlint -s add-ons/orchestration.2018.02.json - jsonlint -s add-ons/orchestration.2019.06.json - jsonlint -s add-ons/orchestration.2019.11.json - jsonlint -s add-ons/orchestration.2020.06.json - jsonlint -s add-ons/orchestration.2020.11.json + jsonlint -s add-ons/previous_guidelines/dns.2018.02.json + jsonlint -s add-ons/previous_guidelines/dns.2019.06.json + jsonlint -s add-ons/previous_guidelines/dns.2019.11.json + jsonlint -s add-ons/previous_guidelines/dns.2020.06.json + jsonlint -s add-ons/previous_guidelines/dns.2020.11.json + jsonlint -s add-ons/previous_guidelines/orchestration.2018.02.json + jsonlint -s add-ons/previous_guidelines/orchestration.2019.06.json + jsonlint -s add-ons/previous_guidelines/orchestration.2019.11.json + jsonlint -s add-ons/previous_guidelines/orchestration.2020.06.json + jsonlint -s add-ons/previous_guidelines/orchestration.2020.11.json + jsonlint -s add-ons/previous_guidelines/shared_file_system.2020.11.json jsonlint -s add-ons/shared_file_system.next.json + jsonlint -s add-ons/dns_current_guideline + jsonlint -s add-ons/orchestration_current_guideline + jsonlint -s add-ons/shared_file_system_current_guideline [testenv:jsonschema] commands= jsonschema doc/source/schema/2.0.json -i next.json - jsonschema doc/source/schema/1.5.json -i 2015.07.json - jsonschema doc/source/schema/1.5.json -i 2016.01.json - jsonschema doc/source/schema/1.6.json -i 2016.08.json - jsonschema doc/source/schema/1.6.json -i 2017.01.json - jsonschema doc/source/schema/1.6.json -i 2017.09.json - jsonschema doc/source/schema/2.0.json -i 2018.02.json - jsonschema doc/source/schema/2.0.json -i 2018.11.json - jsonschema doc/source/schema/2.0.json -i 2019.06.json - jsonschema doc/source/schema/2.0.json -i 2019.11.json - jsonschema doc/source/schema/2.0.json -i 2020.06.json - jsonschema doc/source/schema/2.0.json -i 2020.11.json + jsonschema doc/source/schema/1.5.json -i previous_guidelines/2015.07.json + jsonschema doc/source/schema/1.5.json -i previous_guidelines/2016.01.json + jsonschema doc/source/schema/1.6.json -i previous_guidelines/2016.08.json + jsonschema doc/source/schema/1.6.json -i previous_guidelines/2017.01.json + jsonschema doc/source/schema/1.6.json -i previous_guidelines/2017.09.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2018.02.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2018.11.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2019.06.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2019.11.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2020.06.json + jsonschema doc/source/schema/2.0.json -i previous_guidelines/2020.11.json + jsonschema doc/source/schema/2.0.json -i current_guideline jsonschema doc/source/schema/2.0.json -i doc/source/schema/next.2.0.json jsonschema doc/source/schema/2.0.json -i add-ons/dns.next.json jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.next.json - jsonschema doc/source/schema/2.0.json -i add-ons/dns.2018.02.json - jsonschema doc/source/schema/2.0.json -i add-ons/dns.2019.06.json - jsonschema doc/source/schema/2.0.json -i add-ons/dns.2019.11.json - jsonschema doc/source/schema/2.0.json -i add-ons/dns.2020.06.json - jsonschema doc/source/schema/2.0.json -i add-ons/dns.2020.11.json - jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.2018.02.json - jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.2019.06.json - jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.2019.11.json - jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.2020.06.json - jsonschema doc/source/schema/2.0.json -i add-ons/orchestration.2020.11.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/dns.2018.02.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/dns.2019.06.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/dns.2019.11.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/dns.2020.06.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/dns.2020.11.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/orchestration.2018.02.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/orchestration.2019.06.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/orchestration.2019.11.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/orchestration.2020.06.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/orchestration.2020.11.json + jsonschema doc/source/schema/2.0.json -i add-ons/previous_guidelines/shared_file_system.2020.11.json jsonschema doc/source/schema/2.0.json -i add-ons/shared_file_system.next.json + jsonschema doc/source/schema/2.0.json -i add-ons/dns_current_guideline + jsonschema doc/source/schema/2.0.json -i add-ons/orchestration_current_guideline + jsonschema doc/source/schema/2.0.json -i add-ons/shared_file_system_current_guideline [testenv:consistency] commands=