Hello community, here is the log from the commit of package python-ironic-inspector-client for openSUSE:Factory checked in at 2019-12-04 13:48:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ironic-inspector-client (Old) and /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ironic-inspector-client" Wed Dec 4 13:48:32 2019 rev:11 rq:736655 version:3.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ironic-inspector-client/python-ironic-inspector-client.changes 2019-05-03 22:40:47.299034523 +0200 +++ /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.4691/python-ironic-inspector-client.changes 2019-12-04 14:18:51.910362340 +0100 @@ -1,0 +2,22 @@ +Wed Oct 9 13:00:47 UTC 2019 - cloud-de...@suse.de + +- update to version 3.7.0 + - Fetch requirements from opendev + - Bump the openstackdocstheme extension to 1.20 + - Update master for stable/stein + - OpenDev Migration Patch + - Update sphinx requirements + - OSC: try fetching ironic-inspector URL from osc-lib + - Find misteriously missing pep8 import check + - Repair the deprecated uuid/uuids arguments + - Blacklist sphinx 2.1.0 (autodoc bug) + - Replace openstack.org git:// URLs with https:// + - CI: clean up required projects + - Build pdf doc + - Update Python 3 test runtimes for Train + - Allow running a specific functional test via CLI + - Dropping the py35 testing + - Deprecates "uuid" parameters to Python calls when node is expected + - Switch base job to ironic-base + +------------------------------------------------------------------- Old: ---- python-ironic-inspector-client-3.5.0.tar.gz New: ---- python-ironic-inspector-client-3.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ironic-inspector-client.spec ++++++ --- /var/tmp/diff_new_pack.P4PXAe/_old 2019-12-04 14:18:52.322362392 +0100 +++ /var/tmp/diff_new_pack.P4PXAe/_new 2019-12-04 14:18:52.326362393 +0100 @@ -17,32 +17,42 @@ Name: python-ironic-inspector-client -Version: 3.5.0 +Version: 3.7.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.5.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-client/python-ironic-inspector-client-3.7.0.tar.gz BuildRequires: openstack-macros -BuildRequires: python-Sphinx -BuildRequires: python-devel -BuildRequires: python-fixtures -BuildRequires: python-mock -BuildRequires: python-openstackclient -BuildRequires: python-openstackdocstheme -BuildRequires: python-osc-lib >= 1.8.0 -BuildRequires: python-oslo.concurrency -BuildRequires: python-reno -BuildRequires: python-requests-mock -BuildRequires: python-testrepository +BuildRequires: python2-fixtures +BuildRequires: python2-mock +BuildRequires: python2-openstackclient +BuildRequires: python2-openstackdocstheme +BuildRequires: python2-osc-lib >= 1.8.0 +BuildRequires: python2-oslo.concurrency +BuildRequires: python2-reno +BuildRequires: python2-requests-mock +BuildRequires: python2-testrepository +BuildRequires: python3-fixtures +BuildRequires: python3-mock +BuildRequires: python3-openstackclient +BuildRequires: python3-openstackdocstheme +BuildRequires: python3-osc-lib >= 1.8.0 +BuildRequires: python3-oslo.concurrency +BuildRequires: python3-reno +BuildRequires: python3-requests-mock +BuildRequires: python3-testrepository +Requires: python-PyYAML >= 3.12 Requires: python-keystoneauth1 >= 3.4.0 +Requires: python-openstackclient Requires: python-osc-lib >= 1.8.0 Requires: python-oslo.i18n >= 3.15.3 Requires: python-oslo.utils >= 3.33.0 Requires: python-requests >= 2.14.2 Requires: python-six >= 1.10.0 BuildArch: noarch +%python_subpackages %description Ironic Inspector is an auxiliary service for discovering hardware properties @@ -54,25 +64,27 @@ This package contains Python client and command line tool for Ironic Inspector. %prep -%autosetup -p1 -n python-ironic-inspector-client-3.5.0 +%autosetup -p1 -n python-ironic-inspector-client-3.7.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 %py_req_cleanup %build -%{py2_build} +%python_build %install -%{py2_install} +%python_install %check -%{__python2} setup.py test +%{python_expand rm -rf .testrepository +$python -m unittest discover ironic_inspector_client +} -%files +%files %{python_files} %doc README.rst %license LICENSE -%{python2_sitelib}/ironic_inspector_client -%{python2_sitelib}/*.egg-info +%{python_sitelib}/ironic_inspector_client +%{python_sitelib}/*.egg-info %changelog ++++++ _service ++++++ --- /var/tmp/diff_new_pack.P4PXAe/_old 2019-12-04 14:18:52.350362396 +0100 +++ /var/tmp/diff_new_pack.P4PXAe/_new 2019-12-04 14:18:52.350362396 +0100 @@ -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/stein</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/train</param> <param name="output-name">python-ironic-inspector-client.spec</param> - <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/stable/stein/requirements.txt</param> + <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/stable/train/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.5.0.tar.gz -> python-ironic-inspector-client-3.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/AUTHORS new/python-ironic-inspector-client-3.7.0/AUTHORS --- old/python-ironic-inspector-client-3.5.0/AUTHORS 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/AUTHORS 2019-09-07 20:31:35.000000000 +0200 @@ -6,9 +6,12 @@ Clenimar Filemon <cleni...@lsd.ufcg.edu.br> Corey Bryant <corey.bry...@canonical.com> Dmitry Tantsur <divius.ins...@gmail.com> +Dmitry Tantsur <dtant...@protonmail.com> Dmitry Tantsur <dtant...@redhat.com> Doug Hellmann <d...@doughellmann.com> Flavio Percoco <flape...@gmail.com> +Ghanshyam Mann <gm...@ghanshyammann.com> +Ian Wienand <iwien...@redhat.com> Iury Gregory Melo Ferreira <imelo...@redhat.com> Iury Gregory Melo Ferreira <iurygreg...@gmail.com> James E. Blair <jebl...@redhat.com> @@ -22,7 +25,9 @@ Monty Taylor <mord...@inaugust.com> Nguyen Hai Truong <truon...@vn.fujitsu.com> Nguyen Hung Phuong <phuon...@vn.fujitsu.com> +Nisha Brahmankar <nisha.ee.i...@gmail.com> OpenStack Release Bot <infra-r...@openstack.org> +Riccardo Pittau <elfosa...@gmail.com> Ruby Loo <ruby....@intel.com> Sean McGinnis <sean.mcgin...@gmail.com> Tang Chen <chen.t...@easystack.cn> @@ -36,5 +41,6 @@ jacky06 <zhang....@99cloud.net> jinxingfang <fang.jinx...@99cloud.net> melissaml <ma....@99cloud.net> +pengyuesheng <pengyuesh...@gohighsec.com> sonu.kumar <sonu.ku...@nectechnologies.in> wu.chunyang <wu.chuny...@99cloud.net> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ChangeLog new/python-ironic-inspector-client-3.7.0/ChangeLog --- old/python-ironic-inspector-client-3.5.0/ChangeLog 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ChangeLog 2019-09-07 20:31:35.000000000 +0200 @@ -1,6 +1,35 @@ CHANGES ======= +3.7.0 +----- + +* Build pdf doc +* Blacklist sphinx 2.1.0 (autodoc bug) +* Bump the openstackdocstheme extension to 1.20 +* CI: clean up required projects +* Allow running a specific functional test via CLI + +3.6.1 +----- + +* Repair the deprecated uuid/uuids arguments +* Switch base job to ironic-base + +3.6.0 +----- + +* Update Python 3 test runtimes for Train +* OSC: try fetching ironic-inspector URL from osc-lib +* Update sphinx requirements +* Fetch requirements from opendev +* OpenDev Migration Patch +* Dropping the py35 testing +* Replace openstack.org git:// URLs with https:// +* Deprecates "uuid" parameters to Python calls when node is expected +* Update master for stable/stein +* Find misteriously missing pep8 import check + 3.5.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/PKG-INFO new/python-ironic-inspector-client-3.7.0/PKG-INFO --- old/python-ironic-inspector-client-3.5.0/PKG-INFO 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/PKG-INFO 2019-09-07 20:31:35.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-ironic-inspector-client -Version: 3.5.0 +Version: 3.7.0 Summary: Python client for Ironic Inspector Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/ Author: OpenStack @@ -15,7 +15,7 @@ This is a client library and tool for `Ironic Inspector`_. * Free software: Apache license - * Source: https://git.openstack.org/cgit/openstack/python-ironic-inspector-client + * Source: https://opendev.org/openstack/python-ironic-inspector-client/ * Documentation: https://docs.openstack.org/python-ironic-inspector-client/latest/ * Bugs: https://storyboard.openstack.org/#!/project/958 * Downloads: https://pypi.org/project/python-ironic-inspector-client @@ -45,6 +45,7 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Provides-Extra: test Provides-Extra: cli diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/README.rst new/python-ironic-inspector-client-3.7.0/README.rst --- old/python-ironic-inspector-client-3.5.0/README.rst 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/README.rst 2019-09-07 20:30:54.000000000 +0200 @@ -7,7 +7,7 @@ This is a client library and tool for `Ironic Inspector`_. * Free software: Apache license -* Source: https://git.openstack.org/cgit/openstack/python-ironic-inspector-client +* Source: https://opendev.org/openstack/python-ironic-inspector-client/ * Documentation: https://docs.openstack.org/python-ironic-inspector-client/latest/ * Bugs: https://storyboard.openstack.org/#!/project/958 * Downloads: https://pypi.org/project/python-ironic-inspector-client diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/doc/requirements.txt new/python-ironic-inspector-client-3.7.0/doc/requirements.txt --- old/python-ironic-inspector-client-3.5.0/doc/requirements.txt 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/doc/requirements.txt 2019-09-07 20:30:57.000000000 +0200 @@ -1,4 +1,6 @@ -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD -openstackdocstheme>=1.18.1 # Apache-2.0 +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.20.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0 sphinxcontrib-apidoc>=0.2.0 # BSD +sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/doc/source/conf.py new/python-ironic-inspector-client-3.7.0/doc/source/conf.py --- old/python-ironic-inspector-client-3.5.0/doc/source/conf.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/doc/source/conf.py 2019-09-07 20:30:57.000000000 +0200 @@ -7,18 +7,12 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinxcontrib.apidoc', 'sphinx.ext.viewcode', + 'sphinxcontrib.rsvgconverter', + 'openstackdocstheme', ] -try: - import openstackdocstheme - extensions.append('openstackdocstheme') -except ImportError: - openstackdocstheme = None - repository_name = 'openstack/python-ironic-inspector-client' -bug_project = 'python-ironic-inspector-client' -bug_tag = '' -html_last_updated_fmt = '%Y-%m-%d %H:%M' +use_storyboard = True wsme_protocols = ['restjson'] @@ -42,20 +36,8 @@ master_doc = 'index' # General information about the project. -project = u'Ironic Inspector Client' copyright = u'OpenStack Foundation' -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -from ironic_inspector_client import version as il_version -# The full version, including alpha/beta/rc tags. -release = il_version.version_info.release_string() -# The short X.Y version. -version = il_version.version_info.version_string() - # A list of ignored prefixes for module index sorting. modindex_common_prefix = ['ironic_inspector_client'] @@ -73,17 +55,15 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -if openstackdocstheme is not None: - html_theme = 'openstackdocs' -else: - html_theme = 'default' +html_theme = 'openstackdocs' #html_theme_path = ["."] #html_theme = '_theme' #html_static_path = ['_static'] # Output file base name for HTML help builder. -htmlhelp_basename = '%sdoc' % project +htmlhelp_basename = 'python-ironic-inspector-clientdoc' +latex_use_xindy = False # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass @@ -91,8 +71,8 @@ latex_documents = [ ( 'index', - '%s.tex' % project, - u'%s Documentation' % project, + 'doc-python-ironic-inspector-client.tex', + u'Python Ironic Inspector Client Documentation', u'OpenStack Foundation', 'manual' ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/functest-requirements.txt new/python-ironic-inspector-client-3.7.0/functest-requirements.txt --- old/python-ironic-inspector-client-3.5.0/functest-requirements.txt 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/functest-requirements.txt 2019-09-07 20:30:54.000000000 +0200 @@ -1,3 +1,3 @@ # NOTE(jroll) these are pinned to the same SHA, update when needed. -git+git://git.openstack.org/openstack/ironic-inspector@be3f7eec18ad13dd6d5a94fe2963b45456fad19e#egg=ironic-inspector --r https://git.openstack.org/cgit/openstack/ironic-inspector/plain/test-requirements.txt?h=be3f7eec18ad13dd6d5a94fe2963b45456fad19e +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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/shell.py --- old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/shell.py 2019-09-07 20:30:54.000000000 +0200 @@ -27,6 +27,7 @@ import ironic_inspector_client from ironic_inspector_client import resource as res + API_NAME = 'baremetal_introspection' API_VERSION_OPTION = 'inspector_api_version' DEFAULT_API_VERSION = '1' @@ -39,8 +40,14 @@ def make_client(instance): + url = instance.get_configuration().get('inspector_url') + if not url: + url = instance.get_endpoint_for_service_type( + 'baremetal-introspection', interface=instance.interface, + region_name=instance._region_name + ) return ironic_inspector_client.ClientV1( - inspector_url=instance.get_configuration().get('inspector_url'), + inspector_url=url, session=instance.session, api_version=instance._api_version[API_NAME], interface=instance._interface, @@ -48,6 +55,7 @@ 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), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/functional.py --- old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/functional.py 2019-09-07 20:30:54.000000000 +0200 @@ -11,25 +11,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import eventlet -eventlet.monkey_patch() - import copy import json -import mock import os import sys import tempfile import unittest -import six - +import eventlet +eventlet.monkey_patch() # noqa from ironic_inspector.common import swift from ironic_inspector import introspection_state as istate 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 @@ -464,6 +462,12 @@ self.assertDictContainsSubset(expected, res) + if __name__ == '__main__': + if len(sys.argv) > 1: + test_name = sys.argv[1] + else: + test_name = None + with functional.mocked_server(): - unittest.main(verbosity=2) + unittest.main(verbosity=2, defaultTest=test_name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_shell.py --- old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_shell.py 2019-09-07 20:30:54.000000000 +0200 @@ -11,14 +11,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +import collections import sys +import tempfile -import collections import mock from osc_lib import exceptions from osc_lib.tests import utils import six -import tempfile from ironic_inspector_client import shell from ironic_inspector_client import v1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_v1.py new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_v1.py --- old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_v1.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/test/test_v1.py 2019-09-07 20:30:54.000000000 +0200 @@ -12,13 +12,13 @@ # limitations under the License. import collections -import six import unittest 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 @@ -87,6 +87,12 @@ 'post', '/introspection/%s' % self.uuid, params={}) + def test_deprecated_uuid(self, mock_req): + self.get_client().introspect(uuid=self.uuid) + mock_req.assert_called_once_with( + 'post', '/introspection/%s' % self.uuid, + params={}) + def test_invalid_input(self, mock_req): self.assertRaises(TypeError, self.get_client().introspect, 42) @@ -106,6 +112,13 @@ '/introspection/%s/data/unprocessed' % self.uuid ) + def test_deprecated_uuid(self, mock_req): + self.get_client().reprocess(uuid=self.uuid) + mock_req.assert_called_once_with( + 'post', + '/introspection/%s/data/unprocessed' % self.uuid + ) + def test_invalid_input(self, mock_req): self.assertRaises(TypeError, self.get_client().reprocess, 42) self.assertFalse(mock_req.called) @@ -121,6 +134,14 @@ mock_req.assert_called_once_with( 'get', '/introspection/%s' % self.uuid) + def test_deprecated_uuid(self, mock_req): + mock_req.return_value.json.return_value = 'json' + + self.get_client().get_status(uuid=self.uuid) + + mock_req.assert_called_once_with( + 'get', '/introspection/%s' % self.uuid) + def test_invalid_input(self, _): self.assertRaises(TypeError, self.get_client().get_status, 42) @@ -180,6 +201,19 @@ self.sleep.assert_called_with(v1.DEFAULT_RETRY_INTERVAL) self.assertEqual(5, self.sleep.call_count) + def test_deprecated_uuids(self, mock_get_st): + mock_get_st.side_effect = ( + [{'finished': False, 'error': None}] * 5 + + [{'finished': True, 'error': None}] + ) + + res = self.get_client().wait_for_finish(uuids=['uuid1'], + sleep_function=self.sleep) + self.assertEqual({'uuid1': {'finished': True, 'error': None}}, + res) + self.sleep.assert_called_with(v1.DEFAULT_RETRY_INTERVAL) + self.assertEqual(5, self.sleep.call_count) + def test_timeout(self, mock_get_st): mock_get_st.return_value = {'finished': False, 'error': None} @@ -212,6 +246,10 @@ self.sleep.assert_called_with(v1.DEFAULT_RETRY_INTERVAL) self.assertEqual(2, self.sleep.call_count) + def test_no_arguments(self, mock_get_st): + self.assertRaises(TypeError, + self.get_client().wait_for_finish) + @mock.patch.object(http.BaseClient, 'request') class TestGetData(BaseTest): @@ -222,6 +260,14 @@ mock_req.assert_called_once_with( 'get', '/introspection/%s/data' % self.uuid) + + def test_deprecated_uuid(self, mock_req): + mock_req.return_value.json.return_value = 'json' + + self.assertEqual('json', self.get_client().get_data(uuid=self.uuid)) + + mock_req.assert_called_once_with( + 'get', '/introspection/%s/data' % self.uuid) def test_raw(self, mock_req): mock_req.return_value.content = b'json' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/v1.py new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/v1.py --- old/python-ironic-inspector-client-3.5.0/ironic_inspector_client/v1.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/ironic_inspector_client/v1.py 2019-09-07 20:30:54.000000000 +0200 @@ -16,6 +16,7 @@ import collections import logging import time +import warnings import six @@ -88,10 +89,28 @@ super(ClientV1, self).__init__(**kwargs) self.rules = RulesAPI(self.request) - def introspect(self, uuid, manage_boot=None): + def _check_parameters(self, node_id, uuid): + """Deprecate uuid parameters. + + Check the parameters and return a deprecation warning + if the uuid parameter is present. + """ + + node_id = node_id or uuid + if not isinstance(node_id, six.string_types): + raise TypeError( + _("Expected string for node_id argument, got %r") % node_id) + if uuid: + warnings.warn("Parameter uuid is deprecated and will be " + "removed in future releases, please use " + "node_id instead.", DeprecationWarning) + return node_id + + def introspect(self, node_id=None, manage_boot=None, uuid=None): """Start introspection for a node. - :param uuid: node UUID or name + :param uuid: node UUID or name, deprecated + :param node_id: node node_id or name :param manage_boot: whether to manage boot during introspection of this node. If it is None (the default), then this argument is not passed to API and the server default is used instead. @@ -101,23 +120,22 @@ requested api_version is not supported :raises: *requests* library exception on connection problems. """ - if not isinstance(uuid, six.string_types): - raise TypeError( - _("Expected string for uuid argument, got %r") % uuid) + node_id = self._check_parameters(node_id, uuid) params = {} if manage_boot is not None: params['manage_boot'] = str(int(manage_boot)) - self.request('post', '/introspection/%s' % uuid, params=params) + self.request('post', '/introspection/%s' % node_id, params=params) - def reprocess(self, uuid): + def reprocess(self, node_id=None, uuid=None): """Reprocess stored introspection data. If swift support is disabled, introspection data won't be stored, this request will return error response with 404 code. - :param uuid: node UUID or name. + :param uuid: node UUID or name, deprecated + :param node_id: node node_id or name :raises: :py:class:`ironic_inspector_client.ClientError` on error reported from a server :raises: :py:class:`ironic_inspector_client.VersionNotSupported` if @@ -125,13 +143,11 @@ :raises: *requests* library exception on connection problems. :raises: TypeError if uuid is not a string. """ - if not isinstance(uuid, six.string_types): - raise TypeError(_("Expected string for uuid argument, got" - " %r instead") % uuid) + node_id = self._check_parameters(node_id, uuid) return self.request('post', '/introspection/%s/data/unprocessed' % - uuid) + node_id) def list_statuses(self, marker=None, limit=None): """List introspection statuses. @@ -170,10 +186,11 @@ response = self.request('get', '/introspection', params=params) return response.json()['introspection'] - def get_status(self, uuid): + def get_status(self, node_id=None, uuid=None): """Get introspection status for a node. - :param uuid: node UUID or name. + :param uuid: node UUID or name, deprecated + :param node_id: node node_id or name :raises: :py:class:`ironic_inspector_client.ClientError` on error reported from a server :raises: :py:class:`ironic_inspector_client.VersionNotSupported` @@ -188,18 +205,18 @@ * `started_at` an ISO8601 timestamp, * `uuid` the node UUID """ - if not isinstance(uuid, six.string_types): - raise TypeError( - _("Expected string for uuid argument, got %r") % uuid) + node_id = self._check_parameters(node_id, uuid) - return self.request('get', '/introspection/%s' % uuid).json() + return self.request('get', '/introspection/%s' % node_id).json() - def wait_for_finish(self, uuids, retry_interval=DEFAULT_RETRY_INTERVAL, + def wait_for_finish(self, node_ids=None, + retry_interval=DEFAULT_RETRY_INTERVAL, max_retries=DEFAULT_MAX_RETRIES, - sleep_function=time.sleep): + sleep_function=time.sleep, uuids=None): """Wait for introspection finishing for given nodes. - :param uuids: collection of node UUIDs or names. + :param uuids: collection of node UUIDs or names, deprecated + :param node_ids: collection of node node_ids or names :param retry_interval: sleep interval between retries. :param max_retries: maximum number of retries. :param sleep_function: function used for sleeping between retries. @@ -213,24 +230,31 @@ :return: dictionary UUID -> status (the same as in get_status). """ result = {} + node_ids = node_ids or uuids + if uuids: + warnings.warn("Parameter uuid is deprecated and will be " + "removed in future releases, please use " + "node_id instead.", DeprecationWarning) + elif not node_ids: + raise TypeError("The node_ids argument is required") # Number of attempts = number of retries + first attempt for attempt in range(max_retries + 1): - new_active_uuids = [] - for uuid in uuids: - status = self.get_status(uuid) + new_active_node_ids = [] + for node_id in node_ids: + status = self.get_status(node_id) if status.get('finished'): - result[uuid] = status + result[node_id] = status else: - new_active_uuids.append(uuid) + new_active_node_ids.append(node_id) - if new_active_uuids: + if new_active_node_ids: if attempt != max_retries: - uuids = new_active_uuids + node_ids = new_active_node_ids LOG.debug('Still waiting for introspection results for ' '%(count)d nodes, attempt %(attempt)d of ' '%(total)d', - {'count': len(new_active_uuids), + {'count': len(new_active_node_ids), 'attempt': attempt + 1, 'total': max_retries + 1}) sleep_function(retry_interval) @@ -238,15 +262,16 @@ return result raise WaitTimeoutError(_("Timeout while waiting for introspection " - "of nodes %s") % new_active_uuids) + "of nodes %s") % new_active_node_ids) - def get_data(self, uuid, raw=False): + def get_data(self, node_id=None, raw=False, uuid=None): """Get introspection data from the last introspection of a node. If swift support is disabled, introspection data won't be stored, this request will return error response with 404 code. - :param uuid: node UUID or name. + :param uuid: node UUID or name, deprecated + :param node_id: node node_id or name :param raw: whether to return raw binary data or parsed JSON data :returns: bytes or a dict depending on the 'raw' argument :raises: :py:class:`ironic_inspector_client.ClientError` on error @@ -256,20 +281,19 @@ :raises: *requests* library exception on connection problems. :raises: TypeError if uuid is not a string """ - if not isinstance(uuid, six.string_types): - raise TypeError( - _("Expected string for uuid argument, got %r") % uuid) + node_id = self._check_parameters(node_id, uuid) - resp = self.request('get', '/introspection/%s/data' % uuid) + resp = self.request('get', '/introspection/%s/data' % node_id) if raw: return resp.content else: return resp.json() - def abort(self, uuid): + def abort(self, node_id=None, uuid=None): """Abort running introspection for a node. - :param uuid: node UUID or name. + :param uuid: node UUID or name, deprecated + :param node_id: node node_id or name :raises: :py:class:`ironic_inspector_client.ClientError` on error reported from a server :raises: :py:class:`ironic_inspector_client.VersionNotSupported` if @@ -277,11 +301,9 @@ :raises: *requests* library exception on connection problems. :raises: TypeError if uuid is not a string. """ - if not isinstance(uuid, six.string_types): - raise TypeError(_("Expected string for uuid argument, got" - " %r") % uuid) + node_id = self._check_parameters(node_id, uuid) - return self.request('post', '/introspection/%s/abort' % uuid) + return self.request('post', '/introspection/%s/abort' % node_id) def get_interface_data(self, node_ident, interface, field_sel): """Get interface data for the input node and interface diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/lower-constraints.txt new/python-ironic-inspector-client-3.7.0/lower-constraints.txt --- old/python-ironic-inspector-client-3.5.0/lower-constraints.txt 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/lower-constraints.txt 2019-09-07 20:30:57.000000000 +0200 @@ -38,7 +38,7 @@ munch==2.1.0 netaddr==0.7.18 netifaces==0.10.4 -openstackdocstheme==1.18.1 +openstackdocstheme==1.20.0 openstacksdk==0.11.2 os-client-config==1.28.0 os-service-types==1.2.0 @@ -76,6 +76,7 @@ six==1.10.0 snowballstemmer==1.2.1 Sphinx==1.6.2 +sphinxcontrib-svg2pdfconverter==0.1.0 sphinxcontrib-websupport==1.0.1 stevedore==1.20.0 testtools==2.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/PKG-INFO --- old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/PKG-INFO 2019-09-07 20:31:35.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: python-ironic-inspector-client -Version: 3.5.0 +Version: 3.7.0 Summary: Python client for Ironic Inspector Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/ Author: OpenStack @@ -15,7 +15,7 @@ This is a client library and tool for `Ironic Inspector`_. * Free software: Apache license - * Source: https://git.openstack.org/cgit/openstack/python-ironic-inspector-client + * Source: https://opendev.org/openstack/python-ironic-inspector-client/ * Documentation: https://docs.openstack.org/python-ironic-inspector-client/latest/ * Bugs: https://storyboard.openstack.org/#!/project/958 * Downloads: https://pypi.org/project/python-ironic-inspector-client @@ -45,6 +45,7 @@ Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Provides-Extra: test Provides-Extra: cli diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/SOURCES.txt --- old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2019-09-07 20:31:35.000000000 +0200 @@ -46,6 +46,7 @@ releasenotes/notes/client-get-data-7002c1e22f14cefd.yaml releasenotes/notes/data-save-9d9d4b3ac7c9851f.yaml 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-setting-ipmi-creds-feature-4965aaba75a40326.yaml releasenotes/notes/interface-list-show-39cedaca3cd9db9b.yaml @@ -65,6 +66,7 @@ releasenotes/notes/reprocess-stored-introspection-data-c4910325254426c5.yaml releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml releasenotes/notes/service-catalog-45466d1cfd330231.yaml +releasenotes/notes/version-uuid-b7f9e57589314fe9.yaml releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/liberty.rst @@ -74,6 +76,7 @@ releasenotes/source/pike.rst releasenotes/source/queens.rst releasenotes/source/rocky.rst +releasenotes/source/stein.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.5.0/python_ironic_inspector_client.egg-info/pbr.json new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/pbr.json --- old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/pbr.json 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/pbr.json 2019-09-07 20:31:35.000000000 +0200 @@ -1 +1 @@ -{"git_version": "9bb1150", "is_release": true} \ No newline at end of file +{"git_version": "d95a4cd", "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.5.0/python_ironic_inspector_client.egg-info/requires.txt new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/requires.txt --- old/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/requires.txt 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/python_ironic_inspector_client.egg-info/requires.txt 2019-09-07 20:31:35.000000000 +0200 @@ -14,6 +14,7 @@ coverage!=4.4,>=4.0 doc8>=0.6.0 fixtures>=3.0.0 +flake8-import-order>=0.13 hacking<1.1.0,>=1.0.0 mock>=2.0.0 requests-mock>=1.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/releasenotes/notes/deprecated-uuid-d0c8e8980106e7f9.yaml new/python-ironic-inspector-client-3.7.0/releasenotes/notes/deprecated-uuid-d0c8e8980106e7f9.yaml --- old/python-ironic-inspector-client-3.5.0/releasenotes/notes/deprecated-uuid-d0c8e8980106e7f9.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/releasenotes/notes/deprecated-uuid-d0c8e8980106e7f9.yaml 2019-09-07 20:30:54.000000000 +0200 @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes regression in 3.6.0 that caused the deprecated ``uuid`` argument + to various calls to stop working. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/releasenotes/notes/version-uuid-b7f9e57589314fe9.yaml new/python-ironic-inspector-client-3.7.0/releasenotes/notes/version-uuid-b7f9e57589314fe9.yaml --- old/python-ironic-inspector-client-3.5.0/releasenotes/notes/version-uuid-b7f9e57589314fe9.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/releasenotes/notes/version-uuid-b7f9e57589314fe9.yaml 2019-09-07 20:30:54.000000000 +0200 @@ -0,0 +1,4 @@ +--- +deprecations: + - Parameter uuid is deprecated in ClientV1 and will be removed in future + releases, please use node_id instead. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/releasenotes/source/conf.py new/python-ironic-inspector-client-3.7.0/releasenotes/source/conf.py --- old/python-ironic-inspector-client-3.5.0/releasenotes/source/conf.py 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/releasenotes/source/conf.py 2019-09-07 20:30:54.000000000 +0200 @@ -61,7 +61,6 @@ master_doc = 'index' # General information about the project. -project = u'Ironic Inspector Client Release Notes' copyright = u'2015, Ironic Inspector Developers' # Release notes are version independent. @@ -199,17 +198,6 @@ # -- Options for LaTeX output --------------------------------------------- -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst new/python-ironic-inspector-client-3.7.0/releasenotes/source/index.rst --- old/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/releasenotes/source/index.rst 2019-09-07 20:30:54.000000000 +0200 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + stein rocky queens pike diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/releasenotes/source/stein.rst new/python-ironic-inspector-client-3.7.0/releasenotes/source/stein.rst --- old/python-ironic-inspector-client-3.5.0/releasenotes/source/stein.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/releasenotes/source/stein.rst 2019-09-07 20:30:54.000000000 +0200 @@ -0,0 +1,6 @@ +=================================== + Stein Series Release Notes +=================================== + +.. release-notes:: + :branch: stable/stein diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/setup.cfg new/python-ironic-inspector-client-3.7.0/setup.cfg --- old/python-ironic-inspector-client-3.5.0/setup.cfg 2019-03-08 13:28:32.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/setup.cfg 2019-09-07 20:31:35.000000000 +0200 @@ -17,7 +17,8 @@ Programming Language :: Python :: 2 Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 [files] packages = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/test-requirements.txt new/python-ironic-inspector-client-3.7.0/test-requirements.txt --- old/python-ironic-inspector-client-3.5.0/test-requirements.txt 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/test-requirements.txt 2019-09-07 20:30:54.000000000 +0200 @@ -4,6 +4,7 @@ coverage!=4.4,>=4.0 # Apache-2.0 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 mock>=2.0.0 # BSD requests-mock>=1.2.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/tox.ini new/python-ironic-inspector-client-3.7.0/tox.ini --- old/python-ironic-inspector-client-3.5.0/tox.ini 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/tox.ini 2019-09-07 20:30:57.000000000 +0200 @@ -6,13 +6,14 @@ install_command = pip install {opts} {packages} usedevelop = True deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = coverage run --branch --include "ironic_inspector_client*" -m unittest discover ironic_inspector_client.test coverage report -m --fail-under 90 setenv = PYTHONDONTWRITEBYTECODE=1 +passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY [testenv:pep8] basepython = python3 @@ -25,14 +26,19 @@ deps = {[testenv]deps} -r{toxinidir}/functest-requirements.txt commands = - python -m ironic_inspector_client.test.functional + python -m ironic_inspector_client.test.functional {posargs} -[testenv:functional-py35] +[testenv:functional-py3] basepython = python3 deps = {[testenv]deps} -r{toxinidir}/functest-requirements.txt commands = - python -m ironic_inspector_client.test.functional + python -m ironic_inspector_client.test.functional {posargs} + +[testenv:functional-py36] +basepython = python3.6 +deps = {[testenv:functional-py3]deps} +commands = {[testenv:functional-py3]commands} [testenv:func] # Replaced in CI with "functional" environment but kept here as a @@ -44,7 +50,7 @@ [testenv:venv] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = {posargs} @@ -52,7 +58,7 @@ [testenv:releasenotes] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -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 @@ -60,13 +66,29 @@ [testenv:docs] basepython = python3 deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -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 = + sphinx-build -W -b latex doc/source doc/build/pdf + make -C doc/build/pdf + [flake8] +import-order-style = pep8 +application-import-names = ironic_inspector_client max-complexity=15 +# [H106] Don't put vim configuration in source files. +# [H203] Use assertIs(Not)None to check for None. +# [H204] Use assert(Not)Equal to check for equality. +# [H205] Use assert(Greater|Less)(Equal) for comparison. +# [H904] Delay string interpolations at logging calls. +enable-extensions=H106,H203,H204,H205,H904 [hacking] import_exceptions = ironic_inspector_client.common.i18n diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml new/python-ironic-inspector-client-3.7.0/zuul.d/project.yaml --- old/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/zuul.d/project.yaml 2019-09-07 20:30:54.000000000 +0200 @@ -1,9 +1,7 @@ - project: templates: - openstack-python-jobs - - openstack-python35-jobs - - openstack-python36-jobs - - openstack-python37-jobs + - openstack-python3-train-jobs - publish-openstack-docs-pti - check-requirements - release-notes-jobs-python3 @@ -11,14 +9,14 @@ check: jobs: - openstack-tox-functional - - openstack-tox-functional-py35 + - 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-py35 + - 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.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml new/python-ironic-inspector-client-3.7.0/zuul.d/python-ironic-inspector-client-jobs.yaml --- old/python-ironic-inspector-client-3.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml 2019-03-08 13:26:51.000000000 +0100 +++ new/python-ironic-inspector-client-3.7.0/zuul.d/python-ironic-inspector-client-jobs.yaml 2019-09-07 20:30:54.000000000 +0200 @@ -1,16 +1,15 @@ - job: name: python-ironic-inspector-client-base description: Base job for devstack/tempest based python-ironic-inspector-client jobs. - parent: devstack-tempest + parent: ironic-base timeout: 10800 required-projects: - openstack/ironic - openstack/ironic-inspector - - openstack/ironic-lib - - openstack/ironic-python-agent - openstack/ironic-tempest-plugin - - openstack/pyghmi - openstack/python-ironic-inspector-client + # NOTE(dtantsur): this should not be needed, but python 3 job doesn't + # work without it. - openstack/python-ironicclient - openstack/virtualbmc irrelevant-files: @@ -26,12 +25,7 @@ tempest_test_regex: ironic_tempest_plugin.tests.scenario.test_introspection_basic tempest_concurrency: 1 devstack_localrc: - DEFAULT_INSTANCE_TYPE: baremetal FORCE_CONFIG_DRIVE: True - INSTALL_TEMPEST: False # Don't install a tempest package globaly - OVERRIDE_PUBLIC_BRIDGE_MTU: 1400 - TEMPEST_PLUGINS: "'{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-tempest-plugin'" - VIRT_DRIVER: ironic BUILD_TIMEOUT: 600 IRONIC_BAREMETAL_BASIC_OPS: True IRONIC_BUILD_DEPLOY_RAMDISK: False @@ -55,8 +49,8 @@ SWIFT_TEMPURL_KEY: secretkey devstack_plugins: - ironic: git://git.openstack.org/openstack/ironic - ironic-inspector: git://git.openstack.org/openstack/ironic-inspector + ironic: https://opendev.org/openstack/ironic + ironic-inspector: https://opendev.org/openstack/ironic-inspector zuul_copy_output: '{{ devstack_base_dir }}/ironic-bm-logs': 'logs' devstack_services: