From 1aac4646f8158dcd0e1ddb3359fa4ac9e31ee6aa Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Wed, 30 Oct 2019 04:58:16 +0000 Subject: [PATCH] Drop python 2.7 support and testing OpenStack is dropping the py2.7 support in ussuri cycle. Vitrage is ready with python 3 and ok to drop the python 2.7 support. Complete discussion & schedule can be found in - http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html - https://etherpad.openstack.org/p/drop-python2-support Ussuri Communtiy-wide goal - https://review.opendev.org/#/c/691178/ Change-Id: Ia9339cc6397b680320909f98e4eb8aeb817ab5af --- .zuul.yaml | 59 -------------- .../legacy/vitrage-dsvm-api-py27/post.yaml | 80 ------------------- .../legacy/vitrage-dsvm-api-py27/run.yaml | 68 ---------------- .../vitrage-dsvm-datasources-py27/post.yaml | 80 ------------------- .../vitrage-dsvm-datasources-py27/run.yaml | 68 ---------------- .../legacy/vitrage-dsvm-mock-py27/post.yaml | 80 ------------------- .../legacy/vitrage-dsvm-mock-py27/run.yaml | 66 --------------- playbooks/legacy/vitrage-grenade/run.yaml | 1 + .../notes/drop-py-2-7-6add89c8aeb58399.yaml | 6 ++ requirements.txt | 1 - setup.cfg | 2 - tox.ini | 2 +- 12 files changed, 8 insertions(+), 505 deletions(-) delete mode 100644 playbooks/legacy/vitrage-dsvm-api-py27/post.yaml delete mode 100644 playbooks/legacy/vitrage-dsvm-api-py27/run.yaml delete mode 100644 playbooks/legacy/vitrage-dsvm-datasources-py27/post.yaml delete mode 100644 playbooks/legacy/vitrage-dsvm-datasources-py27/run.yaml delete mode 100644 playbooks/legacy/vitrage-dsvm-mock-py27/post.yaml delete mode 100644 playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml create mode 100644 releasenotes/notes/drop-py-2-7-6add89c8aeb58399.yaml diff --git a/.zuul.yaml b/.zuul.yaml index cafe084ec..2a9aec76c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,15 +2,11 @@ templates: - check-requirements - openstack-lower-constraints-jobs - - openstack-python-jobs - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 check: jobs: - - vitrage-dsvm-api-py27 - - vitrage-dsvm-datasources-py27 - - vitrage-dsvm-mock-py27 - vitrage-dsvm-api-py3 - vitrage-dsvm-datasources-py3 - vitrage-dsvm-mock-py3 @@ -18,30 +14,10 @@ gate: queue: vitrage jobs: - - vitrage-dsvm-api-py27 - - vitrage-dsvm-datasources-py27 - vitrage-dsvm-api-py3 - vitrage-dsvm-datasources-py3 - grenade-vitrage -- job: - name: vitrage-dsvm-api-py27 - parent: legacy-dsvm-base - run: playbooks/legacy/vitrage-dsvm-api-py27/run.yaml - post-run: playbooks/legacy/vitrage-dsvm-api-py27/post.yaml - timeout: 7800 - required-projects: - - openstack/devstack-gate - - openstack/aodh - - openstack/mistral - - openstack/python-vitrageclient - - openstack/vitrage - - openstack/vitrage-tempest-plugin - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - - job: name: vitrage-dsvm-api-py3 parent: legacy-dsvm-base @@ -60,24 +36,6 @@ - ^doc/.*$ - ^releasenotes/.*$ -- job: - name: vitrage-dsvm-datasources-py27 - parent: legacy-dsvm-base - run: playbooks/legacy/vitrage-dsvm-datasources-py27/run.yaml - post-run: playbooks/legacy/vitrage-dsvm-datasources-py27/post.yaml - timeout: 7800 - required-projects: - - openstack/devstack-gate - - openstack/aodh - - openstack/mistral - - openstack/python-vitrageclient - - openstack/vitrage - - openstack/vitrage-tempest-plugin - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - - job: name: vitrage-dsvm-datasources-py3 parent: legacy-dsvm-base @@ -96,23 +54,6 @@ - ^doc/.*$ - ^releasenotes/.*$ -- job: - name: vitrage-dsvm-mock-py27 - parent: legacy-dsvm-base - voting: false - run: playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml - post-run: playbooks/legacy/vitrage-dsvm-mock-py27/post.yaml - timeout: 7800 - required-projects: - - openstack/devstack-gate - - openstack/python-vitrageclient - - openstack/vitrage - - openstack/vitrage-tempest-plugin - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - - job: name: vitrage-dsvm-mock-py3 parent: legacy-dsvm-base diff --git a/playbooks/legacy/vitrage-dsvm-api-py27/post.yaml b/playbooks/legacy/vitrage-dsvm-api-py27/post.yaml deleted file mode 100644 index dac875340..000000000 --- a/playbooks/legacy/vitrage-dsvm-api-py27/post.yaml +++ /dev/null @@ -1,80 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*nose_results.html - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testr_results.html.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.testrepository/tmp* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testrepository.subunit.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}/tox' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.tox/*/log/* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/legacy/vitrage-dsvm-api-py27/run.yaml b/playbooks/legacy/vitrage-dsvm-api-py27/run.yaml deleted file mode 100644 index 452c7da30..000000000 --- a/playbooks/legacy/vitrage-dsvm-api-py27/run.yaml +++ /dev/null @@ -1,68 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-vitrage-dsvm-api-py27 from old job gate-vitrage-dsvm-api-py27-ubuntu-xenial - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - https://opendev.org \ - openstack/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PYTHONUNBUFFERED=true - export PROJECTS="openstack/python-vitrageclient $PROJECTS" - export PROJECTS="openstack/aodh $PROJECTS" - export PROJECTS="openstack/mistral $PROJECTS" - export PROJECTS="openstack/vitrage $PROJECTS" - export PROJECTS="openstack/vitrage-tempest-plugin $PROJECTS" - - export DEVSTACK_GATE_USE_PYTHON3=False - - function pre_test_hook { - source $BASE/new/vitrage-tempest-plugin/devstack/pre_test_hook.sh - } - export -f pre_test_hook - - function gate_hook { - source $BASE/new/vitrage/devstack/gate_hook.sh - } - export -f gate_hook - - function post_test_hook { - if [[ "$TEMPEST_VERSION" != "master" ]]; then - # use vitrage-tempest-plugin $TEMPEST_VERSION - # which is defined in the devstackgaterc file - - cd $BASE/new/vitrage-tempest-plugin/ - git_checkout_tag vitrage-tempest-plugin $TEMPEST_VERSION - fi - - source $BASE/new/vitrage-tempest-plugin/devstack/post_test_hook.sh 'api' - } - export -f post_test_hook - - export DEVSTACK_GATE_SETTINGS=/opt/stack/new/vitrage/devstack/devstackgaterc - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/playbooks/legacy/vitrage-dsvm-datasources-py27/post.yaml b/playbooks/legacy/vitrage-dsvm-datasources-py27/post.yaml deleted file mode 100644 index dac875340..000000000 --- a/playbooks/legacy/vitrage-dsvm-datasources-py27/post.yaml +++ /dev/null @@ -1,80 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*nose_results.html - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testr_results.html.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.testrepository/tmp* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testrepository.subunit.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}/tox' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.tox/*/log/* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/legacy/vitrage-dsvm-datasources-py27/run.yaml b/playbooks/legacy/vitrage-dsvm-datasources-py27/run.yaml deleted file mode 100644 index 9386b0d17..000000000 --- a/playbooks/legacy/vitrage-dsvm-datasources-py27/run.yaml +++ /dev/null @@ -1,68 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-vitrage-dsvm-datasources-py27 from old job gate-vitrage-dsvm-datasources-py27-ubuntu-xenial - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - https://opendev.org \ - openstack/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PYTHONUNBUFFERED=true - export PROJECTS="openstack/python-vitrageclient $PROJECTS" - export PROJECTS="openstack/aodh $PROJECTS" - export PROJECTS="openstack/mistral $PROJECTS" - export PROJECTS="openstack/vitrage $PROJECTS" - export PROJECTS="openstack/vitrage-tempest-plugin $PROJECTS" - - export DEVSTACK_GATE_USE_PYTHON3=False - - function pre_test_hook { - source $BASE/new/vitrage-tempest-plugin/devstack/pre_test_hook.sh - } - export -f pre_test_hook - - function gate_hook { - source $BASE/new/vitrage/devstack/gate_hook.sh - } - export -f gate_hook - - function post_test_hook { - if [[ "$TEMPEST_VERSION" != "master" ]]; then - # use vitrage-tempest-plugin $TEMPEST_VERSION - # which is defined in the devstackgaterc file - - cd $BASE/new/vitrage-tempest-plugin/ - git_checkout_tag vitrage-tempest-plugin $TEMPEST_VERSION - fi - - source $BASE/new/vitrage-tempest-plugin/devstack/post_test_hook.sh 'datasources' - } - export -f post_test_hook - - export DEVSTACK_GATE_SETTINGS=/opt/stack/new/vitrage/devstack/devstackgaterc - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/playbooks/legacy/vitrage-dsvm-mock-py27/post.yaml b/playbooks/legacy/vitrage-dsvm-mock-py27/post.yaml deleted file mode 100644 index dac875340..000000000 --- a/playbooks/legacy/vitrage-dsvm-mock-py27/post.yaml +++ /dev/null @@ -1,80 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*nose_results.html - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testr_results.html.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.testrepository/tmp* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=**/*testrepository.subunit.gz - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}/tox' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/.tox/*/log/* - - --include=*/ - - --exclude=* - - --prune-empty-dirs - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff --git a/playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml b/playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml deleted file mode 100644 index 8cd2ce008..000000000 --- a/playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml +++ /dev/null @@ -1,66 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-vitrage-dsvm-mock-py27 from old job gate-vitrage-dsvm-mock-py27-ubuntu-xenial - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -e - set -x - cat > clonemap.yaml << EOF - clonemap: - - name: openstack/devstack-gate - dest: devstack-gate - EOF - /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ - https://opendev.org \ - openstack/devstack-gate - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PYTHONUNBUFFERED=true - export PROJECTS="openstack/python-vitrageclient $PROJECTS" - export PROJECTS="openstack/vitrage $PROJECTS" - export PROJECTS="openstack/vitrage-tempest-plugin $PROJECTS" - - export DEVSTACK_GATE_USE_PYTHON3=False - - function pre_test_hook { - source $BASE/new/vitrage-tempest-plugin/devstack/pre_test_hook.sh - } - export -f pre_test_hook - - function gate_hook { - source $BASE/new/vitrage/devstack/gate_hook_mock.sh - } - export -f gate_hook - - function post_test_hook { - if [[ "$TEMPEST_VERSION" != "master" ]]; then - # use vitrage-tempest-plugin $TEMPEST_VERSION - # which is defined in the devstackgaterc file - - cd $BASE/new/vitrage-tempest-plugin/ - git_checkout_tag vitrage-tempest-plugin $TEMPEST_VERSION - fi - - source $BASE/new/vitrage-tempest-plugin/devstack/post_test_hook.sh 'mock' - } - export -f post_test_hook - - export DEVSTACK_GATE_SETTINGS=/opt/stack/new/vitrage/devstack/devstackgaterc - - cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - ./safe-devstack-vm-gate-wrap.sh - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/playbooks/legacy/vitrage-grenade/run.yaml b/playbooks/legacy/vitrage-grenade/run.yaml index 73ef2fe1e..dc339fcdb 100644 --- a/playbooks/legacy/vitrage-grenade/run.yaml +++ b/playbooks/legacy/vitrage-grenade/run.yaml @@ -31,6 +31,7 @@ [[local|localrc]] enable_plugin vitrage https://opendev.org/openstack/vitrage # TEMPEST_PLUGINS+=' ../' + USE_PYTHON3=True EOF executable: /bin/bash chdir: '{{ ansible_user_dir }}/workspace' diff --git a/releasenotes/notes/drop-py-2-7-6add89c8aeb58399.yaml b/releasenotes/notes/drop-py-2-7-6add89c8aeb58399.yaml new file mode 100644 index 000000000..28423eb56 --- /dev/null +++ b/releasenotes/notes/drop-py-2-7-6add89c8aeb58399.yaml @@ -0,0 +1,6 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. Last release of vitrage + to support py2.7 is OpenStack Train. The minimum version of Python now + supported by vitrage is Python 3.6. diff --git a/requirements.txt b/requirements.txt index 7f4d00bbe..5f4f85e34 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,7 +52,6 @@ eventlet!=0.20.1,>=0.20.0 # MIT six>=1.11.0 # MIT debtcollector>=1.19.0 # Apache-2.0 cotyledon>=1.6.8 # Apache-2.0 -futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD pytz>=2013.6 # MIT tenacity>=4.9.0 tooz>=1.58.0 # Apache-2.0 diff --git a/setup.cfg b/setup.cfg index 7a4d3b7ac..999e562b5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,8 +13,6 @@ classifier = License :: OSI Approved :: Apache Software License Operating System :: POSIX :: Linux Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 diff --git a/tox.ini b/tox.ini index aaf5d7a56..04d50bd42 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 2.3.1 -envlist = py27,py37,pep8 +envlist = py37,pep8 skipsdist = True [testenv]