Hello community,

here is the log from the commit of package python-novaclient for 
openSUSE:Factory checked in at 2020-10-26 16:15:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-novaclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-novaclient.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-novaclient"

Mon Oct 26 16:15:59 2020 rev:36 rq:841194 version:17.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-novaclient/python-novaclient.changes      
2020-06-05 20:14:53.610688845 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-novaclient.new.3463/python-novaclient.changes
    2020-10-26 16:16:44.814956051 +0100
@@ -1,0 +2,25 @@
+Fri Oct  9 19:15:51 UTC 2020 - cloud-de...@suse.de
+
+- update to version 17.2.1
+  - [Community goal] Update contributor documentation
+  - Bump default tox env from py37 to py38
+  - Use unittest.mock instead of third party mock
+  - Switch to newer openstackdocstheme and reno versions
+  - Switch legacy Zuul jobs to native Zuul v3 jobs
+  - use stevedore to load extensions
+  - Bump hacking min version to 3.0.1
+  - Add Python3 victoria unit tests
+  - Remove mock in lower-constraints.txt
+  - Remove Babel requirement
+  - Add link to PDF document
+  - Remove unused code
+  - Remove future imports
+  - doc: Update Testing document
+  - Add a cleanup for a server in a functional test
+  - zuul functional job: drop the custom playbooks
+  - Update master for stable/ussuri
+  - Add py38 package metadata
+  - Switch to using TOX_CONSTRAINTS_FILE
+  - migrate testing to ubuntu focal
+
+-------------------------------------------------------------------

Old:
----
  python-novaclient-17.0.0.tar.gz

New:
----
  python-novaclient-17.2.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-novaclient.spec ++++++
--- /var/tmp/diff_new_pack.m0fc5E/_old  2020-10-26 16:16:45.442956557 +0100
+++ /var/tmp/diff_new_pack.m0fc5E/_new  2020-10-26 16:16:45.446956559 +0100
@@ -17,12 +17,12 @@
 
 
 Name:           python-novaclient
-Version:        17.0.0
+Version:        17.2.1
 Release:        0
 Summary:        Python API and CLI for OpenStack Nova
 License:        Apache-2.0
 Group:          Development/Languages/Python
-Source0:        
https://files.pythonhosted.org/packages/source/p/python-novaclient/python-novaclient-17.0.0.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/p/python-novaclient/python-novaclient-17.2.1.tar.gz
 BuildRequires:  openssl
 BuildRequires:  openstack-macros
 BuildRequires:  python3-cinderclient
@@ -35,7 +35,6 @@
 BuildRequires:  python3-osprofiler
 BuildRequires:  python3-pbr >= 2.0.0
 BuildRequires:  python3-requests-mock
-BuildRequires:  python3-setuptools
 BuildRequires:  python3-stestr
 BuildRequires:  python3-testscenarios
 BuildRequires:  python3-testtools
@@ -50,7 +49,7 @@
 Summary:        Python API and CLI for OpenStack Nova
 Group:          Development/Languages/Python
 Requires:       openssl
-Requires:       python3-Babel >= 2.3.4
+Requires:       python3-Babel
 Requires:       python3-PrettyTable >= 0.7.2
 Requires:       python3-iso8601 >= 0.1.11
 Requires:       python3-keystoneauth1 >= 3.5.0
@@ -91,7 +90,7 @@
 %build
 %{py3_build}
 
-PBR_VERSION=17.0.0 %sphinx_build -b html -d doc/build/doctrees doc/source 
doc/build/html
+PBR_VERSION=17.2.1 %sphinx_build -b html -d doc/build/doctrees doc/source 
doc/build/html
 # Fix hidden-file-or-dir warnings
 rm -fr doc/build/html/.doctrees doc/build/html/.buildinfo
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.m0fc5E/_old  2020-10-26 16:16:45.478956585 +0100
+++ /var/tmp/diff_new_pack.m0fc5E/_new  2020-10-26 16:16:45.478956585 +0100
@@ -1,8 +1,8 @@
 <services>
   <service mode="disabled" name="renderspec">
-    <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/python-novaclient/python-novaclient.spec.j2</param>
+    <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/victoria/openstack/python-novaclient/python-novaclient.spec.j2</param>
     <param name="output-name">python-novaclient.spec</param>
-    <param 
name="requirements">https://opendev.org/openstack/python-novaclient/raw/branch/stable/ussuri/requirements.txt</param>
+    <param 
name="requirements">https://opendev.org/openstack/python-novaclient/raw/branch/stable/victoria/requirements.txt</param>
     <param name="changelog-email">cloud-de...@suse.de</param>
     <param name="changelog-provider">gh,openstack,python-novaclient</param>
   </service>

++++++ python-novaclient-17.0.0.tar.gz -> python-novaclient-17.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/.zuul.yaml 
new/python-novaclient-17.2.1/.zuul.yaml
--- old/python-novaclient-17.0.0/.zuul.yaml     2020-04-11 12:54:14.000000000 
+0200
+++ new/python-novaclient-17.2.1/.zuul.yaml     2020-09-10 11:55:42.000000000 
+0200
@@ -1,14 +1,14 @@
 - job:
-    # TODO(efried): Cut over to zuulv3
-    name: novaclient-dsvm-functional
-    parent: legacy-dsvm-base
-    run: playbooks/legacy/novaclient-dsvm-functional/run.yaml
-    post-run: playbooks/legacy/novaclient-dsvm-functional/post.yaml
+    name: python-novaclient-functional
+    parent: devstack-tox-functional
     timeout: 7200
     required-projects:
-      - openstack/devstack-gate
       - openstack/nova
       - openstack/python-novaclient
+    vars:
+      openrc_enable_export: true
+      devstack_localrc:
+        USE_PYTHON3: true
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*$
@@ -20,12 +20,12 @@
       - lib-forward-testing-python3
       - openstack-cover-jobs
       - openstack-lower-constraints-jobs
-      - openstack-python3-ussuri-jobs
+      - openstack-python3-victoria-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
     check:
       jobs:
-        - novaclient-dsvm-functional
+        - python-novaclient-functional
     gate:
       jobs:
-        - novaclient-dsvm-functional
+        - python-novaclient-functional
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/AUTHORS 
new/python-novaclient-17.2.1/AUTHORS
--- old/python-novaclient-17.0.0/AUTHORS        2020-04-11 12:55:18.000000000 
+0200
+++ new/python-novaclient-17.2.1/AUTHORS        2020-09-10 11:57:43.000000000 
+0200
@@ -230,6 +230,7 @@
 LiuNanke <nanke....@easystack.cn>
 Lorin Hochstein <lo...@isi.edu>
 Lorin Hochstein <lo...@nimbisservices.com>
+Luigi Toscano <ltosc...@redhat.com>
 Luong Anh Tuan <tua...@vn.fujitsu.com>
 Lvov Maxim <ml...@mirantis.com>
 M. David Bennett <mdavidbenn...@syntheticworks.com>
@@ -330,6 +331,7 @@
 Sean Dague <sean.da...@samsung.com>
 Sean Dague <s...@dague.net>
 Sean McCully <sean.mccu...@rackspace.com>
+Sean McGinnis <sean.mcgin...@gmail.com>
 Sen Yang <sen.y...@windriver.com>
 Sergey Lukjanov <slukja...@mirantis.com>
 Sergey Nikitin <sniki...@mirantis.com>
@@ -474,6 +476,7 @@
 ozg <ozg@ozg-GREATWALL-PC.(none)>
 pengyuesheng <pengyuesh...@gohighsec.com>
 qingszhao <zhao.daq...@99cloud.net>
+qiufossen <qiujunt...@inspur.com>
 rahulram <rahur...@cisco.com>
 raiesmh08 <raiesm...@gmail.com>
 rajiv.kumar <rajiv.ku...@nectechnologies.in>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/CONTRIBUTING.rst 
new/python-novaclient-17.2.1/CONTRIBUTING.rst
--- old/python-novaclient-17.0.0/CONTRIBUTING.rst       2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/CONTRIBUTING.rst       2020-09-10 
11:55:42.000000000 +0200
@@ -1,16 +1,19 @@
-If you would like to contribute to the development of OpenStack,
-you must follow the steps documented at:
+The source repository for this project can be found at:
 
-   https://docs.openstack.org/infra/manual/developers.html#development-workflow
+   https://opendev.org/openstack/python-novaclient
 
-Once those steps have been completed, changes to OpenStack
-should be submitted for review via the Gerrit tool, following
-the workflow documented at:
+Pull requests submitted through GitHub are not monitored.
 
-   https://docs.openstack.org/infra/manual/developers.html#development-workflow
+To start contributing to OpenStack, follow the steps in the contribution guide
+to set up and use Gerrit:
 
-Pull requests submitted through GitHub will be ignored.
+   
https://docs.openstack.org/contributors/code-and-documentation/quick-start.html
 
-Bugs should be filed on Launchpad, not GitHub:
+Bugs should be filed on Launchpad:
 
    https://bugs.launchpad.net/python-novaclient
+
+For more specific information about contributing to this repository, see the
+python-novaclient contributor guide:
+
+   
https://docs.openstack.org/python-novaclient/latest/contributor/contributing.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/ChangeLog 
new/python-novaclient-17.2.1/ChangeLog
--- old/python-novaclient-17.0.0/ChangeLog      2020-04-11 12:55:17.000000000 
+0200
+++ new/python-novaclient-17.2.1/ChangeLog      2020-09-10 11:57:43.000000000 
+0200
@@ -1,6 +1,38 @@
 CHANGES
 =======
 
+17.2.1
+------
+
+* zuul functional job: drop the custom playbooks
+* Remove unused code
+* Add a cleanup for a server in a functional test
+
+17.2.0
+------
+
+* migrate testing to ubuntu focal
+* Switch legacy Zuul jobs to native Zuul v3 jobs
+* use stevedore to load extensions
+
+17.1.0
+------
+
+* Remove Babel requirement
+* Add link to PDF document
+* Switch to newer openstackdocstheme and reno versions
+* Bump hacking min version to 3.0.1
+* Remove mock in lower-constraints.txt
+* Use unittest.mock instead of third party mock
+* Remove future imports
+* doc: Update Testing document
+* Bump default tox env from py37 to py38
+* Switch to using TOX\_CONSTRAINTS\_FILE
+* Add py38 package metadata
+* [Community goal] Update contributor documentation
+* Add Python3 victoria unit tests
+* Update master for stable/ussuri
+
 17.0.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/PKG-INFO 
new/python-novaclient-17.2.1/PKG-INFO
--- old/python-novaclient-17.0.0/PKG-INFO       2020-04-11 12:55:18.000000000 
+0200
+++ new/python-novaclient-17.2.1/PKG-INFO       2020-09-10 11:57:43.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: python-novaclient
-Version: 17.0.0
+Version: 17.2.1
 Summary: Client library for OpenStack Compute API
 Home-page: https://docs.openstack.org/python-novaclient/latest
 Author: OpenStack
@@ -61,6 +61,7 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/babel.cfg 
new/python-novaclient-17.2.1/babel.cfg
--- old/python-novaclient-17.0.0/babel.cfg      2020-04-11 12:54:14.000000000 
+0200
+++ new/python-novaclient-17.2.1/babel.cfg      1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-[python: **.py]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/bindep.txt 
new/python-novaclient-17.2.1/bindep.txt
--- old/python-novaclient-17.0.0/bindep.txt     2020-04-11 12:54:14.000000000 
+0200
+++ new/python-novaclient-17.2.1/bindep.txt     2020-09-10 11:55:42.000000000 
+0200
@@ -10,7 +10,7 @@
 libdbus-glib-1-dev [platform:dpkg]
 libffi-dev [platform:dpkg]
 libffi-devel [platform:rpm]
-libssl-dev [platform:ubuntu-xenial]
+libssl-dev [platform:ubuntu]
 libuuid-devel [platform:rpm]
 locales [platform:debian]
 python-dev [platform:dpkg]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/doc/requirements.txt 
new/python-novaclient-17.2.1/doc/requirements.txt
--- old/python-novaclient-17.0.0/doc/requirements.txt   2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/doc/requirements.txt   2020-09-10 
11:55:42.000000000 +0200
@@ -1,10 +1,9 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
-sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD
-openstackdocstheme>=1.30.0 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
+sphinx>=2.0.0,!=2.1.0 # BSD
+openstackdocstheme>=2.2.0 # Apache-2.0
+reno>=3.1.0 # Apache-2.0
 sphinxcontrib-apidoc>=0.2.0 # BSD
 
 # redirect tests in docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/doc/source/conf.py 
new/python-novaclient-17.2.1/doc/source/conf.py
--- old/python-novaclient-17.0.0/doc/source/conf.py     2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/doc/source/conf.py     2020-09-10 
11:55:42.000000000 +0200
@@ -36,10 +36,6 @@
 # The master toctree document.
 master_doc = 'index'
 
-# openstackdocstheme options
-repository_name = 'openstack/python-novaclient'
-bug_project = 'python-novaclient'
-bug_tag = 'doc'
 copyright = 'OpenStack Contributors'
 
 
@@ -70,10 +66,11 @@
 
 # -- Options for openstackdocstheme -------------------------------------------
 
-repository_name = 'openstack/python-novaclient'
-bug_project = 'python-novaclient'
-bug_tag = ''
-openstack_projects = [
+openstackdocs_repo_name = 'openstack/python-novaclient'
+openstackdocs_bug_project = 'python-novaclient'
+openstackdocs_bug_tag = ''
+openstackdocs_pdf_link = True
+openstackdocs_projects = [
     'keystoneauth',
     'nova',
     'os-client-config',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/doc/source/contributor/contributing.rst 
new/python-novaclient-17.2.1/doc/source/contributor/contributing.rst
--- old/python-novaclient-17.0.0/doc/source/contributor/contributing.rst        
1970-01-01 01:00:00.000000000 +0100
+++ new/python-novaclient-17.2.1/doc/source/contributor/contributing.rst        
2020-09-10 11:55:42.000000000 +0200
@@ -0,0 +1,52 @@
+============================
+So You Want to Contribute...
+============================
+
+For general information on contributing to OpenStack, please check out the
+`contributor guide <https://docs.openstack.org/contributors/>`_ to get started.
+It covers all the basics that are common to all OpenStack projects: the 
accounts
+you need, the basics of interacting with our Gerrit review system, how we
+communicate as a community, etc.
+
+Below will cover the more project specific information you need to get started
+with python-novaclient.
+
+Communication
+~~~~~~~~~~~~~
+
+Please refer `how-to-get-involved 
<https://docs.openstack.org/nova/latest/contributor/how-to-get-involved.html>`_.
+
+Contacting the Core Team
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+The overall structure of the Nova team including python-novaclient is
+documented on `the wiki <https://wiki.openstack.org/wiki/Nova#People>`_.
+
+New Feature Planning
+~~~~~~~~~~~~~~~~~~~~
+
+If you want to propose a new feature please read the
+`blueprints 
<https://docs.openstack.org/nova/latest/contributor/blueprints.html>`_ page.
+
+Task Tracking
+~~~~~~~~~~~~~
+
+We track our tasks in `Launchpad 
<https://bugs.launchpad.net/python-novaclient>`__.
+
+If you're looking for some smaller, easier work item to pick up and get started
+on, search for the 'low-hanging-fruit' tag.
+
+Reporting a Bug
+~~~~~~~~~~~~~~~
+
+You found an issue and want to make sure we are aware of it? You can do so on
+`Launchpad <https://bugs.launchpad.net/python-novaclient/+filebug>`__.
+More info about Launchpad usage can be found on `OpenStack docs page
+<https://docs.openstack.org/contributors/common/task-tracking.html#launchpad>`_.
+
+Getting Your Patch Merged
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+All changes proposed to the python-novaclient requires two ``Code-Review +2``
+votes from python-novaclient core reviewers before one of the core reviewers
+can approve patch by giving ``Workflow +1`` vote..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/doc/source/contributor/index.rst 
new/python-novaclient-17.2.1/doc/source/contributor/index.rst
--- old/python-novaclient-17.0.0/doc/source/contributor/index.rst       
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/doc/source/contributor/index.rst       
2020-09-10 11:55:42.000000000 +0200
@@ -2,14 +2,16 @@
  Contributor Guide
 ===================
 
-Code is hosted at `opendev.org`__. Submit bugs to the python-novaclient
-project on `Launchpad`__. Submit code to the `openstack/python-novaclient`
-project using `Gerrit`__.
+Basic Information
+=================
 
-__ https://opendev.org/openstack/python-novaclient
-__ https://bugs.launchpad.net/python-novaclient
-__ https://docs.openstack.org/infra/manual/developers.html#development-workflow
+.. toctree::
+   :maxdepth: 2
+
+   contributing
 
+Developer Guide
+===============
 .. toctree::
    :maxdepth: 2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/doc/source/contributor/testing.rst 
new/python-novaclient-17.2.1/doc/source/contributor/testing.rst
--- old/python-novaclient-17.0.0/doc/source/contributor/testing.rst     
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/doc/source/contributor/testing.rst     
2020-09-10 11:55:42.000000000 +0200
@@ -8,11 +8,11 @@
 ``tox -e pep8``
   Style guidelines enforcement.
 
-``tox -e py37``
-  Traditional unit testing (Python 3.7).
+``tox -e py38``
+  Traditional unit testing (Python 3.8).
 
 ``tox -e functional``
-  Live functional testing against an existing OpenStack instance. (Python 3.7)
+  Live functional testing against an existing OpenStack instance. (Python 3.8)
 
 ``tox -e cover``
   Generate a coverage report on unit testing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/lower-constraints.txt 
new/python-novaclient-17.2.1/lower-constraints.txt
--- old/python-novaclient-17.0.0/lower-constraints.txt  2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/lower-constraints.txt  2020-09-10 
11:55:42.000000000 +0200
@@ -4,7 +4,7 @@
 Babel==2.3.4
 bandit==1.4.0
 cachetools==2.0.0
-cffi==1.7.0
+cffi==1.14.0
 cliff==2.8.0
 cmd2==0.8.0
 contextlib2==0.4.0
@@ -24,7 +24,7 @@
 futurist==1.2.0
 gitdb==0.6.4
 GitPython==1.0.1
-greenlet==0.4.10
+greenlet==0.4.15
 hacking==1.1.0
 idna==2.6
 iso8601==0.1.11
@@ -36,9 +36,8 @@
 keystoneauth1==3.5.0
 kombu==4.0.0
 linecache2==1.0.0
-MarkupSafe==1.0
+MarkupSafe==1.1.1
 mccabe==0.2.1
-mock==2.0.0
 monotonic==0.6
 msgpack-python==0.4.0
 munch==2.1.0
@@ -83,7 +82,7 @@
 python-neutronclient==6.7.0
 python-subunit==1.0.0
 pytz==2013.6
-PyYAML==3.12
+PyYAML==3.13
 repoze.lru==0.7
 requests==2.14.2
 requests-mock==1.2.0
@@ -93,7 +92,7 @@
 simplejson==3.5.1
 smmap==0.9.0
 statsd==3.2.1
-stevedore==1.20.0
+stevedore==2.0.1
 tempest==17.1.0
 tenacity==3.2.1
 stestr==2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/novaclient/client.py 
new/python-novaclient-17.2.1/novaclient/client.py
--- old/python-novaclient-17.0.0/novaclient/client.py   2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/client.py   2020-09-10 
11:55:42.000000000 +0200
@@ -28,7 +28,7 @@
 from keystoneauth1 import identity
 from keystoneauth1 import session as ksession
 from oslo_utils import importutils
-import pkg_resources
+import stevedore
 
 import novaclient
 from novaclient import api_versions
@@ -176,12 +176,15 @@
             yield name, module
 
 
-def _discover_via_entry_points():
-    for ep in pkg_resources.iter_entry_points('novaclient.extension'):
-        name = ep.name
-        module = ep.load()
+def _make_discovery_manager():
+    # This function provides a place to mock out the entry point scan
+    return stevedore.ExtensionManager('novaclient.extension')
+
 
-        yield name, module
+def _discover_via_entry_points():
+    mgr = _make_discovery_manager()
+    for extension in mgr:
+        yield extension.name, extension.plugin
 
 
 def _get_client_class_and_version(version):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/novaclient/shell.py 
new/python-novaclient-17.2.1/novaclient/shell.py
--- old/python-novaclient-17.0.0/novaclient/shell.py    2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/shell.py    2020-09-10 
11:55:42.000000000 +0200
@@ -18,7 +18,6 @@
 Command-line interface to the OpenStack Nova API.
 """
 
-from __future__ import print_function
 import argparse
 import logging
 import sys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/functional/base.py 
new/python-novaclient-17.2.1/novaclient/tests/functional/base.py
--- old/python-novaclient-17.0.0/novaclient/tests/functional/base.py    
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/functional/base.py    
2020-09-10 11:55:42.000000000 +0200
@@ -206,6 +206,8 @@
             self.insecure = cloud_config.config['insecure']
         else:
             self.insecure = False
+        self.cacert = cloud_config.config['cacert']
+        self.cert = cloud_config.config['cert']
 
         auth = identity.Password(username=user,
                                  password=passwd,
@@ -213,7 +215,11 @@
                                  auth_url=auth_url,
                                  project_domain_id=self.project_domain_id,
                                  user_domain_id=user_domain_id)
-        session = ksession.Session(auth=auth, verify=(not self.insecure))
+        session = ksession.Session(
+            cert=self.cert,
+            auth=auth,
+            verify=(self.cacert or not self.insecure)
+        )
 
         self.client = self._get_novaclient(session)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/functional/hooks/post_test_hook.sh
 
new/python-novaclient-17.2.1/novaclient/tests/functional/hooks/post_test_hook.sh
--- 
old/python-novaclient-17.0.0/novaclient/tests/functional/hooks/post_test_hook.sh
    2020-04-11 12:54:14.000000000 +0200
+++ 
new/python-novaclient-17.2.1/novaclient/tests/functional/hooks/post_test_hook.sh
    1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-#!/bin/bash -xe
-
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-# This script is executed inside post_test_hook function in devstack gate.
-
-function generate_testr_results {
-    if [ -f .testrepository/0 ]; then
-        sudo .tox/functional/bin/testr last --subunit > 
$WORKSPACE/testrepository.subunit
-        sudo mv $WORKSPACE/testrepository.subunit 
$BASE/logs/testrepository.subunit
-        sudo /usr/os-testr-env/bin/subunit2html 
$BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
-        sudo gzip -9 $BASE/logs/testrepository.subunit
-        sudo gzip -9 $BASE/logs/testr_results.html
-        sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz 
$BASE/logs/testr_results.html.gz
-        sudo chmod a+r $BASE/logs/testrepository.subunit.gz 
$BASE/logs/testr_results.html.gz
-    fi
-}
-
-export NOVACLIENT_DIR="$BASE/new/python-novaclient"
-
-sudo chown -R $USER:stack $NOVACLIENT_DIR
-
-# Go to the novaclient dir
-cd $NOVACLIENT_DIR
-
-# Run tests
-echo "Running novaclient functional test suite"
-set +e
-# Preserve env for OS_ credentials
-sudo -E -H -u $USER tox -e ${TOX_ENV:-functional}
-EXIT_CODE=$?
-set -e
-
-# Collect and parse result
-generate_testr_results
-exit $EXIT_CODE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/functional/test_auth.py 
new/python-novaclient-17.2.1/novaclient/tests/functional/test_auth.py
--- old/python-novaclient-17.0.0/novaclient/tests/functional/test_auth.py       
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/functional/test_auth.py       
2020-09-10 11:55:42.000000000 +0200
@@ -10,6 +10,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
+import os
 from urllib import parse
 
 import tempest.lib.cli.base
@@ -28,14 +29,19 @@
                                  url.fragment))
 
     def nova_auth_with_password(self, action, identity_api_version):
-        flags = ('--os-username %s --os-tenant-name %s --os-password %s '
-                 '--os-auth-url %s --os-endpoint-type publicURL' % (
-                     self.cli_clients.username,
-                     self.cli_clients.tenant_name,
-                     self.cli_clients.password,
-                     self._get_url(identity_api_version)))
+        flags = (
+            f'--os-username {self.cli_clients.username} '
+            f'--os-tenant-name {self.cli_clients.tenant_name} '
+            f'--os-password {self.cli_clients.password} '
+            f'--os-auth-url {self._get_url(identity_api_version)} '
+            f'--os-endpoint-type publicURL'
+        )
+        if self.cacert:
+            flags = f'{flags} --os-cacert {self.cacert}'
+        if self.cert:
+            flags = f'{flags} --os-cert {self.cert}'
         if self.cli_clients.insecure:
-            flags += ' --insecure '
+            flags = f'{flags} --insecure'
 
         return tempest.lib.cli.base.execute(
             "nova", action, flags, cli_dir=self.cli_clients.cli_dir)
@@ -49,15 +55,37 @@
         if identity_api_version == "3":
             kw["project_domain_id"] = self.project_domain_id
         nova = client.Client("2", auth_token=token, auth_url=auth_url,
-                             project_name=self.project_name, **kw)
+                             project_name=self.project_name,
+                             cacert=self.cacert, cert=self.cert,
+                             **kw)
         nova.servers.list()
 
-        flags = ('--os-tenant-name %(project_name)s --os-token %(token)s '
-                 '--os-auth-url %(auth_url)s --os-endpoint-type publicURL'
-                 % {"project_name": self.project_name,
-                    "token": token, "auth_url": auth_url})
+        # NOTE(andreykurilin): tempest.lib.cli.base.execute doesn't allow to
+        #   pass 'env' argument to subprocess.Popen for overriding the current
+        #   process' environment.
+        #   When one of OS_AUTH_TYPE or OS_AUTH_PLUGIN environment variables
+        #   presents, keystoneauth1 can load the wrong auth plugin with wrong
+        #   expected cli arguments. To avoid this case, we need to modify
+        #   current environment.
+        # TODO(andreykurilin): tempest.lib.cli.base.execute is quite simple
+        #   method that can be replaced by subprocess.check_output direct call
+        #   with passing env argument to avoid modifying the current process
+        #   environment. or we probably can propose a change to tempest.
+        os.environ.pop("OS_AUTH_TYPE", None)
+        os.environ.pop("OS_AUTH_PLUGIN", None)
+
+        flags = (
+            f'--os-tenant-name {self.project_name} '
+            f'--os-token {token} '
+            f'--os-auth-url {auth_url} '
+            f'--os-endpoint-type publicURL'
+        )
+        if self.cacert:
+            flags = f'{flags} --os-cacert {self.cacert}'
+        if self.cert:
+            flags = f'{flags} --os-cert {self.cert}'
         if self.cli_clients.insecure:
-            flags += ' --insecure '
+            flags = f'{flags} --insecure'
 
         tempest.lib.cli.base.execute(
             "nova", "list", flags, cli_dir=self.cli_clients.cli_dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/functional/v2/test_instance_action.py
 
new/python-novaclient-17.2.1/novaclient/tests/functional/v2/test_instance_action.py
--- 
old/python-novaclient-17.0.0/novaclient/tests/functional/v2/test_instance_action.py
 2020-04-11 12:54:14.000000000 +0200
+++ 
new/python-novaclient-17.2.1/novaclient/tests/functional/v2/test_instance_action.py
 2020-09-10 11:55:42.000000000 +0200
@@ -136,6 +136,8 @@
         server = self.another_nova('boot --flavor %s --image %s --poll %s' %
                                    (self.flavor.name, self.image.name, name))
         server_id = self._get_value_from_the_table(server, 'id')
+        self.addCleanup(self.client.servers.delete, server_id)
+
         output = self.nova("instance-action-list %s" % server_id)
         request_id = self._get_column_value_from_single_row_table(
             output, "Request_ID")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/fixture_data/servers.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/fixture_data/servers.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/fixture_data/servers.py  
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/fixture_data/servers.py  
2020-09-10 11:55:42.000000000 +0200
@@ -271,28 +271,6 @@
                                status_code=204,
                                headers=self.json_headers)
 
-        def post_os_volumes_boot(request, context):
-            body = request.json()
-            assert (set(body.keys()) <=
-                    set(['server', 'os:scheduler_hints']))
-
-            fakes.assert_has_keys(body['server'],
-                                  required=['name', 'flavorRef'],
-                                  optional=['imageRef'])
-
-            data = body['server']
-
-            # Require one, and only one, of the keys for bdm
-            if 'block_device_mapping' not in data:
-                if 'block_device_mapping_v2' not in data:
-                    msg = "missing required keys: 'block_device_mapping'"
-                    raise AssertionError(msg)
-            elif 'block_device_mapping_v2' in data:
-                msg = "found extra keys: 'block_device_mapping'"
-                raise AssertionError(msg)
-
-            return {'server': self.server_9012}
-
         #
         # Server password
         #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_api_versions.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_api_versions.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_api_versions.py     
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_api_versions.py     
2020-09-10 11:55:42.000000000 +0200
@@ -13,7 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 import novaclient
 from novaclient import api_versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_client.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_client.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_client.py   
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_client.py   
2020-09-10 11:55:42.000000000 +0200
@@ -14,9 +14,9 @@
 #    under the License.
 
 import copy
+from unittest import mock
 
 from keystoneauth1 import session
-import mock
 from oslo_utils import uuidutils
 
 import novaclient.api_versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_crypto.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_crypto.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_crypto.py   
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_crypto.py   
2020-09-10 11:55:42.000000000 +0200
@@ -14,8 +14,7 @@
 
 import base64
 import subprocess
-
-import mock
+from unittest import mock
 
 from novaclient import crypto
 from novaclient.tests.unit import utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_discover.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_discover.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_discover.py 
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_discover.py 
2020-09-10 11:55:42.000000000 +0200
@@ -15,9 +15,10 @@
 
 import imp
 import inspect
+from unittest import mock
 
-import mock
-import pkg_resources
+import stevedore
+from stevedore import extension
 
 from novaclient import client
 from novaclient.tests.unit import utils
@@ -27,16 +28,20 @@
 
     def test_discover_via_entry_points(self):
 
-        def mock_iter_entry_points(group):
-            if group == 'novaclient.extension':
-                fake_ep = mock.Mock()
-                fake_ep.name = 'foo'
-                fake_ep.module = imp.new_module('foo')
-                fake_ep.load.return_value = fake_ep.module
-                return [fake_ep]
+        def mock_mgr():
+            fake_ep = mock.Mock()
+            fake_ep.name = 'foo'
+            fake_ep.module = imp.new_module('foo')
+            fake_ep.load.return_value = fake_ep.module
+            fake_ext = extension.Extension(
+                name='foo',
+                entry_point=fake_ep,
+                plugin=fake_ep.module,
+                obj=None,
+            )
+            return stevedore.ExtensionManager.make_test_instance([fake_ext])
 
-        @mock.patch.object(pkg_resources, 'iter_entry_points',
-                           mock_iter_entry_points)
+        @mock.patch.object(client, '_make_discovery_manager', mock_mgr)
         def test():
             for name, module in client._discover_via_entry_points():
                 self.assertEqual('foo', name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_shell.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_shell.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_shell.py    
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_shell.py    
2020-09-10 11:55:42.000000000 +0200
@@ -16,11 +16,11 @@
 import io
 import re
 import sys
+from unittest import mock
 
 import ddt
 import fixtures
 from keystoneauth1 import fixture
-import mock
 import prettytable
 import requests_mock
 from testtools import matchers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/test_utils.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/test_utils.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/test_utils.py    
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/test_utils.py    
2020-09-10 11:55:42.000000000 +0200
@@ -13,10 +13,9 @@
 
 import io
 import sys
+from unittest import mock
 from urllib import parse
 
-import mock
-
 from novaclient import base
 from novaclient import exceptions
 from novaclient.tests.unit import fakes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/utils.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/utils.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/utils.py 2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/utils.py 2020-09-10 
11:55:42.000000000 +0200
@@ -12,9 +12,9 @@
 #    under the License.
 
 import os
+from unittest import mock
 
 import fixtures
-import mock
 from oslo_serialization import jsonutils
 import requests
 from requests_mock.contrib import fixture as requests_mock_fixture
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/fakes.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/fakes.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/fakes.py      
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/fakes.py      
2020-09-10 11:55:42.000000000 +0200
@@ -17,9 +17,9 @@
 import copy
 import datetime
 import re
+from unittest import mock
 from urllib import parse
 
-import mock
 from oslo_utils import strutils
 
 import novaclient
@@ -593,24 +593,6 @@
         else:
             return (202, {}, self.get_servers_1234()[2])
 
-    def post_os_volumes_boot(self, body, **kw):
-        assert set(body.keys()) <= set(['server', 'os:scheduler_hints'])
-        fakes.assert_has_keys(
-            body['server'],
-            required=['name', 'flavorRef'],
-            optional=['imageRef'])
-
-        # Require one, and only one, of the keys for bdm
-        if 'block_device_mapping' not in body['server']:
-            if 'block_device_mapping_v2' not in body['server']:
-                raise AssertionError(
-                    "missing required keys: 'block_device_mapping'"
-                )
-        elif 'block_device_mapping_v2' in body['server']:
-            raise AssertionError("found extra keys: 'block_device_mapping'")
-
-        return (202, {}, self.get_servers_9012()[2])
-
     def get_servers_1234(self, **kw):
         server = self.get_servers_detail()[2]['servers'][0]
         if self.api_version >= api_versions.APIVersion('2.71'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_flavors.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_flavors.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_flavors.py       
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_flavors.py       
2020-09-10 11:55:42.000000000 +0200
@@ -13,7 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 from novaclient import api_versions
 from novaclient import base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_images.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_images.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_images.py        
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_images.py        
2020-09-10 11:55:42.000000000 +0200
@@ -11,7 +11,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 from novaclient.tests.unit.fixture_data import client
 from novaclient.tests.unit.fixture_data import images as data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_servers.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_servers.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_servers.py       
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_servers.py       
2020-09-10 11:55:42.000000000 +0200
@@ -16,8 +16,7 @@
 import io
 import os
 import tempfile
-
-import mock
+from unittest import mock
 
 from novaclient import api_versions
 from novaclient import exceptions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_shell.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_shell.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_shell.py 
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_shell.py 
2020-09-10 11:55:42.000000000 +0200
@@ -23,9 +23,9 @@
 import datetime
 import io
 import os
+from unittest import mock
 
 import fixtures
-import mock
 from oslo_utils import timeutils
 import testtools
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_versions.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_versions.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_versions.py      
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_versions.py      
2020-09-10 11:55:42.000000000 +0200
@@ -12,7 +12,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 from novaclient import api_versions
 from novaclient import exceptions as exc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_volumes.py 
new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_volumes.py
--- old/python-novaclient-17.0.0/novaclient/tests/unit/v2/test_volumes.py       
2020-04-11 12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/tests/unit/v2/test_volumes.py       
2020-09-10 11:55:42.000000000 +0200
@@ -13,7 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-import mock
+from unittest import mock
 
 from novaclient import api_versions
 from novaclient.tests.unit import utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/novaclient/v2/shell.py 
new/python-novaclient-17.2.1/novaclient/v2/shell.py
--- old/python-novaclient-17.0.0/novaclient/v2/shell.py 2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/novaclient/v2/shell.py 2020-09-10 
11:55:42.000000000 +0200
@@ -16,8 +16,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from __future__ import print_function
-
 import argparse
 import collections
 import datetime
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/playbooks/legacy/novaclient-dsvm-functional/post.yaml
 
new/python-novaclient-17.2.1/playbooks/legacy/novaclient-dsvm-functional/post.yaml
--- 
old/python-novaclient-17.0.0/playbooks/legacy/novaclient-dsvm-functional/post.yaml
  2020-04-11 12:54:14.000000000 +0200
+++ 
new/python-novaclient-17.2.1/playbooks/legacy/novaclient-dsvm-functional/post.yaml
  1970-01-01 01:00:00.000000000 +0100
@@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/playbooks/legacy/novaclient-dsvm-functional/run.yaml
 
new/python-novaclient-17.2.1/playbooks/legacy/novaclient-dsvm-functional/run.yaml
--- 
old/python-novaclient-17.0.0/playbooks/legacy/novaclient-dsvm-functional/run.yaml
   2020-04-11 12:54:14.000000000 +0200
+++ 
new/python-novaclient-17.2.1/playbooks/legacy/novaclient-dsvm-functional/run.yaml
   1970-01-01 01:00:00.000000000 +0100
@@ -1,54 +0,0 @@
-- hosts: all
-  name: novaclient-dsvm-functional job with identity v3 and neutron
-  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 DEVSTACK_GATE_USE_PYTHON3=true
-          export PYTHONUNBUFFERED=true
-          export BRANCH_OVERRIDE=default
-          export DEVSTACK_PROJECT_FROM_GIT=python-novaclient
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-          # This ensures that if we set override branch to something
-          # else, we still take python-novaclient from the zuul branch
-          # name. So override branch can be 'stable/mitaka' but we can
-          # test master changes.
-          uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] 
| tr '-' '_' | sed 's/[^A-Z_]//'`
-          export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH
-
-          function post_test_hook {
-              # Configure and run functional tests
-              
$BASE/new/python-novaclient/novaclient/tests/functional/hooks/post_test_hook.sh
-          }
-          export -f post_test_hook
-
-          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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/python_novaclient.egg-info/PKG-INFO 
new/python-novaclient-17.2.1/python_novaclient.egg-info/PKG-INFO
--- old/python-novaclient-17.0.0/python_novaclient.egg-info/PKG-INFO    
2020-04-11 12:55:18.000000000 +0200
+++ new/python-novaclient-17.2.1/python_novaclient.egg-info/PKG-INFO    
2020-09-10 11:57:43.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: python-novaclient
-Version: 17.0.0
+Version: 17.2.1
 Summary: Client library for OpenStack Compute API
 Home-page: https://docs.openstack.org/python-novaclient/latest
 Author: OpenStack
@@ -61,6 +61,7 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/python_novaclient.egg-info/SOURCES.txt 
new/python-novaclient-17.2.1/python_novaclient.egg-info/SOURCES.txt
--- old/python-novaclient-17.0.0/python_novaclient.egg-info/SOURCES.txt 
2020-04-11 12:55:18.000000000 +0200
+++ new/python-novaclient-17.2.1/python_novaclient.egg-info/SOURCES.txt 
2020-09-10 11:57:43.000000000 +0200
@@ -8,7 +8,6 @@
 HACKING.rst
 LICENSE
 README.rst
-babel.cfg
 bindep.txt
 lower-constraints.txt
 requirements.txt
@@ -22,6 +21,7 @@
 doc/source/_extra/.htaccess
 doc/source/cli/index.rst
 doc/source/cli/nova.rst
+doc/source/contributor/contributing.rst
 doc/source/contributor/deprecation-policy.rst
 doc/source/contributor/index.rst
 doc/source/contributor/microversions.rst
@@ -50,7 +50,6 @@
 novaclient/tests/functional/api/__init__.py
 novaclient/tests/functional/api/test_servers.py
 novaclient/tests/functional/hooks/check_resources.py
-novaclient/tests/functional/hooks/post_test_hook.sh
 novaclient/tests/functional/v2/__init__.py
 novaclient/tests/functional/v2/fake_crypto.py
 novaclient/tests/functional/v2/test_aggregates.py
@@ -171,8 +170,6 @@
 novaclient/v2/usage.py
 novaclient/v2/versions.py
 novaclient/v2/volumes.py
-playbooks/legacy/novaclient-dsvm-functional/post.yaml
-playbooks/legacy/novaclient-dsvm-functional/run.yaml
 python_novaclient.egg-info/PKG-INFO
 python_novaclient.egg-info/SOURCES.txt
 python_novaclient.egg-info/dependency_links.txt
@@ -312,6 +309,7 @@
 releasenotes/source/stein.rst
 releasenotes/source/train.rst
 releasenotes/source/unreleased.rst
+releasenotes/source/ussuri.rst
 releasenotes/source/_static/.placeholder
 releasenotes/source/_templates/.placeholder
 releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/python_novaclient.egg-info/pbr.json 
new/python-novaclient-17.2.1/python_novaclient.egg-info/pbr.json
--- old/python-novaclient-17.0.0/python_novaclient.egg-info/pbr.json    
2020-04-11 12:55:18.000000000 +0200
+++ new/python-novaclient-17.2.1/python_novaclient.egg-info/pbr.json    
2020-09-10 11:57:43.000000000 +0200
@@ -1 +1 @@
-{"git_version": "3ef5b695", "is_release": true}
\ No newline at end of file
+{"git_version": "553257d1", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/python_novaclient.egg-info/requires.txt 
new/python-novaclient-17.2.1/python_novaclient.egg-info/requires.txt
--- old/python-novaclient-17.0.0/python_novaclient.egg-info/requires.txt        
2020-04-11 12:55:18.000000000 +0200
+++ new/python-novaclient-17.2.1/python_novaclient.egg-info/requires.txt        
2020-09-10 11:57:43.000000000 +0200
@@ -1,9 +1,9 @@
-pbr!=2.1.0,>=2.0.0
-keystoneauth1>=3.5.0
+PrettyTable<0.8,>=0.7.2
 iso8601>=0.1.11
+keystoneauth1>=3.5.0
 oslo.i18n>=3.15.3
 oslo.serialization!=2.19.1,>=2.18.0
 oslo.utils>=3.33.0
-PrettyTable<0.8,>=0.7.2
+pbr!=2.1.0,>=2.0.0
 simplejson>=3.5.1
-Babel!=2.4.0,>=2.3.4
+stevedore>=2.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/releasenotes/source/index.rst 
new/python-novaclient-17.2.1/releasenotes/source/index.rst
--- old/python-novaclient-17.0.0/releasenotes/source/index.rst  2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/releasenotes/source/index.rst  2020-09-10 
11:55:42.000000000 +0200
@@ -8,6 +8,7 @@
    :maxdepth: 2
 
    unreleased
+   ussuri
    train
    stein
    rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.0.0/releasenotes/source/ussuri.rst 
new/python-novaclient-17.2.1/releasenotes/source/ussuri.rst
--- old/python-novaclient-17.0.0/releasenotes/source/ussuri.rst 1970-01-01 
01:00:00.000000000 +0100
+++ new/python-novaclient-17.2.1/releasenotes/source/ussuri.rst 2020-09-10 
11:55:42.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+Ussuri Series Release Notes
+===========================
+
+.. release-notes::
+   :branch: stable/ussuri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/requirements.txt 
new/python-novaclient-17.2.1/requirements.txt
--- old/python-novaclient-17.0.0/requirements.txt       2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/requirements.txt       2020-09-10 
11:55:42.000000000 +0200
@@ -9,4 +9,4 @@
 oslo.utils>=3.33.0 # Apache-2.0
 PrettyTable<0.8,>=0.7.2 # BSD
 simplejson>=3.5.1 # MIT
-Babel!=2.4.0,>=2.3.4 # BSD
+stevedore>=2.0.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/setup.cfg 
new/python-novaclient-17.2.1/setup.cfg
--- old/python-novaclient-17.0.0/setup.cfg      2020-04-11 12:55:18.000000000 
+0200
+++ new/python-novaclient-17.2.1/setup.cfg      2020-09-10 11:57:43.000000000 
+0200
@@ -20,6 +20,7 @@
        Programming Language :: Python :: 3
        Programming Language :: Python :: 3.6
        Programming Language :: Python :: 3.7
+       Programming Language :: Python :: 3.8
        Programming Language :: Python :: 3 :: Only
        Programming Language :: Python :: Implementation :: CPython
 
@@ -31,20 +32,6 @@
 console_scripts = 
        nova = novaclient.shell:main
 
-[compile_catalog]
-domain = novaclient
-directory = novaclient/locale
-
-[update_catalog]
-domain = novaclient
-output_dir = novaclient/locale
-input_file = novaclient/locale/novaclient.pot
-
-[extract_messages]
-keywords = _ gettext ngettext l_ lazy_gettext
-mapping_file = babel.cfg
-output_file = novaclient/locale/novaclient.pot
-
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/test-requirements.txt 
new/python-novaclient-17.2.1/test-requirements.txt
--- old/python-novaclient-17.0.0/test-requirements.txt  2020-04-11 
12:54:14.000000000 +0200
+++ new/python-novaclient-17.2.1/test-requirements.txt  2020-09-10 
11:55:42.000000000 +0200
@@ -1,13 +1,12 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-hacking>=3.0,<3.1.0 # Apache-2.0
+hacking>=3.0.1,<3.1.0 # Apache-2.0
 
 bandit>=1.1.0 # Apache-2.0
 coverage!=4.4,>=4.0 # Apache-2.0
 ddt>=1.0.1 # MIT
 fixtures>=3.0.0 # Apache-2.0/BSD
-mock>=2.0.0 # BSD
 python-keystoneclient>=3.8.0 # Apache-2.0
 python-cinderclient!=4.0.0,>=3.3.0 # Apache-2.0
 python-glanceclient>=2.8.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.0.0/tox.ini 
new/python-novaclient-17.2.1/tox.ini
--- old/python-novaclient-17.0.0/tox.ini        2020-04-11 12:54:14.000000000 
+0200
+++ new/python-novaclient-17.2.1/tox.ini        2020-09-10 11:55:42.000000000 
+0200
@@ -1,5 +1,5 @@
 [tox]
-envlist = py37,pep8,docs
+envlist = py38,pep8,docs
 minversion = 3.1
 skipsdist = true
 ignore_basepython_conflict = true
@@ -16,7 +16,7 @@
   ZUUL_CACHE_DIR
   REQUIREMENTS_PIP_LOCATION
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
 commands =
@@ -31,7 +31,7 @@
 
 [testenv:venv]
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/test-requirements.txt
   -r{toxinidir}/requirements.txt
   -r{toxinidir}/doc/requirements.txt
@@ -39,7 +39,7 @@
 
 [testenv:docs]
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/requirements.txt
   -r{toxinidir}/doc/requirements.txt
 commands =
@@ -58,14 +58,14 @@
 
 [testenv:releasenotes]
 deps =
-  
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+  
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
   -r{toxinidir}/requirements.txt
   -r{toxinidir}/doc/requirements.txt
 commands =
   sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html
 
 [testenv:functional]
-passenv = OS_NOVACLIENT_TEST_NETWORK
+passenv = OS_*
 commands =
   stestr --test-path=./novaclient/tests/functional run --concurrency=1 
{posargs}
   python novaclient/tests/functional/hooks/check_resources.py


Reply via email to