Hello community,

here is the log from the commit of package python-ironic-inspector-client for 
openSUSE:Factory checked in at 2019-05-03 22:40:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ironic-inspector-client (Old)
 and      /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.5148 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ironic-inspector-client"

Fri May  3 22:40:44 2019 rev:10 rq:692828 version:3.5.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-ironic-inspector-client/python-ironic-inspector-client.changes
    2018-09-26 14:22:55.101969876 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.5148/python-ironic-inspector-client.changes
  2019-05-03 22:40:47.299034523 +0200
@@ -1,0 +2,21 @@
+Mon Apr  8 12:27:57 UTC 2019 - cloud-de...@suse.de
+
+- update to version 3.5.0
+  - Remove dsvm from zuulv3 job names
+  - Support loading introspection rules from YAML files
+  - Update tox.ini to support Python 3.x unit tests
+  - Fix setup.cfg for release
+  - add python 3.7 unit test job
+  - Follow-up check-errors flag
+  - Change openstack-dev to openstack-discuss
+  - Update reno for stable/rocky
+  - CI: stop trying to pull the tempest plugin from ironic-inspector
+  - Update min tox version to 2.0
+  - Add check-errors flag to Introspection
+  - switch documentation job to new PTI
+  - Change basepython to python3
+  - add python 3.6 unit test job
+  - Zuul migration
+  - import zuul job settings from project-config
+
+-------------------------------------------------------------------

Old:
----
  python-ironic-inspector-client-3.3.0.tar.gz

New:
----
  python-ironic-inspector-client-3.5.0.tar.gz

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

Other differences:
------------------
++++++ python-ironic-inspector-client.spec ++++++
--- /var/tmp/diff_new_pack.RIPGMt/_old  2019-05-03 22:40:47.699035365 +0200
+++ /var/tmp/diff_new_pack.RIPGMt/_new  2019-05-03 22:40:47.699035365 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-ironic-inspector-client
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           python-ironic-inspector-client
-Version:        3.3.0
+Version:        3.5.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.3.0.tar.gz
+Source0:        
https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-client/python-ironic-inspector-client-3.5.0.tar.gz
 BuildRequires:  openstack-macros
 BuildRequires:  python-Sphinx
 BuildRequires:  python-devel
@@ -54,7 +54,7 @@
 This package contains Python client and command line tool for Ironic Inspector.
 
 %prep
-%autosetup -p1 -n python-ironic-inspector-client-3.3.0
+%autosetup -p1 -n python-ironic-inspector-client-3.5.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.RIPGMt/_old  2019-05-03 22:40:47.719035407 +0200
+++ /var/tmp/diff_new_pack.RIPGMt/_new  2019-05-03 22:40:47.719035407 +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/rocky</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/stein</param>
     <param name="output-name">python-ironic-inspector-client.spec</param>
-    <param 
name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/stable/rocky/requirements.txt</param>
+    <param 
name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/stable/stein/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.3.0.tar.gz -> 
python-ironic-inspector-client-3.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/AUTHORS 
new/python-ironic-inspector-client-3.5.0/AUTHORS
--- old/python-ironic-inspector-client-3.3.0/AUTHORS    2018-07-26 
10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/AUTHORS    2019-03-08 
13:28:32.000000000 +0100
@@ -1,20 +1,26 @@
+98k <18552437...@163.com>
 Andreas Jaeger <a...@suse.com>
 Anton Arefiev <aaref...@mirantis.com>
 Bob Fournier <bfour...@redhat.com>
 Cao Xuan Hoang <hoan...@vn.fujitsu.com>
 Clenimar Filemon <cleni...@lsd.ufcg.edu.br>
+Corey Bryant <corey.bry...@canonical.com>
 Dmitry Tantsur <divius.ins...@gmail.com>
 Dmitry Tantsur <dtant...@redhat.com>
 Doug Hellmann <d...@doughellmann.com>
 Flavio Percoco <flape...@gmail.com>
+Iury Gregory Melo Ferreira <imelo...@redhat.com>
+Iury Gregory Melo Ferreira <iurygreg...@gmail.com>
 James E. Blair <jebl...@redhat.com>
 Janonymous <janonymous.codevult...@gmail.com>
 Jay Faulkner <j...@jvf.cc>
 Jim Rollenhagen <j...@jimrollenhagen.com>
 John L. Villalovos <john.l.villalo...@intel.com>
 Julia Kreger <juliaashleykre...@gmail.com>
+Kaifeng Wang <kaifen...@gmail.com>
 Luong Anh Tuan <tua...@vn.fujitsu.com>
 Monty Taylor <mord...@inaugust.com>
+Nguyen Hai Truong <truon...@vn.fujitsu.com>
 Nguyen Hung Phuong <phuon...@vn.fujitsu.com>
 OpenStack Release Bot <infra-r...@openstack.org>
 Ruby Loo <ruby....@intel.com>
@@ -22,7 +28,6 @@
 Tang Chen <chen.t...@easystack.cn>
 Tao Li <litao3...@126.com>
 Yuiko Takada <yui-tak...@tg.jp.nec.com>
-Zuul <z...@review.openstack.org>
 chenxing <chen.x...@99cloud.net>
 dparalen <vetri...@gmail.com>
 fpxie <fp...@fiberhome.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/ChangeLog 
new/python-ironic-inspector-client-3.5.0/ChangeLog
--- old/python-ironic-inspector-client-3.3.0/ChangeLog  2018-07-26 
10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ChangeLog  2019-03-08 
13:28:32.000000000 +0100
@@ -1,6 +1,30 @@
 CHANGES
 =======
 
+3.5.0
+-----
+
+* add python 3.7 unit test job
+* Remove dsvm from zuulv3 job names
+* Zuul migration
+* Update tox.ini to support Python 3.x unit tests
+* Change openstack-dev to openstack-discuss
+* Follow-up check-errors flag
+* Add check-errors flag to Introspection
+* Update min tox version to 2.0
+
+3.4.0
+-----
+
+* Change basepython to python3
+* Support loading introspection rules from YAML files
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* CI: stop trying to pull the tempest plugin from ironic-inspector
+* Update reno for stable/rocky
+* Fix setup.cfg for release
+
 3.3.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/PKG-INFO 
new/python-ironic-inspector-client-3.5.0/PKG-INFO
--- old/python-ironic-inspector-client-3.3.0/PKG-INFO   2018-07-26 
10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/PKG-INFO   2019-03-08 
13:28:32.000000000 +0100
@@ -1,10 +1,10 @@
 Metadata-Version: 2.1
 Name: python-ironic-inspector-client
-Version: 3.3.0
+Version: 3.5.0
 Summary: Python client for Ironic Inspector
 Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/
 Author: OpenStack
-Author-email: openstack-...@lists.openstack.org
+Author-email: openstack-disc...@lists.openstack.org
 License: Apache-2
 Description: Ironic Inspector Client
         =======================
@@ -46,5 +46,5 @@
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: cli
 Provides-Extra: test
+Provides-Extra: cli
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/RELEASENOTES.rst 
new/python-ironic-inspector-client-3.5.0/RELEASENOTES.rst
--- old/python-ironic-inspector-client-3.3.0/RELEASENOTES.rst   2018-07-26 
10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/RELEASENOTES.rst   1970-01-01 
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-==============================
-python-ironic-inspector-client
-==============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/doc/source/cli/index.rst 
new/python-ironic-inspector-client-3.5.0/doc/source/cli/index.rst
--- old/python-ironic-inspector-client-3.3.0/doc/source/cli/index.rst   
2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/doc/source/cli/index.rst   
2019-03-08 13:26:51.000000000 +0100
@@ -21,7 +21,7 @@
 
 ::
 
-    $ openstack baremetal introspection start [--wait] NODE_ID [NODE_ID ...]
+    $ openstack baremetal introspection start [--wait] [--check-errors] 
NODE_ID [NODE_ID ...]
 
 * ``NODE_ID`` - Ironic node UUID or name;
 
@@ -36,6 +36,14 @@
 With ``--wait`` flag it waits until introspection ends for all given nodes,
 then displays the results as a table.
 
+The ``--check-errors`` flag verifies if any error occurred during the
+introspection of the selected nodes while waiting for the results. If any error
+has occurred in the introspection result of selected nodes no output is
+displayed, otherwise it shows the result as a table.
+
+.. note::
+    ``--check-errors`` can only be used with ``--wait``
+
 Query introspection status
 --------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/shell.py 
new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py
--- old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/shell.py   
2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py   
2019-03-08 13:26:51.000000000 +0100
@@ -19,7 +19,10 @@
 import sys
 
 from osc_lib.command import command
+from osc_lib import exceptions
+from osc_lib.i18n import _
 from osc_lib import utils
+import yaml
 
 import ironic_inspector_client
 from ironic_inspector_client import resource as res
@@ -70,9 +73,19 @@
                             action='store_true',
                             help='wait for introspection to finish; the result'
                             ' will be displayed in the end')
+        parser.add_argument('--check-errors',
+                            action='store_true',
+                            help='check if errors occurred during the'
+                            ' introspection; if any error occurs only the'
+                            ' errors are displayed; can only be used with'
+                            ' --wait')
         return parser
 
     def take_action(self, parsed_args):
+        if parsed_args.check_errors and not parsed_args.wait:
+            raise exceptions.CommandError(
+                _("--check-errors can only be used with --wait"))
+
         client = self.app.client_manager.baremetal_introspection
         for uuid in parsed_args.node:
             client.introspect(uuid)
@@ -82,6 +95,14 @@
             result = client.wait_for_finish(parsed_args.node)
             result = [(uuid, s.get('error'))
                       for uuid, s in result.items()]
+            if parsed_args.check_errors:
+                uuids_errors = "\n".join("%s (%s)" % node_info
+                                         for node_info in result
+                                         if node_info[1] is not None)
+                if uuids_errors:
+                    raise Exception(
+                        _("Introspection failed for some nodes: %s")
+                        % uuids_errors)
         else:
             result = []
 
@@ -176,19 +197,19 @@
 
 
 class RuleImportCommand(command.Lister):
-    """Import one or several introspection rules from a json file."""
+    """Import one or several introspection rules from a JSON/YAML file."""
 
     COLUMNS = ("UUID", "Description")
 
     def get_parser(self, prog_name):
         parser = super(RuleImportCommand, self).get_parser(prog_name)
-        parser.add_argument('file', help='JSON file to import, may contain '
-                            'one or several rules')
+        parser.add_argument('file', help='JSON or YAML file to import, may '
+                            'contain one or several rules')
         return parser
 
     def take_action(self, parsed_args):
         with open(parsed_args.file, 'r') as fp:
-            rules = json.load(fp)
+            rules = yaml.safe_load(fp)
             if not isinstance(rules, list):
                 rules = [rules]
         client = self.app.client_manager.baremetal_introspection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/functional.py
 
new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py
--- 
old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/functional.py
 2018-07-26 10:45:22.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py
 2019-03-08 13:26:51.000000000 +0100
@@ -22,6 +22,8 @@
 import tempfile
 import unittest
 
+import six
+
 from ironic_inspector.common import swift
 from ironic_inspector import introspection_state as istate
 from ironic_inspector.test import functional
@@ -332,17 +334,21 @@
         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'
         err = self.run_cli('start', expect_error=True)
-        self.assertIn('too few arguments', err)
+        self.assertIn(msg_missing_param, err)
         err = self.run_cli('status', expect_error=True)
-        self.assertIn('too few arguments', err)
+        self.assertIn(msg_missing_param, err)
         err = self.run_cli('rule', 'show', 'uuid', expect_error=True)
         self.assertIn('not found', err)
         err = self.run_cli('rule', 'delete', 'uuid', expect_error=True)
         self.assertIn('not found', err)
 
         err = self.run_cli('interface', 'list', expect_error=True)
-        self.assertIn('too few arguments', err)
+        self.assertIn(msg_missing_param, err)
 
     def test_introspect_get_status(self):
         self.run_cli('start', self.uuid)
@@ -373,7 +379,7 @@
                 'actions': [{'action': 'fail', 'message': 'boom'}],
                 'description': 'Cool actions',
                 'uuid': self.uuid}
-        with tempfile.NamedTemporaryFile() as fp:
+        with tempfile.NamedTemporaryFile(mode='w') as fp:
             json.dump(rule, fp)
             fp.flush()
             res = self.run_cli('rule', 'import', fp.name, parse_json=True)
@@ -393,7 +399,7 @@
         res = self.run_cli('rule', 'list', parse_json=True)
         self.assertEqual([], res)
 
-        with tempfile.NamedTemporaryFile() as fp:
+        with tempfile.NamedTemporaryFile(mode='w') as fp:
             rule.pop('uuid')
             json.dump([rule, rule], fp)
             fp.flush()
@@ -420,23 +426,21 @@
                          u'Switch Port VLAN IDs': [101, 102, 106]}
 
         res = self.run_cli('interface', 'list', self.uuid, parse_json=True)
-        res.sort()
-        self.assertEqual(expected_eth1, res[0])
-        self.assertEqual(expected_eth3, res[1])
+        self.assertIn(expected_eth1, res)
+        self.assertIn(expected_eth3, res)
 
         # Filter on vlan
         res = self.run_cli('interface', 'list', self.uuid, '--vlan', '106',
                            parse_json=True)
-        res.sort()
-        self.assertEqual(expected_eth3, res[0])
+        self.assertIn(expected_eth3, res)
 
         # Select fields
         res = self.run_cli('interface', 'list', self.uuid, '--fields',
                            'switch_port_mtu',
                            parse_json=True)
-        res.sort()
-        self.assertEqual({u'Switch Port MTU': 1514}, res[0])
-        self.assertEqual({u'Switch Port MTU': 9216}, res[1])
+
+        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)
     def test_interface_show(self, get_mock):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/test_shell.py
 
new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py
--- 
old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/test_shell.py
 2018-07-26 10:45:22.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py
 2019-03-08 13:26:51.000000000 +0100
@@ -15,6 +15,7 @@
 
 import collections
 import mock
+from osc_lib import exceptions
 from osc_lib.tests import utils
 import six
 import tempfile
@@ -101,6 +102,56 @@
         self.assertEqual([('uuid1', None), ('uuid2', 'boom'), ('uuid3', None)],
                          sorted(values))
 
+    def test_wait_with_check_errors_no_raise_exception(self):
+        nodes = ['uuid1', 'uuid2', 'uuid3']
+        arglist = ['--wait'] + ['--check-errors'] + nodes
+        verifylist = [('node', nodes), ('wait', True),  ('check_errors', True)]
+        self.client.wait_for_finish.return_value = {
+            'uuid1': {'finished': True, 'error': None},
+            'uuid2': {'finished': True, 'error': None},
+            'uuid3': {'finished': True, 'error': None},
+        }
+
+        cmd = shell.StartCommand(self.app, None)
+        parsed_args = self.check_parser(cmd, arglist, verifylist)
+        _c, values = cmd.take_action(parsed_args)
+
+        calls = [mock.call(node) for node in nodes]
+        self.assertEqual(calls, self.client.introspect.call_args_list)
+        self.assertEqual([('uuid1', None), ('uuid2', None), ('uuid3', None)],
+                         sorted(values))
+
+    def test_wait_with_check_errors(self):
+        nodes = ['uuid1', 'uuid2', 'uuid3']
+        arglist = ['--wait'] + ['--check-errors'] + nodes
+        verifylist = [('node', nodes), ('wait', True), ('check_errors', True)]
+        self.client.wait_for_finish.return_value = {
+            'uuid1': {'finished': True, 'error': None},
+            'uuid2': {'finished': True, 'error': 'boom'},
+            'uuid3': {'finished': True, 'error': None},
+        }
+
+        cmd = shell.StartCommand(self.app, None)
+        parsed_args = self.check_parser(cmd, arglist, verifylist)
+        msg = "Introspection failed for"
+        self.assertRaisesRegex(Exception, msg, cmd.take_action, parsed_args)
+
+    def test_check_errors_alone(self):
+        nodes = ['uuid1', 'uuid2', 'uuid3']
+        arglist = ['--check-errors'] + nodes
+        verifylist = [('node', nodes), ('check_errors', True)]
+        self.client.wait_for_finish.return_value = {
+            'uuid1': {'finished': True, 'error': None},
+            'uuid2': {'finished': True, 'error': 'boom'},
+            'uuid3': {'finished': True, 'error': None},
+        }
+
+        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,
+                               parsed_args)
+
     def test_abort(self):
         node = 'uuid1'
         arglist = [node]
@@ -214,6 +265,32 @@
         f.flush()
 
         arglist = [f.name]
+        verifylist = [('file', f.name)]
+
+        self.rules_api.from_json.side_effect = iter([
+            {'uuid': '1', 'description': 'd1', 'links': []},
+            {'uuid': '2', 'description': 'd2', 'links': []}
+        ])
+
+        cmd = shell.RuleImportCommand(self.app, None)
+        parsed_args = self.check_parser(cmd, arglist, verifylist)
+        cols, values = cmd.take_action(parsed_args)
+
+        self.assertEqual(('UUID', 'Description'), cols)
+        self.assertEqual([('1', 'd1'), ('2', 'd2')], values)
+        self.rules_api.from_json.assert_any_call({'foo': 'bar'})
+        self.rules_api.from_json.assert_any_call({'answer': 42})
+
+    def test_import_yaml(self):
+        f = tempfile.NamedTemporaryFile()
+        self.addCleanup(f.close)
+        f.write(b"""---
+- foo: bar
+- answer: 42
+""")
+        f.flush()
+
+        arglist = [f.name]
         verifylist = [('file', f.name)]
 
         self.rules_api.from_json.side_effect = iter([
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
 
new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
--- 
old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
     2018-07-26 10:45:22.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
     1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/logs/**
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
 
new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
--- 
old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
      2018-07-26 10:45:22.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
      1970-01-01 01:00:00.000000000 +0100
@@ -1,143 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tempest-dsvm-python-ironic-inspector-client 
from
-    old job gate-tempest-dsvm-python-ironic-inspector-client-ubuntu-xenial
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          cat > clonemap.yaml << EOF
-          clonemap:
-            - name: openstack-infra/devstack-gate
-              dest: devstack-gate
-          EOF
-          /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              git://git.openstack.org \
-              openstack-infra/devstack-gate
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export DEVSTACK_GATE_TEMPEST_REGEX="InspectorBasicTest"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export PROJECTS="openstack/ironic-inspector $PROJECTS"
-          export PROJECTS="openstack/python-ironic-inspector-client $PROJECTS"
-          export DEVSTACK_GATE_IRONIC_INSPECTOR=1
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector 
git://git.openstack.org/openstack/ironic-inspector"
-
-          # use tempest plugin
-          if [[ "$ZUUL_BRANCH" != "master" ]] ; then
-            # NOTE(jroll) if this is not a patch against master, then
-            # fetch master to install the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' 
git+git://git.openstack.org/openstack/ironic-inspector'"
-          else
-            # on master, use the local change, so we can pick up any changes 
to the plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' 
/opt/stack/new/ironic-inspector'"
-          fi
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-extra-vars
-            export 
DEVSTACK_PROJECT_FROM_GIT="python-ironic-inspector-client,$DEVSTACK_PROJECT_FROM_GIT"
-
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          cat << 'EOF' >> ironic-vars-early
-            # use tempest plugin
-            export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' 
/opt/stack/new/ironic-tempest-plugin'"
-            export TEMPEST_CONCURRENCY=1
-          EOF
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          export PROJECTS="openstack/ironic $PROJECTS"
-          export PROJECTS="openstack/ironic-lib $PROJECTS"
-          export PROJECTS="openstack/ironic-python-agent $PROJECTS"
-          export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
-          export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
-          export PROJECTS="openstack/virtualbmc $PROJECTS"
-          export PYTHONUNBUFFERED=true
-          export DEVSTACK_GATE_TEMPEST=1
-          export DEVSTACK_GATE_IRONIC=1
-          export DEVSTACK_GATE_NEUTRON=1
-          export DEVSTACK_GATE_VIRT_DRIVER=ironic
-          export DEVSTACK_GATE_CONFIGDRIVE=1
-          export DEVSTACK_GATE_IRONIC_DRIVER=ipmi
-          export 
DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_DEPLOY_INTERFACE=direct"
-          # direct deploy requires Swift temporary URLs
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_ENABLE_TEMPURLS=True"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_TEMPURL_KEY=secretkey"
-
-          export BRANCH_OVERRIDE=default
-          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
-              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-          fi
-
-          if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] 
; then
-              export DEVSTACK_GATE_TLSPROXY=1
-          fi
-
-          export 
DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-
-          export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
-          export 
DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
-          # Ensure the ironic-vars-EARLY file exists
-          touch ironic-vars-early
-          # Pull in the EARLY variables injected by the optional builders
-          source ironic-vars-early
-
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic 
git://git.openstack.org/openstack/ironic"
-
-          # Ensure the ironic-EXTRA-vars file exists
-          touch ironic-extra-vars
-          # Pull in the EXTRA variables injected by the optional builders
-          source ironic-extra-vars
-
-          cp devstack-gate/devstack-vm-gate-wrap.sh 
./safe-devstack-vm-gate-wrap.sh
-          ./safe-devstack-vm-gate-wrap.sh
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/PKG-INFO
 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO
--- 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/PKG-INFO
   2018-07-26 10:48:57.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO
   2019-03-08 13:28:32.000000000 +0100
@@ -1,10 +1,10 @@
 Metadata-Version: 2.1
 Name: python-ironic-inspector-client
-Version: 3.3.0
+Version: 3.5.0
 Summary: Python client for Ironic Inspector
 Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/
 Author: OpenStack
-Author-email: openstack-...@lists.openstack.org
+Author-email: openstack-disc...@lists.openstack.org
 License: Apache-2
 Description: Ironic Inspector Client
         =======================
@@ -46,5 +46,5 @@
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: cli
 Provides-Extra: test
+Provides-Extra: cli
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/SOURCES.txt
 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt
--- 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/SOURCES.txt
        2018-07-26 10:48:58.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt
        2019-03-08 13:28:32.000000000 +0100
@@ -28,8 +28,6 @@
 ironic_inspector_client/test/test_init.py
 ironic_inspector_client/test/test_shell.py
 ironic_inspector_client/test/test_v1.py
-playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
-playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
 python_ironic_inspector_client.egg-info/PKG-INFO
 python_ironic_inspector_client.egg-info/SOURCES.txt
 python_ironic_inspector_client.egg-info/dependency_links.txt
@@ -52,6 +50,7 @@
 releasenotes/notes/drop-setting-ipmi-creds-feature-4965aaba75a40326.yaml
 releasenotes/notes/interface-list-show-39cedaca3cd9db9b.yaml
 releasenotes/notes/introspect-multiple-uuids-0790d57e0a0b9292.yaml
+releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
 releasenotes/notes/introspection-wait-a7e8fe832c3aaff9.yaml
 releasenotes/notes/ks-session-ac614a9abda3e228.yaml
 releasenotes/notes/list-introspection-statuses-4ad9e7e56823e754.yaml
@@ -64,6 +63,7 @@
 releasenotes/notes/remove-client-64778b2011c26f6b.yaml
 releasenotes/notes/rename-func-427aa11c60c2838b.yaml
 releasenotes/notes/reprocess-stored-introspection-data-c4910325254426c5.yaml
+releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
 releasenotes/notes/service-catalog-45466d1cfd330231.yaml
 releasenotes/source/conf.py
 releasenotes/source/index.rst
@@ -73,8 +73,9 @@
 releasenotes/source/ocata.rst
 releasenotes/source/pike.rst
 releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
 releasenotes/source/unreleased.rst
 releasenotes/source/_static/.placeholder
 releasenotes/source/_templates/.placeholder
-zuul.d/legacy-python-ironic-inspector-jobs.yaml
-zuul.d/project.yaml
\ No newline at end of file
+zuul.d/project.yaml
+zuul.d/python-ironic-inspector-client-jobs.yaml
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/pbr.json
 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/pbr.json
--- 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/pbr.json
   2018-07-26 10:48:57.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/pbr.json
   2019-03-08 13:28:32.000000000 +0100
@@ -1 +1 @@
-{"git_version": "53bf4e8", "is_release": true}
\ No newline at end of file
+{"git_version": "9bb1150", "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.3.0/python_ironic_inspector_client.egg-info/requires.txt
 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/requires.txt
--- 
old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/requires.txt
       2018-07-26 10:48:57.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/requires.txt
       2019-03-08 13:28:32.000000000 +0100
@@ -3,6 +3,7 @@
 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
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
 
new/python-ironic-inspector-client-3.5.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
--- 
old/python-ironic-inspector-client-3.3.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-ironic-inspector-client-3.5.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
        2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,8 @@
+---
+features:
+  - |
+    Adds ``--check-errors`` flag to verify if any error occurred when
+    waiting for the introspection to finish for the selected nodes.
+    If any error occurs no output is displayed and the exit status for the
+    command is different from 0 (success).
+    The ``--check-errors`` option can only be used with ``--wait``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/releasenotes/notes/reno.cache 
new/python-ironic-inspector-client-3.5.0/releasenotes/notes/reno.cache
--- old/python-ironic-inspector-client-3.3.0/releasenotes/notes/reno.cache      
2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/notes/reno.cache      
1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
 
new/python-ironic-inspector-client-3.5.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
--- 
old/python-ironic-inspector-client-3.3.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-ironic-inspector-client-3.5.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
 2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+  - |
+    Supports importing introspection rules from YAML files (in addition to
+    already supported JSON format).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/releasenotes/source/index.rst 
new/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst
--- old/python-ironic-inspector-client-3.3.0/releasenotes/source/index.rst      
2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst      
2019-03-08 13:26:51.000000000 +0100
@@ -6,6 +6,7 @@
    :maxdepth: 1
 
    unreleased
+   rocky
    queens
    pike
    ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/releasenotes/source/rocky.rst 
new/python-ironic-inspector-client-3.5.0/releasenotes/source/rocky.rst
--- old/python-ironic-inspector-client-3.3.0/releasenotes/source/rocky.rst      
1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/source/rocky.rst      
2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+   :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/requirements.txt 
new/python-ironic-inspector-client-3.5.0/requirements.txt
--- old/python-ironic-inspector-client-3.3.0/requirements.txt   2018-07-26 
10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/requirements.txt   2019-03-08 
13:26:51.000000000 +0100
@@ -6,5 +6,6 @@
 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.3.0/setup.cfg 
new/python-ironic-inspector-client-3.5.0/setup.cfg
--- old/python-ironic-inspector-client-3.3.0/setup.cfg  2018-07-26 
10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/setup.cfg  2019-03-08 
13:28:32.000000000 +0100
@@ -3,7 +3,7 @@
 summary = Python client for Ironic Inspector
 description-file = README.rst
 author = OpenStack
-author-email = openstack-...@lists.openstack.org
+author-email = openstack-disc...@lists.openstack.org
 home-page = https://docs.openstack.org/python-ironic-inspector-client/latest/
 license = Apache-2
 classifier = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/tox.ini 
new/python-ironic-inspector-client-3.5.0/tox.ini
--- old/python-ironic-inspector-client-3.3.0/tox.ini    2018-07-26 
10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/tox.ini    2019-03-08 
13:26:51.000000000 +0100
@@ -1,5 +1,6 @@
 [tox]
-envlist = py35,py27,pep8,functional
+minversion = 2.0
+envlist = py3,py27,pep8,functional
 
 [testenv]
 install_command = pip install {opts} {packages}
@@ -14,7 +15,7 @@
 setenv = PYTHONDONTWRITEBYTECODE=1
 
 [testenv:pep8]
-basepython = python2.7
+basepython = python3
 commands =
     flake8 ironic_inspector_client
     doc8 README.rst doc/source
@@ -26,10 +27,17 @@
 commands =
     python -m ironic_inspector_client.test.functional
 
+[testenv:functional-py35]
+basepython = python3
+deps = {[testenv]deps}
+    -r{toxinidir}/functest-requirements.txt
+commands =
+    python -m ironic_inspector_client.test.functional
+
 [testenv:func]
 # Replaced in CI with "functional" environment but kept here as a
 # backwards-compatibility shim for transition
-basepython = python2.7
+basepython = python3
 deps = {[testenv:functional]deps}
 commands = {[testenv:functional]commands}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml
 
new/python-ironic-inspector-client-3.5.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml
--- 
old/python-ironic-inspector-client-3.3.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml
    2018-07-26 10:45:22.000000000 +0200
+++ 
new/python-ironic-inspector-client-3.5.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml
    1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-- job:
-    name: python-ironic-inspector-client-tempest-dsvm
-    parent: legacy-dsvm-base
-    irrelevant-files:
-      - ^(func|)test-requirements.txt$
-      - ^.*\.rst$
-      - ^doc/.*$
-      - ^ironic_inspector_client/test/.*$
-      - ^releasenotes/.*$
-      - ^setup.cfg$
-      - ^tools/.*$
-      - ^tox.ini$
-    required-projects:
-      - openstack-infra/devstack-gate
-      - openstack/ironic
-      - openstack/ironic-inspector
-      - openstack/ironic-lib
-      - openstack/ironic-python-agent
-      - openstack/ironic-tempest-plugin
-      - openstack/pyghmi
-      - openstack/python-ironic-inspector-client
-      - openstack/python-ironicclient
-      - openstack/tempest
-      - openstack/virtualbmc
-    run: playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
-    post-run: 
playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
-    timeout: 10800
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-ironic-inspector-client-3.3.0/zuul.d/project.yaml 
new/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml
--- old/python-ironic-inspector-client-3.3.0/zuul.d/project.yaml        
2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml        
2019-03-08 13:26:51.000000000 +0100
@@ -1,11 +1,24 @@
 - project:
+    templates:
+      - openstack-python-jobs
+      - openstack-python35-jobs
+      - openstack-python36-jobs
+      - openstack-python37-jobs
+      - publish-openstack-docs-pti
+      - check-requirements
+      - release-notes-jobs-python3
+      - openstackclient-plugin-jobs
     check:
       jobs:
         - openstack-tox-functional
-        - python-ironic-inspector-client-tempest-dsvm
+        - openstack-tox-functional-py35
+        - python-ironic-inspector-client-tempest-python2
+        - python-ironic-inspector-client-tempest-python3
         - openstack-tox-lower-constraints
     gate:
       jobs:
         - openstack-tox-functional
-        - python-ironic-inspector-client-tempest-dsvm
+        - openstack-tox-functional-py35
+        - 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.3.0/zuul.d/python-ironic-inspector-client-jobs.yaml
 
new/python-ironic-inspector-client-3.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml
--- 
old/python-ironic-inspector-client-3.3.0/zuul.d/python-ironic-inspector-client-jobs.yaml
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/python-ironic-inspector-client-3.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml
    2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,120 @@
+- job:
+    name: python-ironic-inspector-client-base
+    description: Base job for devstack/tempest based 
python-ironic-inspector-client jobs.
+    parent: devstack-tempest
+    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
+      - openstack/python-ironicclient
+      - openstack/virtualbmc
+    irrelevant-files:
+      - ^(func|)test-requirements.txt$
+      - ^.*\.rst$
+      - ^doc/.*$
+      - ^ironic_inspector_client/tests/.*$
+      - ^releasenotes/.*$
+      - ^setup.cfg$
+      - ^tox.ini$
+    vars:
+      tox_envlist: all
+      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
+        IRONIC_CALLBACK_TIMEOUT: 600
+        IRONIC_DEPLOY_DRIVER: ipmi
+        IRONIC_INSPECTOR_BUILD_RAMDISK: False
+        IRONIC_RAMDISK_TYPE: tinyipa
+        IRONIC_TEMPEST_BUILD_TIMEOUT: 600
+        IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False
+        IRONIC_VM_COUNT: 1
+        IRONIC_VM_EPHEMERAL_DISK: 0
+        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
+
+        Q_AGENT: openvswitch
+        Q_ML2_TENANT_NETWORK_TYPE: vxlan
+
+        SWIFT_ENABLE_TEMPURLS: True
+        SWIFT_TEMPURL_KEY: secretkey
+
+      devstack_plugins:
+        ironic: git://git.openstack.org/openstack/ironic
+        ironic-inspector: git://git.openstack.org/openstack/ironic-inspector
+      zuul_copy_output:
+        '{{ devstack_base_dir }}/ironic-bm-logs': 'logs'
+      devstack_services:
+        c-api: False
+        c-bak: False
+        c-sch: False
+        c-vol: False
+        cinder: False
+
+        s-account: True
+        s-container: True
+        s-object: True
+        s-proxy: True
+
+        dstat: True
+        g-api: True
+        g-reg: True
+        key: True
+        mysql: True
+        n-api: True
+        n-api-meta: True
+        n-cauth: True
+        n-cond: True
+        n-cpu: True
+        n-novnc: True
+        n-obj: True
+        n-sch: True
+        placement-api: True
+        q-agt: False
+        q-dhcp: False
+        q-l3: False
+        q-meta: False
+        q-metering: False
+        q-svc: False
+        neutron-api: True
+        neutron-agent: True
+        neutron-dhcp: True
+        neutron-l3: True
+        neutron-metadata-agent: True
+        neutron-metering: True
+        rabbit: True
+        ir-api: True
+        ir-cond: True
+        ironic-inspector: True
+        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


Reply via email to