Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-novaclient for 
openSUSE:Factory checked in at 2022-05-25 20:34:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-novaclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-novaclient.new.2254 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-novaclient"

Wed May 25 20:34:25 2022 rev:39 rq:979065 version:18.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-novaclient/python-novaclient.changes      
2021-10-27 22:21:20.971203084 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-novaclient.new.2254/python-novaclient.changes
    2022-05-25 20:34:40.224236700 +0200
@@ -1,0 +2,19 @@
+Tue May 24 20:57:03 UTC 2022 - [email protected]
+
+- update to version 18.0.0
+  - Remove USE_PYTHON3 in .zuul.yaml
+  - Drop lower-constraints.txt and its testing
+  - Update master for stable/xena
+  - Update python classifier as per testing runtime
+  - Add Python3 yoga unit tests
+  - Update master for stable/yoga
+  - docs: Update docs to reflect deprecation status
+  - Remove unnecessary packages in bindep.txt
+  - Updating python testing classifier as per Yoga testing runtime
+  - Fix check job failures
+  - Update pre-commit hook, hacking versions
+  - Add openssl in bindep.txt
+  - Add Python3 zed unit tests
+  - Deprecate nova CLI
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ python-novaclient.spec ++++++
--- /var/tmp/diff_new_pack.jpRW6v/_old  2022-05-25 20:34:41.028237821 +0200
+++ /var/tmp/diff_new_pack.jpRW6v/_new  2022-05-25 20:34:41.032237827 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-novaclient
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
 
 
 Name:           python-novaclient
-Version:        17.6.0
+Version:        18.0.0
 Release:        0
 Epoch:          0
 Summary:        Python API and CLI for OpenStack Nova
 License:        Apache-2.0
 Group:          Development/Languages/Python
 URL:            https://docs.openstack.org/python-novaclient
-Source0:        
https://files.pythonhosted.org/packages/source/p/python-novaclient/python-novaclient-17.6.0.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/p/python-novaclient/python-novaclient-18.0.0.tar.gz
 BuildRequires:  openssl
 BuildRequires:  openstack-macros
 BuildRequires:  python3-cinderclient
@@ -32,7 +32,6 @@
 BuildRequires:  python3-fixtures
 BuildRequires:  python3-glanceclient
 BuildRequires:  python3-keystoneclient
-BuildRequires:  python3-mock
 BuildRequires:  python3-os-client-config
 BuildRequires:  python3-osprofiler
 BuildRequires:  python3-pbr >= 2.0.0
@@ -59,7 +58,6 @@
 Requires:       python3-oslo.utils >= 3.33.0
 Requires:       python3-pbr >= 2.0.0
 Requires:       python3-simplejson
-Requires:       python3-six
 %if 0%{?suse_version}
 Obsoletes:      python2-novaclient < 16.0.0
 %endif
@@ -91,7 +89,7 @@
 %build
 %{py3_build}
 
-PBR_VERSION=17.6.0 %sphinx_build -b html -d doc/build/doctrees doc/source 
doc/build/html
+PBR_VERSION=18.0.0 %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.jpRW6v/_old  2022-05-25 20:34:41.076237888 +0200
+++ /var/tmp/diff_new_pack.jpRW6v/_new  2022-05-25 20:34:41.080237894 +0200
@@ -2,7 +2,7 @@
   <service mode="disabled" name="renderspec">
     <param 
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/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/xena/requirements.txt</param>
+    <param 
name="requirements">https://opendev.org/openstack/python-novaclient/raw/branch/master/requirements.txt</param>
     <param name="changelog-email">[email protected]</param>
     <param name="changelog-provider">gh,openstack,python-novaclient</param>
   </service>

++++++ python-novaclient-17.6.0.tar.gz -> python-novaclient-18.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/.pre-commit-config.yaml 
new/python-novaclient-18.0.0/.pre-commit-config.yaml
--- old/python-novaclient-17.6.0/.pre-commit-config.yaml        2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/.pre-commit-config.yaml        2022-05-20 
22:24:31.000000000 +0200
@@ -4,7 +4,7 @@
   python: python3
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v4.0.1
+    rev: v4.1.0
     hooks:
       - id: trailing-whitespace
       - id: mixed-line-ending
@@ -16,7 +16,7 @@
       - id: check-yaml
         files: .*\.(yaml|yml)$
   - repo: https://github.com/Lucas-C/pre-commit-hooks
-    rev: v1.1.10
+    rev: v1.1.13
     hooks:
       - id: remove-tabs
         exclude: '.*\.(svg)$'
@@ -25,7 +25,7 @@
       - id: flake8
         name: flake8
         additional_dependencies:
-          - hacking>=3.0.1,<3.1.0
+          - hacking~=4.1.0
         language: python
         entry: flake8
         files: '^.*\.py$'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/.zuul.yaml 
new/python-novaclient-18.0.0/.zuul.yaml
--- old/python-novaclient-17.6.0/.zuul.yaml     2021-09-03 12:18:38.000000000 
+0200
+++ new/python-novaclient-18.0.0/.zuul.yaml     2022-05-20 22:24:31.000000000 
+0200
@@ -8,7 +8,7 @@
     vars:
       openrc_enable_export: true
       devstack_localrc:
-        USE_PYTHON3: true
+        KEYSTONE_ADMIN_ENDPOINT: true
     irrelevant-files:
       - ^.*\.rst$
       - ^doc/.*$
@@ -19,8 +19,7 @@
       - check-requirements
       - lib-forward-testing-python3
       - openstack-cover-jobs
-      - openstack-lower-constraints-jobs
-      - openstack-python3-xena-jobs
+      - openstack-python3-zed-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
     check:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/ChangeLog 
new/python-novaclient-18.0.0/ChangeLog
--- old/python-novaclient-17.6.0/ChangeLog      2021-09-03 12:19:08.000000000 
+0200
+++ new/python-novaclient-18.0.0/ChangeLog      2022-05-20 22:25:00.000000000 
+0200
@@ -1,6 +1,28 @@
 CHANGES
 =======
 
+18.0.0
+------
+
+* Drop lower-constraints.txt and its testing
+* Update python classifier as per testing runtime
+* Remove unnecessary packages in bindep.txt
+* Add openssl in bindep.txt
+* Add Python3 zed unit tests
+* Update pre-commit hook, hacking versions
+* docs: Update docs to reflect deprecation status
+* Deprecate nova CLI
+* Remove USE\_PYTHON3 in .zuul.yaml
+* Update master for stable/yoga
+
+17.7.0
+------
+
+* Updating python testing classifier as per Yoga testing runtime
+* Fix check job failures
+* Add Python3 yoga unit tests
+* Update master for stable/xena
+
 17.6.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/PKG-INFO 
new/python-novaclient-18.0.0/PKG-INFO
--- old/python-novaclient-17.6.0/PKG-INFO       2021-09-03 12:19:08.998951000 
+0200
+++ new/python-novaclient-18.0.0/PKG-INFO       2022-05-20 22:25:00.763003000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: python-novaclient
-Version: 17.6.0
+Version: 18.0.0
 Summary: Client library for OpenStack Compute API
 Home-page: https://docs.openstack.org/python-novaclient/latest
 Author: OpenStack
@@ -24,8 +24,8 @@
             :alt: Latest Version
         
         This is a client for the OpenStack Compute API. It provides a Python 
API (the
-        ``novaclient`` module) and a command-line script (``nova``). Each 
implements
-        100% of the OpenStack Compute API.
+        ``novaclient`` module) and a deprecated command-line script 
(``nova``). The
+        Python API implements 100% of the OpenStack Compute API.
         
         * License: Apache License, Version 2.0
         * `PyPi`_ - package installation
@@ -59,9 +59,8 @@
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 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.9
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.6
+Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/README.rst 
new/python-novaclient-18.0.0/README.rst
--- old/python-novaclient-17.6.0/README.rst     2021-09-03 12:18:38.000000000 
+0200
+++ new/python-novaclient-18.0.0/README.rst     2022-05-20 22:24:31.000000000 
+0200
@@ -16,8 +16,8 @@
     :alt: Latest Version
 
 This is a client for the OpenStack Compute API. It provides a Python API (the
-``novaclient`` module) and a command-line script (``nova``). Each implements
-100% of the OpenStack Compute API.
+``novaclient`` module) and a deprecated command-line script (``nova``). The
+Python API implements 100% of the OpenStack Compute API.
 
 * License: Apache License, Version 2.0
 * `PyPi`_ - package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/bindep.txt 
new/python-novaclient-18.0.0/bindep.txt
--- old/python-novaclient-17.6.0/bindep.txt     2021-09-03 12:18:38.000000000 
+0200
+++ new/python-novaclient-18.0.0/bindep.txt     2022-05-20 22:24:31.000000000 
+0200
@@ -13,12 +13,8 @@
 libssl-dev [platform:ubuntu]
 libuuid-devel [platform:rpm]
 locales [platform:debian]
-python-dev [platform:dpkg]
-python-devel [platform:rpm]
+openssl
 python3-all-dev [platform:ubuntu !platform:ubuntu-precise]
 python3-dev [platform:dpkg]
 python3-devel [platform:fedora]
-python3.4 [platform:ubuntu-trusty]
-python3.5 [platform:ubuntu-xenial]
-python34-devel [platform:centos]
 uuid-dev [platform:dpkg]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/doc/source/cli/nova.rst 
new/python-novaclient-18.0.0/doc/source/cli/nova.rst
--- old/python-novaclient-17.6.0/doc/source/cli/nova.rst        2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/doc/source/cli/nova.rst        2022-05-20 
22:24:31.000000000 +0200
@@ -11,12 +11,11 @@
 
    $ nova help COMMAND
 
-.. note:: Over time, command line functionality will be phased out
-          of the ``nova`` CLI and into the ``openstack`` CLI. Using
-          the ``openstack`` client where possible is preferred but
-          there is not full parity yet for all of the ``nova`` commands.
-          For information on using the ``openstack`` CLI, see
-          :python-openstackclient-doc:`OpenStackClient <>`.
+.. deprecated:: 17.8.0
+
+    The ``nova`` CLI has been deprecated in favour of the unified
+    ``openstack`` CLI. For information on using the ``openstack`` CLI, see
+    :python-openstackclient-doc:`OpenStackClient <>`.
 
 .. _nova_command_usage:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/doc/source/contributor/contributing.rst 
new/python-novaclient-18.0.0/doc/source/contributor/contributing.rst
--- old/python-novaclient-17.6.0/doc/source/contributor/contributing.rst        
2021-09-03 12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/doc/source/contributor/contributing.rst        
2022-05-20 22:24:31.000000000 +0200
@@ -11,6 +11,12 @@
 Below will cover the more project specific information you need to get started
 with python-novaclient.
 
+.. important::
+
+    The ``nova`` CLI has been deprecated in favour of the unified ``openstack``
+    CLI. Changes to the Python bindings are still welcome, however, no further
+    changes should be made to the shell.
+
 Communication
 ~~~~~~~~~~~~~
 
@@ -19,8 +25,8 @@
 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>`_.
+The easiest way to reach the core team is via IRC, using the ``openstack-nova``
+OFTC IRC channel.
 
 New Feature Planning
 ~~~~~~~~~~~~~~~~~~~~
@@ -48,5 +54,5 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
 All changes proposed to the python-novaclient requires two ``Code-Review +2``
-votes from python-novaclient core reviewers before one of the core reviewers
+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.6.0/doc/source/index.rst 
new/python-novaclient-18.0.0/doc/source/index.rst
--- old/python-novaclient-17.6.0/doc/source/index.rst   2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/doc/source/index.rst   2022-05-20 
22:24:31.000000000 +0200
@@ -3,12 +3,12 @@
 ===========================================
 
 This is a client for OpenStack Nova API. There's a :doc:`Python API
-<reference/index>` (the :mod:`novaclient` module), and a :doc:`command-line
-script </user/shell>` (installed as :program:`nova`). Each implements the
-entire OpenStack Nova API.
+<reference/index>` (the :mod:`novaclient` module), and a deprecated
+:doc:`command-line script </user/shell>` (installed as :program:`nova`).
+Each implements the entire OpenStack Nova API.
 
-You'll need credentials for an OpenStack cloud that implements the Compute API,
-such as TryStack, HP, or Rackspace, in order to use the nova client.
+You'll need credentials for an OpenStack cloud that implements the Compute API
+in order to use the nova client.
 
 .. seealso::
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/doc/source/user/shell.rst 
new/python-novaclient-18.0.0/doc/source/user/shell.rst
--- old/python-novaclient-17.6.0/doc/source/user/shell.rst      2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/doc/source/user/shell.rst      2022-05-20 
22:24:31.000000000 +0200
@@ -15,6 +15,12 @@
 options, but it's easier to just set them as environment variables by setting
 some environment variables:
 
+.. deprecated:: 17.8.0
+
+    The ``nova`` CLI has been deprecated in favour of the unified
+    ``openstack`` CLI. For information on using the ``openstack`` CLI, see
+    :python-openstackclient-doc:`OpenStackClient <>`.
+
 .. envvar:: OS_USERNAME
 
     Your OpenStack Keystone user name.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/lower-constraints.txt 
new/python-novaclient-18.0.0/lower-constraints.txt
--- old/python-novaclient-17.6.0/lower-constraints.txt  2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/lower-constraints.txt  1970-01-01 
01:00:00.000000000 +0100
@@ -1,99 +0,0 @@
-amqp==2.1.1
-appdirs==1.3.0
-asn1crypto==0.23.0
-cachetools==2.0.0
-cffi==1.14.0
-cliff==2.8.0
-cmd2==0.8.0
-contextlib2==0.4.0
-coverage==4.0
-cryptography==2.1
-ddt==1.0.1
-debtcollector==1.2.0
-decorator==3.4.0
-deprecation==1.0
-dogpile.cache==0.6.2
-eventlet==0.18.2
-extras==1.0.0
-fasteners==0.7.0
-fixtures==3.0.0
-future==0.16.0
-futurist==1.2.0
-gitdb==0.6.4
-GitPython==1.0.1
-greenlet==0.4.15
-idna==2.6
-iso8601==0.1.11
-Jinja2==2.10
-jmespath==0.9.0
-jsonpatch==1.16
-jsonpointer==1.13
-jsonschema==2.6.0
-keystoneauth1==3.5.0
-kombu==4.0.0
-linecache2==1.0.0
-MarkupSafe==1.1.1
-monotonic==0.6
-msgpack-python==0.4.0
-munch==2.1.0
-netaddr==0.7.18
-netifaces==0.10.4
-openstacksdk==0.11.2
-os-client-config==1.28.0
-os-service-types==1.2.0
-osc-lib==1.8.0
-oslo.concurrency==3.25.0
-oslo.config==5.2.0
-oslo.context==2.19.2
-oslo.i18n==3.15.3
-oslo.log==3.36.0
-oslo.messaging==5.29.0
-oslo.middleware==3.31.0
-oslo.serialization==2.18.0
-oslo.service==1.24.0
-oslo.utils==3.33.0
-osprofiler==1.4.0
-paramiko==2.0.0
-Paste==2.0.2
-PasteDeploy==1.5.0
-pbr==2.0.0
-pika==0.10.0
-pika-pool==0.1.3
-positional==1.2.1
-prettytable==0.7.2
-pyasn1==0.1.8
-pycparser==2.18
-pyinotify==0.9.6
-pyOpenSSL==17.1.0
-pyparsing==2.1.0
-pyperclip==1.5.27
-python-cinderclient==3.3.0
-python-dateutil==2.5.3
-python-glanceclient==2.8.0
-python-keystoneclient==3.8.0
-python-mimeparse==1.6.0
-python-neutronclient==6.7.0
-python-subunit==1.0.0
-pytz==2013.6
-PyYAML==3.13
-repoze.lru==0.7
-requests==2.14.2
-requests-mock==1.2.0
-requestsexceptions==1.2.0
-rfc3986==0.3.1
-Routes==2.3.1
-smmap==0.9.0
-statsd==3.2.1
-stevedore==2.0.1
-tempest==17.1.0
-tenacity==3.2.1
-stestr==2.0.0
-testscenarios==0.4
-testtools==2.2.0
-traceback2==1.4.0
-unittest2==1.1.0
-urllib3==1.21.1
-vine==1.1.4
-warlock==1.2.0
-WebOb==1.7.1
-wrapt==1.7.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/novaclient/shell.py 
new/python-novaclient-18.0.0/novaclient/shell.py
--- old/python-novaclient-17.6.0/novaclient/shell.py    2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/novaclient/shell.py    2022-05-20 
22:24:31.000000000 +0200
@@ -20,6 +20,7 @@
 
 import argparse
 import logging
+import os
 import sys
 
 from keystoneauth1 import loading
@@ -816,9 +817,19 @@
         super(OpenStackHelpFormatter, self).start_section(heading)
 
 
-def main():
+def main(argv=sys.argv[1:]):
     try:
-        argv = [encodeutils.safe_decode(a) for a in sys.argv[1:]]
+        # Special dansmith envvar to hide the warning. Don't rely on this
+        # because we will eventually remove all this stuff.
+        if os.environ.get("NOVACLIENT_ISHOULDNTBEDOINGTHIS") != "1":
+            print(
+                _(
+                    "nova CLI is deprecated and will be a removed in a future "
+                    "release"
+                ),
+                file=sys.stderr,
+            )
+        argv = [encodeutils.safe_decode(a) for a in argv]
         OpenStackComputeShell().main(argv)
     except Exception as exc:
         logger.debug(exc, exc_info=1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/novaclient/tests/unit/test_shell.py 
new/python-novaclient-18.0.0/novaclient/tests/unit/test_shell.py
--- old/python-novaclient-17.6.0/novaclient/tests/unit/test_shell.py    
2021-09-03 12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/novaclient/tests/unit/test_shell.py    
2022-05-20 22:24:31.000000000 +0200
@@ -624,26 +624,32 @@
                           self._test_service_type,
                           'unknown', 'compute', self.mock_client)
 
-    @mock.patch('sys.argv', ['nova'])
     @mock.patch('sys.stdout', io.StringIO())
     @mock.patch('sys.stderr', io.StringIO())
     def test_main_noargs(self):
         # Ensure that main works with no command-line arguments
         try:
-            novaclient.shell.main()
+            novaclient.shell.main([])
         except SystemExit:
             self.fail('Unexpected SystemExit')
 
         # We expect the normal usage as a result
-        self.assertIn('Command-line interface to the OpenStack Nova API',
-                      sys.stdout.getvalue())
+        self.assertIn(
+            'Command-line interface to the OpenStack Nova API',
+            sys.stdout.getvalue(),
+        )
+        # We also expect to see the deprecation warning
+        self.assertIn(
+            'nova CLI is deprecated and will be a removed in a future release',
+            sys.stderr.getvalue(),
+        )
 
     @mock.patch.object(novaclient.shell.OpenStackComputeShell, 'main')
     def test_main_keyboard_interrupt(self, mock_compute_shell):
         # Ensure that exit code is 130 for KeyboardInterrupt
         mock_compute_shell.side_effect = KeyboardInterrupt()
         try:
-            novaclient.shell.main()
+            novaclient.shell.main([])
         except SystemExit as ex:
             self.assertEqual(ex.code, 130)
 
@@ -766,9 +772,15 @@
             pass
         with mock.patch('sys.stderr', io.StringIO()):
             mock_compute_shell.side_effect = MyException('message')
-            self.assertRaises(SystemExit, novaclient.shell.main)
+            self.assertRaises(SystemExit, novaclient.shell.main, [])
             err = sys.stderr.getvalue()
-        self.assertEqual(err, 'ERROR (MyException): message\n')
+        # We expect to see the error propagated
+        self.assertIn('ERROR (MyException): message\n', err)
+        # We also expect to see the deprecation warning
+        self.assertIn(
+            'nova CLI is deprecated and will be a removed in a future release',
+            err,
+        )
 
 
 class TestLoadVersionedActions(utils.TestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/novaclient/tests/unit/v2/test_shell.py 
new/python-novaclient-18.0.0/novaclient/tests/unit/v2/test_shell.py
--- old/python-novaclient-17.6.0/novaclient/tests/unit/v2/test_shell.py 
2021-09-03 12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/novaclient/tests/unit/v2/test_shell.py 
2022-05-20 22:24:31.000000000 +0200
@@ -3397,7 +3397,8 @@
     def test_services_list_v269_with_down_cells(self):
         """Tests nova service-list at the 2.69 microversion."""
         stdout, _stderr = self.run_command('service-list', api_version='2.69')
-        self.assertEqual('''\
+        self.assertEqual(
+            '''\
 
+--------------------------------------+--------------+-----------+------+----------+-------+---------------------+-----------------+-------------+
 | Id                                   | Binary       | Host      | Zone | 
Status   | State | Updated_at          | Disabled Reason | Forced down |
 
+--------------------------------------+--------------+-----------+------+----------+-------+---------------------+-----------------+-------------+
@@ -3406,7 +3407,8 @@
 |                                      | nova-compute | host-down |      | 
UNKNOWN  |       |                     |                 |             |
 
+--------------------------------------+--------------+-----------+------+----------+-------+---------------------+-----------------+-------------+
 ''',  # noqa
-            stdout)
+            stdout,
+        )
         self.assert_called('GET', '/os-services')
 
     def test_services_list_with_host(self):
@@ -4779,7 +4781,8 @@
     def test_list_detail_v269_with_down_cells(self):
         """Tests nova list at the 2.69 microversion."""
         stdout, _stderr = self.run_command('list', api_version='2.69')
-        self.assertIn('''\
+        self.assertIn(
+            '''\
 
+------+----------------+---------+------------+-------------+----------------------------------------------+
 | ID   | Name           | Status  | Task State | Power State | Networks        
                             |
 
+------+----------------+---------+------------+-------------+----------------------------------------------+
@@ -4791,7 +4794,8 @@
 | 9013 | sample-server4 | ACTIVE  | N/A        | N/A         |                 
                             |
 
+------+----------------+---------+------------+-------------+----------------------------------------------+
 ''',  # noqa
-        stdout)
+            stdout,
+        )
         self.assert_called('GET', '/servers/detail')
 
     def test_list_v269_with_down_cells(self):
@@ -4812,7 +4816,8 @@
 
     def test_show_v269_with_down_cells(self):
         stdout, _stderr = self.run_command('show 9015', api_version='2.69')
-        self.assertEqual('''\
+        self.assertEqual(
+            '''\
 
+-----------------------------+---------------------------------------------------+
 | Property                    | Value                                          
   |
 
+-----------------------------+---------------------------------------------------+
@@ -4833,7 +4838,8 @@
 | user_id                     | fake                                           
   |
 
+-----------------------------+---------------------------------------------------+
 ''',  # noqa
-            stdout)
+            stdout,
+        )
         FAKE_UUID_2 = 'c99d7632-bd66-4be9-aed5-3dd14b223a76'
         self.assert_called('GET', '/servers?name=9015', pos=0)
         self.assert_called('GET', '/servers?name=9015', pos=1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/novaclient/utils.py 
new/python-novaclient-18.0.0/novaclient/utils.py
--- old/python-novaclient-17.6.0/novaclient/utils.py    2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/novaclient/utils.py    2022-05-20 
22:24:31.000000000 +0200
@@ -116,13 +116,14 @@
     return inner
 
 
-def pretty_choice_list(l):
-    return ', '.join("'%s'" % i for i in l)
+def pretty_choice_list(values):
+    return ', '.join("'%s'" % x for x in values)
 
 
-def pretty_choice_dict(d):
+def pretty_choice_dict(values):
     """Returns a formatted dict as 'key=value'."""
-    return pretty_choice_list(['%s=%s' % (k, d[k]) for k in sorted(d.keys())])
+    return pretty_choice_list(
+        ['%s=%s' % (k, values[k]) for k in sorted(values)])
 
 
 def print_list(objs, fields, formatters={}, sortby_index=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/novaclient/v2/shell.py 
new/python-novaclient-18.0.0/novaclient/v2/shell.py
--- old/python-novaclient-17.6.0/novaclient/v2/shell.py 2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/novaclient/v2/shell.py 2022-05-20 
22:24:31.000000000 +0200
@@ -3231,15 +3231,15 @@
     other = {}
     limit_names = []
     columns = ['Name', 'Used', 'Max']
-    for l in limits:
-        map = limit_map.get(l.name, {'name': l.name, 'type': 'other'})
+    for limit in limits:
+        map = limit_map.get(limit.name, {'name': limit.name, 'type': 'other'})
         name = map['name']
         if map['type'] == 'max':
-            max[name] = l.value
+            max[name] = limit.value
         elif map['type'] == 'used':
-            used[name] = l.value
+            used[name] = limit.value
         else:
-            other[name] = l.value
+            other[name] = limit.value
             if 'Other' not in columns:
                 columns.append('Other')
         if name not in limit_names:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/python_novaclient.egg-info/PKG-INFO 
new/python-novaclient-18.0.0/python_novaclient.egg-info/PKG-INFO
--- old/python-novaclient-17.6.0/python_novaclient.egg-info/PKG-INFO    
2021-09-03 12:19:08.000000000 +0200
+++ new/python-novaclient-18.0.0/python_novaclient.egg-info/PKG-INFO    
2022-05-20 22:25:00.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.2
 Name: python-novaclient
-Version: 17.6.0
+Version: 18.0.0
 Summary: Client library for OpenStack Compute API
 Home-page: https://docs.openstack.org/python-novaclient/latest
 Author: OpenStack
@@ -24,8 +24,8 @@
             :alt: Latest Version
         
         This is a client for the OpenStack Compute API. It provides a Python 
API (the
-        ``novaclient`` module) and a command-line script (``nova``). Each 
implements
-        100% of the OpenStack Compute API.
+        ``novaclient`` module) and a deprecated command-line script 
(``nova``). The
+        Python API implements 100% of the OpenStack Compute API.
         
         * License: Apache License, Version 2.0
         * `PyPi`_ - package installation
@@ -59,9 +59,8 @@
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 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.9
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.6
+Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/python_novaclient.egg-info/SOURCES.txt 
new/python-novaclient-18.0.0/python_novaclient.egg-info/SOURCES.txt
--- old/python-novaclient-17.6.0/python_novaclient.egg-info/SOURCES.txt 
2021-09-03 12:19:08.000000000 +0200
+++ new/python-novaclient-18.0.0/python_novaclient.egg-info/SOURCES.txt 
2022-05-20 22:25:00.000000000 +0200
@@ -10,7 +10,6 @@
 LICENSE
 README.rst
 bindep.txt
-lower-constraints.txt
 requirements.txt
 setup.cfg
 setup.py
@@ -200,6 +199,7 @@
 releasenotes/notes/deprecate-baremetal-d67f58a2986b3565.yaml
 releasenotes/notes/deprecate-cellsv1-extension-16482759993d112f.yaml
 releasenotes/notes/deprecate-certs-1558d8e3b7888938.yaml
+releasenotes/notes/deprecate-cli-75074850847a8452.yaml
 releasenotes/notes/deprecate-cloudpipe-670202797fdf97b6.yaml
 releasenotes/notes/deprecate-connection-pool-arg-cef35346d5ebf40c.yaml
 releasenotes/notes/deprecate-force-option-7116d792bba17f09.yaml
@@ -318,6 +318,8 @@
 releasenotes/source/ussuri.rst
 releasenotes/source/victoria.rst
 releasenotes/source/wallaby.rst
+releasenotes/source/xena.rst
+releasenotes/source/yoga.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.6.0/python_novaclient.egg-info/pbr.json 
new/python-novaclient-18.0.0/python_novaclient.egg-info/pbr.json
--- old/python-novaclient-17.6.0/python_novaclient.egg-info/pbr.json    
2021-09-03 12:19:08.000000000 +0200
+++ new/python-novaclient-18.0.0/python_novaclient.egg-info/pbr.json    
2022-05-20 22:25:00.000000000 +0200
@@ -1 +1 @@
-{"git_version": "8066f8c7", "is_release": true}
\ No newline at end of file
+{"git_version": "782a4675", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/releasenotes/notes/deprecate-cli-75074850847a8452.yaml
 
new/python-novaclient-18.0.0/releasenotes/notes/deprecate-cli-75074850847a8452.yaml
--- 
old/python-novaclient-17.6.0/releasenotes/notes/deprecate-cli-75074850847a8452.yaml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-novaclient-18.0.0/releasenotes/notes/deprecate-cli-75074850847a8452.yaml
 2022-05-20 22:24:31.000000000 +0200
@@ -0,0 +1,9 @@
+---
+deprecations:
+  - |
+    The ``nova`` CLI is now deprecated. This is the signal that it is
+    time to start using the openstack CLI. No new features will be
+    added to the ``nova`` CLI, though fixes to the CLI will be assessed
+    on a case by case basis. Fixes to the API bindings, development of
+    new API bindings, and changes to the compute commands in the openstack
+    CLI are exempt from this deprecation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/releasenotes/source/index.rst 
new/python-novaclient-18.0.0/releasenotes/source/index.rst
--- old/python-novaclient-17.6.0/releasenotes/source/index.rst  2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/releasenotes/source/index.rst  2022-05-20 
22:24:31.000000000 +0200
@@ -8,6 +8,8 @@
    :maxdepth: 2
 
    unreleased
+   yoga
+   xena
    wallaby
    victoria
    ussuri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/releasenotes/source/xena.rst 
new/python-novaclient-18.0.0/releasenotes/source/xena.rst
--- old/python-novaclient-17.6.0/releasenotes/source/xena.rst   1970-01-01 
01:00:00.000000000 +0100
+++ new/python-novaclient-18.0.0/releasenotes/source/xena.rst   2022-05-20 
22:24:31.000000000 +0200
@@ -0,0 +1,6 @@
+=========================
+Xena Series Release Notes
+=========================
+
+.. release-notes::
+   :branch: stable/xena
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-novaclient-17.6.0/releasenotes/source/yoga.rst 
new/python-novaclient-18.0.0/releasenotes/source/yoga.rst
--- old/python-novaclient-17.6.0/releasenotes/source/yoga.rst   1970-01-01 
01:00:00.000000000 +0100
+++ new/python-novaclient-18.0.0/releasenotes/source/yoga.rst   2022-05-20 
22:24:31.000000000 +0200
@@ -0,0 +1,6 @@
+=========================
+Yoga Series Release Notes
+=========================
+
+.. release-notes::
+   :branch: stable/yoga
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/requirements.txt 
new/python-novaclient-18.0.0/requirements.txt
--- old/python-novaclient-17.6.0/requirements.txt       2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/requirements.txt       2022-05-20 
22:24:31.000000000 +0200
@@ -1,6 +1,7 @@
-# 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.
+# Requirements lower bounds listed here are our best effort to keep them up to
+# date but we do not test them so no guarantee of having them all correct. If
+# you find any incorrect lower bounds, let us know or propose a fix.
+
 pbr!=2.1.0,>=2.0.0 # Apache-2.0
 keystoneauth1>=3.5.0 # Apache-2.0
 iso8601>=0.1.11 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/setup.cfg 
new/python-novaclient-18.0.0/setup.cfg
--- old/python-novaclient-17.6.0/setup.cfg      2021-09-03 12:19:08.998951000 
+0200
+++ new/python-novaclient-18.0.0/setup.cfg      2022-05-20 22:25:00.767003000 
+0200
@@ -7,7 +7,7 @@
 author = OpenStack
 author_email = [email protected]
 home_page = https://docs.openstack.org/python-novaclient/latest
-python_requires = >=3.6
+python_requires = >=3.8
 classifier = 
        Development Status :: 5 - Production/Stable
        Environment :: Console
@@ -18,9 +18,8 @@
        Operating System :: OS Independent
        Programming Language :: Python
        Programming Language :: Python :: 3
-       Programming Language :: Python :: 3.6
-       Programming Language :: Python :: 3.7
        Programming Language :: Python :: 3.8
+       Programming Language :: Python :: 3.9
        Programming Language :: Python :: 3 :: Only
        Programming Language :: Python :: Implementation :: CPython
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/test-requirements.txt 
new/python-novaclient-18.0.0/test-requirements.txt
--- old/python-novaclient-17.6.0/test-requirements.txt  2021-09-03 
12:18:38.000000000 +0200
+++ new/python-novaclient-18.0.0/test-requirements.txt  2022-05-20 
22:24:31.000000000 +0200
@@ -1,8 +1,4 @@
-# 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.1,<3.1.0 # Apache-2.0
-
+hacking~=4.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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-novaclient-17.6.0/tox.ini 
new/python-novaclient-18.0.0/tox.ini
--- old/python-novaclient-17.6.0/tox.ini        2021-09-03 12:18:38.000000000 
+0200
+++ new/python-novaclient-18.0.0/tox.ini        2022-05-20 22:24:31.000000000 
+0200
@@ -101,9 +101,3 @@
 # separately, outside of the requirements files.
 deps = bindep
 commands = bindep test
-
-[testenv:lower-constraints]
-deps =
-  -c{toxinidir}/lower-constraints.txt
-  -r{toxinidir}/test-requirements.txt
-  -r{toxinidir}/requirements.txt

Reply via email to