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