Hello community, here is the log from the commit of package python-ironic-inspector-client for openSUSE:Factory checked in at 2020-06-05 20:10:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ironic-inspector-client (Old) and /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ironic-inspector-client" Fri Jun 5 20:10:20 2020 rev:13 rq:803564 version:4.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ironic-inspector-client/python-ironic-inspector-client.changes 2020-03-27 21:57:34.722802569 +0100 +++ /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.3606/python-ironic-inspector-client.changes 2020-06-05 20:13:24.646361502 +0200 @@ -1,0 +2,21 @@ +Tue May 12 10:06:17 UTC 2020 - cloud-de...@suse.de + +- update to version 4.1.0 + - Update the constraints url + - Cleanup py27 support + - Enforce running tox with correct python version based on env + - Switch jobs to python3 + - Fixing base job + - Bump hacking to 3.0.0 + - Make oslo.i18n an optional dependency + - Stop using six library + - Get rid of the oslo.utils requirement + - Add bindep env and fix pdf doc generation + - Recover the functional test + - Add versions to release notes series + - Move osc-lib to test-requirements + - Drop python 2.7 support and testing + - Update master for stable/train + - Switch to Ussuri job + +------------------------------------------------------------------- Old: ---- python-ironic-inspector-client-3.7.0.tar.gz New: ---- python-ironic-inspector-client-4.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ironic-inspector-client.spec ++++++ --- /var/tmp/diff_new_pack.swyebO/_old 2020-06-05 20:13:26.094366830 +0200 +++ /var/tmp/diff_new_pack.swyebO/_new 2020-06-05 20:13:26.094366830 +0200 @@ -17,19 +17,19 @@ Name: python-ironic-inspector-client -Version: 3.7.0 +Version: 4.1.0 Release: 0 Summary: Python client and CLI tool for Ironic Inspector License: Apache-2.0 Group: Development/Languages/Python URL: https://launchpad.net/python-ironic-inspector-client -Source0: https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-client/python-ironic-inspector-client-3.7.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-client/python-ironic-inspector-client-4.1.0.tar.gz BuildRequires: openstack-macros BuildRequires: python3-fixtures BuildRequires: python3-mock BuildRequires: python3-openstackclient BuildRequires: python3-openstackdocstheme -BuildRequires: python3-osc-lib >= 1.8.0 +BuildRequires: python3-osc-lib BuildRequires: python3-oslo.concurrency BuildRequires: python3-reno BuildRequires: python3-requests-mock @@ -51,11 +51,10 @@ Requires: python3-PyYAML >= 3.12 Requires: python3-keystoneauth1 >= 3.4.0 Requires: python3-openstackclient -Requires: python3-osc-lib >= 1.8.0 -Requires: python3-oslo.i18n >= 3.15.3 -Requires: python3-oslo.utils >= 3.33.0 +Requires: python3-osc-lib +Requires: python3-oslo.i18n +Requires: python3-oslo.utils Requires: python3-requests >= 2.14.2 -Requires: python3-six >= 1.10.0 %description -n python3-ironic-inspector-client Ironic Inspector is an auxiliary service for discovering hardware properties @@ -69,7 +68,7 @@ This package contains the Python 3.x module. %prep -%autosetup -p1 -n python-ironic-inspector-client-3.7.0 +%autosetup -p1 -n python-ironic-inspector-client-4.1.0 sed -i -e 's,hacking.*,,' test-requirements.txt sed -i -e 's,coverage.*,,' test-requirements.txt sed -i -e 's,doc8.*,,' test-requirements.txt ++++++ _service ++++++ --- /var/tmp/diff_new_pack.swyebO/_old 2020-06-05 20:13:26.126366947 +0200 +++ /var/tmp/diff_new_pack.swyebO/_new 2020-06-05 20:13:26.130366962 +0200 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/python-ironic-inspector-client/python-ironic-inspector-client.spec.j2?h=stable/train</param> + <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/python-ironic-inspector-client/python-ironic-inspector-client.spec.j2?h=stable/ussuri</param> <param name="output-name">python-ironic-inspector-client.spec</param> - <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/stable/train/requirements.txt</param> + <param name="requirements">https://opendev.org/openstack/python-ironic-inspector-client/raw/branch/stable/ussuri/requirements.txt</param> <param name="changelog-email">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,python-ironic-inspector-client</param> </service> ++++++ python-ironic-inspector-client-3.7.0.tar.gz -> python-ironic-inspector-client-4.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/AUTHORS new/python-ironic-inspector-client-4.1.0/AUTHORS --- old/python-ironic-inspector-client-3.7.0/AUTHORS 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/AUTHORS 2020-04-09 18:18:31.000000000 +0200 @@ -22,6 +22,8 @@ Julia Kreger <juliaashleykre...@gmail.com> Kaifeng Wang <kaifen...@gmail.com> Luong Anh Tuan <tua...@vn.fujitsu.com> +Madhuri Kumari <madhuri.ra...@gmail.com> +Mark Goddard <m...@stackhpc.com> Monty Taylor <mord...@inaugust.com> Nguyen Hai Truong <truon...@vn.fujitsu.com> Nguyen Hung Phuong <phuon...@vn.fujitsu.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ChangeLog new/python-ironic-inspector-client-4.1.0/ChangeLog --- old/python-ironic-inspector-client-3.7.0/ChangeLog 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ChangeLog 2020-04-09 18:18:31.000000000 +0200 @@ -1,6 +1,30 @@ CHANGES ======= +4.1.0 +----- + +* Move osc-lib to test-requirements +* Get rid of the oslo.utils requirement +* Make oslo.i18n an optional dependency +* Cleanup py27 support +* Bump hacking to 3.0.0 + +4.0.0 +----- + +* Add bindep env and fix pdf doc generation +* Enforce running tox with correct python version based on env +* Stop using six library +* Drop python 2.7 support and testing +* Fixing base job +* Switch jobs to python3 +* Switch to Ussuri job +* Recover the functional test +* Add versions to release notes series +* Update the constraints url +* Update master for stable/train + 3.7.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/PKG-INFO new/python-ironic-inspector-client-4.1.0/PKG-INFO --- old/python-ironic-inspector-client-3.7.0/PKG-INFO 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/PKG-INFO 2020-04-09 18:18:31.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-ironic-inspector-client -Version: 3.7.0 +Version: 4.1.0 Summary: Python client for Ironic Inspector Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/ Author: OpenStack @@ -42,10 +42,11 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 -Provides-Extra: test +Requires-Python: >=3.6 Provides-Extra: cli +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/bindep.txt new/python-ironic-inspector-client-4.1.0/bindep.txt --- old/python-ironic-inspector-client-3.7.0/bindep.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-4.1.0/bindep.txt 2020-04-09 18:16:35.000000000 +0200 @@ -0,0 +1,3 @@ +# libsrvg2 is needed for sphinxcontrib-svg2pdfconverter in docs builds. +librsvg2-tools [doc platform:rpm] +librsvg2-bin [doc platform:dpkg] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/doc/requirements.txt new/python-ironic-inspector-client-4.1.0/doc/requirements.txt --- old/python-ironic-inspector-client-3.7.0/doc/requirements.txt 2019-09-07 20:30:57.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/doc/requirements.txt 2020-04-09 18:16:35.000000000 +0200 @@ -1,5 +1,4 @@ -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 +sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2 # BSD openstackdocstheme>=1.20.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0 sphinxcontrib-apidoc>=0.2.0 # BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/functest-requirements.txt new/python-ironic-inspector-client-4.1.0/functest-requirements.txt --- old/python-ironic-inspector-client-3.7.0/functest-requirements.txt 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/functest-requirements.txt 2020-04-09 18:16:35.000000000 +0200 @@ -1,3 +1,4 @@ # NOTE(jroll) these are pinned to the same SHA, update when needed. -git+https://opendev.org/openstack/ironic-inspector@be3f7eec18ad13dd6d5a94fe2963b45456fad19e#egg=ironic-inspector --r https://opendev.org/openstack/ironic-inspector/raw/commit/be3f7eec18ad13dd6d5a94fe2963b45456fad19e/test-requirements.txt \ No newline at end of file +# Last updated: Apr 2, 2020 (Ussuri cycle). +git+https://opendev.org/openstack/ironic-inspector@75437072da66686509d4b7fa80589f5b4966a858#egg=ironic-inspector +-r https://opendev.org/openstack/ironic-inspector/raw/commit/75437072da66686509d4b7fa80589f5b4966a858/test-requirements.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/common/http.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/common/http.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/common/http.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/common/http.py 2020-04-09 18:16:35.000000000 +0200 @@ -19,7 +19,6 @@ from keystoneauth1 import exceptions as ks_exc from keystoneauth1 import session as ks_session import requests -import six from ironic_inspector_client.common.i18n import _ @@ -162,7 +161,7 @@ def _check_api_version(self, api_version): if isinstance(api_version, int): api_version = (api_version, 0) - if isinstance(api_version, six.string_types): + if isinstance(api_version, str): api_version = _parse_version(api_version) api_version = tuple(api_version) if not all(isinstance(x, int) for x in api_version): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/common/i18n.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/common/i18n.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/common/i18n.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/common/i18n.py 2020-04-09 18:16:35.000000000 +0200 @@ -13,10 +13,14 @@ # License for the specific language governing permissions and limitations # under the License. -import oslo_i18n +try: + import oslo_i18n +except ImportError: + def _(msg): + return msg +else: + _translators = oslo_i18n.TranslatorFactory( + domain='python-ironic-inspector-client') -_translators = oslo_i18n.TranslatorFactory( - domain='python-ironic-inspector-client') - -# The primary translation function using the well-known name "_" -_ = _translators.primary + # The primary translation function using the well-known name "_" + _ = _translators.primary diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/shell.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/shell.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/shell.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/shell.py 2020-04-09 18:16:35.000000000 +0200 @@ -16,15 +16,16 @@ from __future__ import print_function import json +import os import sys -from osc_lib.command import command -from osc_lib import exceptions -from osc_lib.i18n import _ -from osc_lib import utils +from cliff import command +from cliff import lister +from cliff import show import yaml import ironic_inspector_client +from ironic_inspector_client.common.i18n import _ from ironic_inspector_client import resource as res @@ -57,18 +58,18 @@ def build_option_parser(parser): # TODO(dtantsur): deprecate these options in favor of more generic OS_* parser.add_argument('--inspector-api-version', - default=utils.env('INSPECTOR_VERSION', - default=DEFAULT_API_VERSION), + default=(os.environ.get('INSPECTOR_VERSION') + or DEFAULT_API_VERSION), help='inspector API version, only 1 is supported now ' '(env: INSPECTOR_VERSION).') parser.add_argument('--inspector-url', - default=utils.env('INSPECTOR_URL', default=None), + default=os.environ.get('INSPECTOR_URL'), help='inspector URL, defaults to localhost ' '(env: INSPECTOR_URL).') return parser -class StartCommand(command.Lister): +class StartCommand(lister.Lister): """Start the introspection.""" COLUMNS = ('UUID', 'Error') @@ -91,7 +92,7 @@ def take_action(self, parsed_args): if parsed_args.check_errors and not parsed_args.wait: - raise exceptions.CommandError( + raise RuntimeError( _("--check-errors can only be used with --wait")) client = self.app.client_manager.baremetal_introspection @@ -130,7 +131,7 @@ client.reprocess(parsed_args.node) -class StatusCommand(command.ShowOne): +class StatusCommand(show.ShowOne): """Get introspection status.""" hidden_status_items = {'links'} @@ -157,10 +158,12 @@ return zip(*sorted(self.status_attributes(status))) -class StatusListCommand(command.Lister): +class StatusListCommand(lister.Lister): """List introspection statuses""" COLUMNS = ('UUID', 'Started at', 'Finished at', 'Error') + MAPPING = dict(zip(COLUMNS, + ['uuid', 'started_at', 'finished_at', 'error'])) @classmethod def status_row(cls, client_item): @@ -173,7 +176,7 @@ :return: a list of client_item attributes as the row """ status = dict(StatusCommand.status_attributes(client_item)) - return utils.get_dict_properties(status, cls.COLUMNS) + return tuple(status.get(cls.MAPPING[item]) for item in cls.COLUMNS) def get_parser(self, prog_name): parser = super(StatusListCommand, self).get_parser(prog_name) @@ -204,7 +207,7 @@ client.abort(parsed_args.node) -class RuleImportCommand(command.Lister): +class RuleImportCommand(lister.Lister): """Import one or several introspection rules from a JSON/YAML file.""" COLUMNS = ("UUID", "Description") @@ -229,7 +232,7 @@ return self.COLUMNS, result -class RuleListCommand(command.Lister): +class RuleListCommand(lister.Lister): """List all introspection rules.""" COLUMNS = ("UUID", "Description") @@ -242,7 +245,7 @@ return self.COLUMNS, rules -class RuleShowCommand(command.ShowOne): +class RuleShowCommand(show.ShowOne): """Show an introspection rule.""" def get_parser(self, prog_name): @@ -300,7 +303,7 @@ json.dump(data, sys.stdout) -class InterfaceListCommand(command.Lister): +class InterfaceListCommand(lister.Lister): """List interface data including attached switch port information.""" def get_parser(self, prog_name): @@ -340,7 +343,7 @@ return interface_res.labels, rows -class InterfaceShowCommand(command.ShowOne): +class InterfaceShowCommand(show.ShowOne): """Show interface data including attached switch port information.""" COLUMNS = ("Field", "Value") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/functional.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/functional.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/functional.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/functional.py 2020-04-09 18:16:35.000000000 +0200 @@ -11,7 +11,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy import json import os import sys @@ -20,14 +19,13 @@ import eventlet eventlet.monkey_patch() # noqa -from ironic_inspector.common import swift from ironic_inspector import introspection_state as istate +from ironic_inspector import process from ironic_inspector.test import functional from keystoneauth1 import session as ks_session from keystoneauth1 import token_endpoint import mock from oslo_concurrency import processutils -import six import ironic_inspector_client as client from ironic_inspector_client import shell @@ -40,7 +38,6 @@ token='token') self.session = ks_session.Session(self.auth) self.client = client.ClientV1(session=self.session) - functional.cfg.CONF.set_override('store_data', 'none', 'processing') def my_status_index(self, statuses): my_status = self._fake_status() @@ -49,8 +46,8 @@ def test_introspect_get_status(self): self.client.introspect(self.uuid) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.cli.node.set_power_state.assert_called_once_with(self.uuid, - 'reboot') + self.cli.set_node_power_state.assert_called_once_with(self.uuid, + 'rebooting') status = self.client.get_status(self.uuid) self.check_status(status, finished=False, state=istate.States.waiting) @@ -59,10 +56,10 @@ self.assertEqual({'uuid': self.uuid}, res) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.assertCalledWithPatch(self.patch, self.cli.node.update) - self.cli.port.create.assert_called_once_with( + self.assertCalledWithPatch(self.patch, self.cli.patch_node) + self.cli.create_port.assert_called_once_with( node_uuid=self.uuid, address='11:22:33:44:55:66', - pxe_enabled=True, extra={}) + is_pxe_enabled=True, extra={}) status = self.client.get_status(self.uuid) self.check_status(status, finished=True, state=istate.States.finished) @@ -70,8 +67,8 @@ def test_introspect_list_statuses(self): self.client.introspect(self.uuid) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.cli.node.set_power_state.assert_called_once_with(self.uuid, - 'reboot') + self.cli.set_node_power_state.assert_called_once_with(self.uuid, + 'rebooting') statuses = self.client.list_statuses() my_status = statuses[self.my_status_index(statuses)] @@ -82,10 +79,10 @@ self.assertEqual({'uuid': self.uuid}, res) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.assertCalledWithPatch(self.patch, self.cli.node.update) - self.cli.port.create.assert_called_once_with( + self.assertCalledWithPatch(self.patch, self.cli.patch_node) + self.cli.create_port.assert_called_once_with( node_uuid=self.uuid, address='11:22:33:44:55:66', - pxe_enabled=True, extra={}) + is_pxe_enabled=True, extra={}) statuses = self.client.list_statuses() my_status = statuses[self.my_status_index(statuses)] @@ -117,15 +114,10 @@ status = self.client.get_status(self.uuid) self.check_status(status, finished=True, state=istate.States.finished) - @mock.patch.object(swift, 'store_introspection_data', autospec=True) - @mock.patch.object(swift, 'get_introspection_data', autospec=True) - def test_reprocess_stored_introspection_data(self, get_mock, - store_mock): - functional.cfg.CONF.set_override('store_data', 'swift', 'processing') + def test_reprocess_stored_introspection_data(self): port_create_call = mock.call(node_uuid=self.uuid, address='11:22:33:44:55:66', - pxe_enabled=True, extra={}) - get_mock.return_value = json.dumps(self.data) + is_pxe_enabled=True, extra={}) # assert reprocessing doesn't work before introspection self.assertRaises(client.ClientError, self.client.reprocess, @@ -133,8 +125,8 @@ self.client.introspect(self.uuid) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.cli.node.set_power_state.assert_called_once_with(self.uuid, - 'reboot') + self.cli.set_node_power_state.assert_called_once_with(self.uuid, + 'rebooting') status = self.client.get_status(self.uuid) self.check_status(status, finished=False, state=istate.States.waiting) @@ -144,10 +136,8 @@ status = self.client.get_status(self.uuid) self.check_status(status, finished=True, state=istate.States.finished) - self.cli.port.create.assert_has_calls([port_create_call], + self.cli.create_port.assert_has_calls([port_create_call], any_order=True) - self.assertFalse(get_mock.called) - self.assertTrue(store_mock.called) res = self.client.reprocess(self.uuid) self.assertEqual(202, res.status_code) @@ -155,12 +145,9 @@ eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) self.check_status(status, finished=True, state=istate.States.finished) - self.cli.port.create.assert_has_calls([port_create_call, + self.cli.create_port.assert_has_calls([port_create_call, port_create_call], any_order=True) - self.assertTrue(get_mock.called) - # incoming, processing, reapplying data - self.assertEqual(3, store_mock.call_count) def test_abort_introspection(self): # assert abort doesn't work before introspect request @@ -169,8 +156,8 @@ self.client.introspect(self.uuid) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.cli.node.set_power_state.assert_called_once_with(self.uuid, - 'reboot') + self.cli.set_node_power_state.assert_called_once_with(self.uuid, + 'rebooting') status = self.client.get_status(self.uuid) self.check_status(status, finished=False, state=istate.States.waiting) @@ -264,8 +251,7 @@ BASE_CMD = [os.path.join(sys.prefix, 'bin', 'openstack'), - '--os-auth-type', 'token_endpoint', '--os-token', 'fake', - '--os-url', 'http://127.0.0.1:5050'] + '--os-auth-type', 'none', '--os-endpoint', 'http://127.0.0.1:5050'] class BaseCLITest(functional.Base): @@ -296,8 +282,6 @@ class TestCLI(BaseCLITest): def setup_lldp(self): - functional.cfg.CONF.set_override('store_data', 'swift', 'processing') - self.all_interfaces = { 'eth1': {'mac': self.macs[0], 'ip': self.ips[0], 'client_id': None, 'lldp_processed': @@ -332,10 +316,7 @@ return fake_status def test_cli_negative(self): - if six.PY3: - msg_missing_param = 'the following arguments are required' - else: - msg_missing_param = 'too few arguments' + msg_missing_param = 'the following arguments are required' err = self.run_cli('start', expect_error=True) self.assertIn(msg_missing_param, err) err = self.run_cli('status', expect_error=True) @@ -351,8 +332,8 @@ def test_introspect_get_status(self): self.run_cli('start', self.uuid) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.cli.node.set_power_state.assert_called_once_with(self.uuid, - 'reboot') + self.cli.set_node_power_state.assert_called_once_with(self.uuid, + 'rebooting') status = self.run_cli('status', self.uuid, parse_json=True) self.check_status(status, finished=False, state=istate.States.waiting) @@ -361,10 +342,10 @@ self.assertEqual({'uuid': self.uuid}, res) eventlet.greenthread.sleep(functional.DEFAULT_SLEEP) - self.assertCalledWithPatch(self.patch, self.cli.node.update) - self.cli.port.create.assert_called_once_with( + self.assertCalledWithPatch(self.patch, self.cli.patch_node) + self.cli.create_port.assert_called_once_with( node_uuid=self.uuid, address='11:22:33:44:55:66', - pxe_enabled=True, extra={}) + is_pxe_enabled=True, extra={}) status = self.run_cli('status', self.uuid, parse_json=True) self.check_status(status, finished=True, state=istate.States.finished) @@ -407,10 +388,10 @@ res = self.run_cli('rule', 'list', parse_json=True) self.assertEqual([], res) - @mock.patch.object(swift, 'get_introspection_data', autospec=True) + @mock.patch.object(process, 'get_introspection_data', autospec=True) def test_interface_list(self, get_mock): self.setup_lldp() - get_mock.return_value = json.dumps(copy.deepcopy(self.data)) + get_mock.return_value = json.dumps(self.data) expected_eth1 = {u'Interface': u'eth1', u'MAC Address': u'11:22:33:44:55:66', @@ -440,10 +421,10 @@ self.assertIn({u'Switch Port MTU': 1514}, res) self.assertIn({u'Switch Port MTU': 9216}, res) - @mock.patch.object(swift, 'get_introspection_data', autospec=True) + @mock.patch.object(process, 'get_introspection_data', autospec=True) def test_interface_show(self, get_mock): self.setup_lldp() - get_mock.return_value = json.dumps(copy.deepcopy(self.data)) + get_mock.return_value = json.dumps(self.data) res = self.run_cli('interface', 'show', self.uuid, "eth1", parse_json=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_common_http.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_common_http.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_common_http.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_common_http.py 2020-04-09 18:16:35.000000000 +0200 @@ -183,12 +183,12 @@ self.req.return_value.content = json.dumps( {'error': {'message': 'boom'}}).encode('utf-8') - self.assertRaisesRegexp(http.ClientError, 'boom', - self.get_client().request, 'get', 'url') + self.assertRaisesRegex(http.ClientError, 'boom', + self.get_client().request, 'get', 'url') def test_error_discoverd_style(self): self.req.return_value.status_code = 400 self.req.return_value.content = b'boom' - self.assertRaisesRegexp(http.ClientError, 'boom', - self.get_client().request, 'get', 'url') + self.assertRaisesRegex(http.ClientError, 'boom', + self.get_client().request, 'get', 'url') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_shell.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_shell.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_shell.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_shell.py 2020-04-09 18:16:35.000000000 +0200 @@ -12,13 +12,12 @@ # limitations under the License. import collections +import io import sys import tempfile import mock -from osc_lib import exceptions from osc_lib.tests import utils -import six from ironic_inspector_client import shell from ironic_inspector_client import v1 @@ -149,7 +148,7 @@ cmd = shell.StartCommand(self.app, None) parsed_args = self.check_parser(cmd, arglist, verifylist) msg = "--check-errors can only be used with --wait" - self.assertRaisesRegex(exceptions.CommandError, msg, cmd.take_action, + self.assertRaisesRegex(RuntimeError, msg, cmd.take_action, parsed_args) def test_abort(self): @@ -362,7 +361,7 @@ class TestDataSave(BaseTest): def test_stdout(self): self.client.get_data.return_value = {'answer': 42} - buf = six.StringIO() + buf = io.StringIO() arglist = ['uuid1'] verifylist = [('node', 'uuid1')] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_v1.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_v1.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_v1.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/test/test_v1.py 2020-04-09 18:16:35.000000000 +0200 @@ -13,12 +13,10 @@ import collections import unittest +import uuid from keystoneauth1 import session import mock -from oslo_utils import netutils -from oslo_utils import uuidutils -import six import ironic_inspector_client from ironic_inspector_client.common import http @@ -35,7 +33,7 @@ return_value=mock.Mock(headers=FAKE_HEADERS, status_code=200)) class TestInit(unittest.TestCase): - my_ip = 'http://' + netutils.get_my_ipv4() + ':5050' + my_ip = 'http://127.0.0.1:5050' def get_client(self, **kwargs): kwargs.setdefault('inspector_url', self.my_ip) @@ -69,8 +67,8 @@ class BaseTest(unittest.TestCase): def setUp(self): super(BaseTest, self).setUp() - self.uuid = uuidutils.generate_uuid() - self.my_ip = 'http://' + netutils.get_my_ipv4() + ':5050' + self.uuid = str(uuid.uuid4()) + self.my_ip = 'http://127.0.0.1:5050' @mock.patch.object(http.BaseClient, 'server_api_versions', lambda self: ((1, 0), (1, 99))) @@ -173,12 +171,12 @@ params=params) def test_invalid_marker(self, _): - six.assertRaisesRegex(self, TypeError, 'Expected a string value.*', - self.get_client().list_statuses, marker=42) + self.assertRaisesRegex(TypeError, 'Expected a string value.*', + self.get_client().list_statuses, marker=42) def test_invalid_limit(self, _): - six.assertRaisesRegex(self, TypeError, 'Expected an integer.*', - self.get_client().list_statuses, limit='42') + self.assertRaisesRegex(TypeError, 'Expected an integer.*', + self.get_client().list_statuses, limit='42') @mock.patch.object(ironic_inspector_client.ClientV1, 'get_status', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/v1.py new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/v1.py --- old/python-ironic-inspector-client-3.7.0/ironic_inspector_client/v1.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/ironic_inspector_client/v1.py 2020-04-09 18:16:35.000000000 +0200 @@ -18,8 +18,6 @@ import time import warnings -import six - from ironic_inspector_client.common import http from ironic_inspector_client.common.i18n import _ @@ -97,7 +95,7 @@ """ node_id = node_id or uuid - if not isinstance(node_id, six.string_types): + if not isinstance(node_id, str): raise TypeError( _("Expected string for node_id argument, got %r") % node_id) if uuid: @@ -172,7 +170,7 @@ * `started_at` an ISO8601 timestamp, * `uuid` the node UUID """ - if not (marker is None or isinstance(marker, six.string_types)): + if not (marker is None or isinstance(marker, str)): raise TypeError(_('Expected a string value of the marker, got ' '%s instead') % marker) if not (limit is None or isinstance(limit, int)): @@ -410,7 +408,7 @@ :raises: :py:class:`ironic_inspector_client.VersionNotSupported` if requested api_version is not supported """ - if uuid is not None and not isinstance(uuid, six.string_types): + if uuid is not None and not isinstance(uuid, str): raise TypeError( _("Expected string for uuid argument, got %r") % uuid) for name, arg in [('conditions', conditions), ('actions', actions)]: @@ -459,7 +457,7 @@ :raises: :py:class:`ironic_inspector_client.VersionNotSupported` if requested api_version is not supported """ - if not isinstance(uuid, six.string_types): + if not isinstance(uuid, str): raise TypeError( _("Expected string for uuid argument, got %r") % uuid) return self._request('get', '/rules/%s' % uuid).json() @@ -473,7 +471,7 @@ :raises: :py:class:`ironic_inspector_client.VersionNotSupported` if requested api_version is not supported """ - if not isinstance(uuid, six.string_types): + if not isinstance(uuid, str): raise TypeError( _("Expected string for uuid argument, got %r") % uuid) self._request('delete', '/rules/%s' % uuid) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/lower-constraints.txt new/python-ironic-inspector-client-4.1.0/lower-constraints.txt --- old/python-ironic-inspector-client-3.7.0/lower-constraints.txt 2019-09-07 20:30:57.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/lower-constraints.txt 2020-04-09 18:16:35.000000000 +0200 @@ -19,7 +19,7 @@ fasteners==0.7.0 fixtures==3.0.0 flake8==2.5.5 -hacking==1.0.0 +hacking==3.0.0 idna==2.6 imagesize==0.7.1 iso8601==0.1.11 @@ -73,7 +73,6 @@ restructuredtext-lint==1.1.1 rfc3986==0.3.1 simplejson==3.5.1 -six==1.10.0 snowballstemmer==1.2.1 Sphinx==1.6.2 sphinxcontrib-svg2pdfconverter==0.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/PKG-INFO new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/PKG-INFO --- old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/PKG-INFO 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/PKG-INFO 2020-04-09 18:18:31.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-ironic-inspector-client -Version: 3.7.0 +Version: 4.1.0 Summary: Python client for Ironic Inspector Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/ Author: OpenStack @@ -42,10 +42,11 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 -Provides-Extra: test +Requires-Python: >=3.6 Provides-Extra: cli +Provides-Extra: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/SOURCES.txt new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/SOURCES.txt --- old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2020-04-09 18:18:31.000000000 +0200 @@ -2,6 +2,7 @@ ChangeLog LICENSE README.rst +bindep.txt functest-requirements.txt lower-constraints.txt requirements.txt @@ -48,6 +49,7 @@ releasenotes/notes/deprecate-setting-ipmi-creds-1581ddc63b273811.yaml releasenotes/notes/deprecated-uuid-d0c8e8980106e7f9.yaml releasenotes/notes/drop-osc-client-requirements-efb31b432ddbb370.yaml +releasenotes/notes/drop-py-2-7-c2707af650df18c8.yaml releasenotes/notes/drop-setting-ipmi-creds-feature-4965aaba75a40326.yaml releasenotes/notes/interface-list-show-39cedaca3cd9db9b.yaml releasenotes/notes/introspect-multiple-uuids-0790d57e0a0b9292.yaml @@ -60,6 +62,7 @@ releasenotes/notes/no-default-uri-861f675ccb75e05d.yaml releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml releasenotes/notes/osc-lib-162db03fed2bc40c.yaml +releasenotes/notes/oslo-i18n-optional-194293e37274a901.yaml releasenotes/notes/print-import-rule-result-b5c19e9b8679849e.yaml releasenotes/notes/remove-client-64778b2011c26f6b.yaml releasenotes/notes/rename-func-427aa11c60c2838b.yaml @@ -77,6 +80,7 @@ releasenotes/source/queens.rst releasenotes/source/rocky.rst releasenotes/source/stein.rst +releasenotes/source/train.rst releasenotes/source/unreleased.rst releasenotes/source/_static/.placeholder releasenotes/source/_templates/.placeholder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/pbr.json new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/pbr.json --- old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/pbr.json 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/pbr.json 2020-04-09 18:18:31.000000000 +0200 @@ -1 +1 @@ -{"git_version": "d95a4cd", "is_release": true} \ No newline at end of file +{"git_version": "c9b1aff", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/requires.txt new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/requires.txt --- old/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/requires.txt 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/python_ironic_inspector_client.egg-info/requires.txt 2020-04-09 18:18:31.000000000 +0200 @@ -1,11 +1,8 @@ +cliff!=2.9.0,>=2.8.0 keystoneauth1>=3.4.0 -osc-lib>=1.8.0 -oslo.i18n>=3.15.3 -oslo.utils>=3.33.0 pbr!=2.1.0,>=2.0.0 PyYAML>=3.12 requests>=2.14.2 -six>=1.10.0 [cli] python-openstackclient>=3.12.0 @@ -15,8 +12,9 @@ doc8>=0.6.0 fixtures>=3.0.0 flake8-import-order>=0.13 -hacking<1.1.0,>=1.0.0 +hacking<3.1.0,>=3.0.0 mock>=2.0.0 requests-mock>=1.2.0 oslo.concurrency>=3.25.0 +osc-lib>=1.8.0 python-openstackclient>=3.12.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/releasenotes/notes/drop-py-2-7-c2707af650df18c8.yaml new/python-ironic-inspector-client-4.1.0/releasenotes/notes/drop-py-2-7-c2707af650df18c8.yaml --- old/python-ironic-inspector-client-3.7.0/releasenotes/notes/drop-py-2-7-c2707af650df18c8.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-4.1.0/releasenotes/notes/drop-py-2-7-c2707af650df18c8.yaml 2020-04-09 18:16:35.000000000 +0200 @@ -0,0 +1,7 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. Last release of + python-ironic-inspector-client to support Python 2.7 is OpenStack Train. + The minimum version of Python now supported by + python-ironic-inspector-client is Python 3.6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/releasenotes/notes/oslo-i18n-optional-194293e37274a901.yaml new/python-ironic-inspector-client-4.1.0/releasenotes/notes/oslo-i18n-optional-194293e37274a901.yaml --- old/python-ironic-inspector-client-3.7.0/releasenotes/notes/oslo-i18n-optional-194293e37274a901.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-4.1.0/releasenotes/notes/oslo-i18n-optional-194293e37274a901.yaml 2020-04-09 18:16:35.000000000 +0200 @@ -0,0 +1,6 @@ +--- +upgrade: + - | + The dependency on ``oslo.i18n`` is now optional. If you would like messages + from ironic-inspector-client to be translated, you need to install it + explicitly. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/releasenotes/source/index.rst new/python-ironic-inspector-client-4.1.0/releasenotes/source/index.rst --- old/python-ironic-inspector-client-3.7.0/releasenotes/source/index.rst 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/releasenotes/source/index.rst 2020-04-09 18:16:35.000000000 +0200 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + train stein rocky queens diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/releasenotes/source/train.rst new/python-ironic-inspector-client-4.1.0/releasenotes/source/train.rst --- old/python-ironic-inspector-client-3.7.0/releasenotes/source/train.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-4.1.0/releasenotes/source/train.rst 2020-04-09 18:16:35.000000000 +0200 @@ -0,0 +1,6 @@ +=========================================== + Train Series (3.6.0 - 3.6.x) Release Notes +=========================================== + +.. release-notes:: + :branch: stable/train diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/requirements.txt new/python-ironic-inspector-client-4.1.0/requirements.txt --- old/python-ironic-inspector-client-3.7.0/requirements.txt 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/requirements.txt 2020-04-09 18:16:35.000000000 +0200 @@ -1,11 +1,8 @@ # 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. +cliff!=2.9.0,>=2.8.0 # Apache-2.0 keystoneauth1>=3.4.0 # Apache-2.0 -osc-lib>=1.8.0 # Apache-2.0 -oslo.i18n>=3.15.3 # Apache-2.0 -oslo.utils>=3.33.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0 PyYAML>=3.12 # MIT requests>=2.14.2 # Apache-2.0 -six>=1.10.0 # MIT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/setup.cfg new/python-ironic-inspector-client-4.1.0/setup.cfg --- old/python-ironic-inspector-client-3.7.0/setup.cfg 2019-09-07 20:31:35.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/setup.cfg 2020-04-09 18:18:31.000000000 +0200 @@ -6,6 +6,7 @@ author-email = openstack-disc...@lists.openstack.org home-page = https://docs.openstack.org/python-ironic-inspector-client/latest/ license = Apache-2 +python-requires = >=3.6 classifier = Environment :: Console Environment :: OpenStack @@ -14,8 +15,8 @@ License :: OSI Approved :: Apache Software License Operating System :: OS Independent Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 + Programming Language :: Python :: Implementation :: CPython + Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/setup.py new/python-ironic-inspector-client-4.1.0/setup.py --- old/python-ironic-inspector-client-3.7.0/setup.py 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/setup.py 2020-04-09 18:16:35.000000000 +0200 @@ -13,17 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - setuptools.setup( setup_requires=['pbr>=2.0.0'], pbr=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/test-requirements.txt new/python-ironic-inspector-client-4.1.0/test-requirements.txt --- old/python-ironic-inspector-client-3.7.0/test-requirements.txt 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/test-requirements.txt 2020-04-09 18:16:35.000000000 +0200 @@ -5,8 +5,9 @@ doc8>=0.6.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD flake8-import-order>=0.13 # LGPLv3 -hacking>=1.0.0,<1.1.0 # Apache-2.0 +hacking>=3.0.0,<3.1.0 # Apache-2.0 mock>=2.0.0 # BSD requests-mock>=1.2.0 # Apache-2.0 oslo.concurrency>=3.25.0 # Apache-2.0 +osc-lib>=1.8.0 # Apache-2.0 python-openstackclient>=3.12.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/tox.ini new/python-ironic-inspector-client-4.1.0/tox.ini --- old/python-ironic-inspector-client-3.7.0/tox.ini 2019-09-07 20:30:57.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/tox.ini 2020-04-09 18:16:35.000000000 +0200 @@ -1,12 +1,14 @@ [tox] -minversion = 2.0 -envlist = py3,py27,pep8,functional +minversion = 3.1.0 +envlist = py3,pep8,functional-py3 +ignore_basepython_conflict=true [testenv] +basepython = python3 install_command = pip install {opts} {packages} usedevelop = True deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = @@ -16,20 +18,11 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY [testenv:pep8] -basepython = python3 commands = flake8 ironic_inspector_client doc8 README.rst doc/source -[testenv:functional] -basepython = python2.7 -deps = {[testenv]deps} - -r{toxinidir}/functest-requirements.txt -commands = - python -m ironic_inspector_client.test.functional {posargs} - [testenv:functional-py3] -basepython = python3 deps = {[testenv]deps} -r{toxinidir}/functest-requirements.txt commands = @@ -43,36 +36,31 @@ [testenv:func] # Replaced in CI with "functional" environment but kept here as a # backwards-compatibility shim for transition -basepython = python3 -deps = {[testenv:functional]deps} -commands = {[testenv:functional]commands} +deps = {[testenv:functional-py3]deps} +commands = {[testenv:functional-py3]commands} [testenv:venv] -basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = {posargs} [testenv:releasenotes] -basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} + -c{env:UPPER_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:docs] -basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = sphinx-build -W -b html doc/source doc/build/html [testenv:pdf-docs] -basepython = python3 whitelist_externals = make deps = {[testenv:docs]deps} commands = @@ -94,8 +82,17 @@ import_exceptions = ironic_inspector_client.common.i18n [testenv:lower-constraints] -basepython = python3 deps = -c{toxinidir}/lower-constraints.txt -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt + +# This environment can be used to quickly validate that all needed system +# packages required to successfully execute test targets are installed +[testenv:bindep] +# Do not install any requirements. We want this to be fast and work even if +# system dependencies are missing, since it's used to tell you what system +# dependencies are missing! This also means that bindep must be installed +# separately, outside of the requirements files. +deps = bindep +commands = bindep test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/zuul.d/project.yaml new/python-ironic-inspector-client-4.1.0/zuul.d/project.yaml --- old/python-ironic-inspector-client-3.7.0/zuul.d/project.yaml 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/zuul.d/project.yaml 2020-04-09 18:16:35.000000000 +0200 @@ -1,22 +1,17 @@ - project: templates: - - openstack-python-jobs - - openstack-python3-train-jobs + - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - check-requirements - release-notes-jobs-python3 - openstackclient-plugin-jobs check: jobs: - - openstack-tox-functional - openstack-tox-functional-py36 - - python-ironic-inspector-client-tempest-python2 - python-ironic-inspector-client-tempest-python3 - openstack-tox-lower-constraints gate: jobs: - - openstack-tox-functional - openstack-tox-functional-py36 - - python-ironic-inspector-client-tempest-python2 - python-ironic-inspector-client-tempest-python3 - openstack-tox-lower-constraints diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.7.0/zuul.d/python-ironic-inspector-client-jobs.yaml new/python-ironic-inspector-client-4.1.0/zuul.d/python-ironic-inspector-client-jobs.yaml --- old/python-ironic-inspector-client-3.7.0/zuul.d/python-ironic-inspector-client-jobs.yaml 2019-09-07 20:30:54.000000000 +0200 +++ new/python-ironic-inspector-client-4.1.0/zuul.d/python-ironic-inspector-client-jobs.yaml 2020-04-09 18:16:35.000000000 +0200 @@ -40,7 +40,7 @@ IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs' IRONIC_VM_SPECS_RAM: 384 IRONIC_DEFAULT_DEPLOY_INTERFACE: direct - IRONIC_DEFAULT_RESCUE_INTERFACE: agent + IRONIC_DEFAULT_RESCUE_INTERFACE: "" Q_AGENT: openvswitch Q_ML2_TENANT_NETWORK_TYPE: vxlan @@ -98,17 +98,6 @@ ironic-inspector-dhcp: True - job: - name: python-ironic-inspector-client-tempest-python2 - description: python-ironic-inspector-client-tempest-python2 - parent: python-ironic-inspector-client-base - vars: - devstack_localrc: - USE_PYTHON3: False - -- job: name: python-ironic-inspector-client-tempest-python3 description: python-ironic-inspector-client-tempest-python3 parent: python-ironic-inspector-client-base - vars: - devstack_localrc: - USE_PYTHON3: True