Hello community,
here is the log from the commit of package python-ironic-inspector-client for
openSUSE:Factory checked in at 2016-10-13 11:32:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ironic-inspector-client (Old)
and /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ironic-inspector-client"
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-ironic-inspector-client/python-ironic-inspector-client.changes
2016-09-30 15:28:49.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new/python-ironic-inspector-client.changes
2016-10-13 11:32:39.000000000 +0200
@@ -1,0 +2,20 @@
+Sun Oct 2 12:20:17 UTC 2016 - [email protected]
+
+- update to 1.9.0:
+ * Sync tools/tox_install.sh
+ * Using assertIsNone() is preferred over assertIs(None,..)
+ * Switch to osc-lib instead of cliff
+ * Add functional tests for CLI
+ * Updated from global requirements
+ * Increase verbosity for functional tests
+ * Add functional test for wait_for_finish
+ * Use constraints for all the things
+ * Fix functional tests broken by the latest refactoring
+ * Deprecate global functions in favor of ClientV1 methods
+ * Updated from global requirements
+ * Updated from global requirements
+ * Add Python 3.5 tox env and detailed setup.cfg classifiers
+ * Updated from global requirements
+ * Add a test dependency on requests-mock
+
+-------------------------------------------------------------------
Old:
----
python-ironic-inspector-client-1.8.0.tar.gz
New:
----
python-ironic-inspector-client-1.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ironic-inspector-client.spec ++++++
--- /var/tmp/diff_new_pack.jyPHqP/_old 2016-10-13 11:32:40.000000000 +0200
+++ /var/tmp/diff_new_pack.jyPHqP/_new 2016-10-13 11:32:40.000000000 +0200
@@ -18,7 +18,7 @@
%global sname python-ironic-inspector-client
Name: python-ironic-inspector-client
-Version: 1.8.0
+Version: 1.9.0
Release: 0
Summary: Python client and CLI tool for Ironic Inspector
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.jyPHqP/_old 2016-10-13 11:32:41.000000000 +0200
+++ /var/tmp/diff_new_pack.jyPHqP/_new 2016-10-13 11:32:41.000000000 +0200
@@ -1,13 +1,11 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/python-ironic-inspector-client/python-ironic-inspector-client.spec.j2</param>
+ <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/openstack/python-ironic-inspector-client/python-ironic-inspector-client.spec.j2</param>
<param name="output-name">python-ironic-inspector-client.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/master/global-requirements.txt</param>
+ <param
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/global-requirements.txt</param>
</service>
<service mode="disabled" name="download_files">
<param name="changesgenerate">enable</param>
</service>
- <service name="refresh_patches" mode="disabled">
- <param name="changesgenerate">enable</param>
- </service>
+ <service name="format_spec_file" mode="disabled"/>
</services>
++++++ python-ironic-inspector-client-1.8.0.tar.gz ->
python-ironic-inspector-client-1.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/AUTHORS
new/python-ironic-inspector-client-1.9.0/AUTHORS
--- old/python-ironic-inspector-client-1.8.0/AUTHORS 2016-07-11
16:19:14.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/AUTHORS 2016-09-01
10:09:05.000000000 +0200
@@ -1,8 +1,12 @@
+Andreas Jaeger <[email protected]>
Anton Arefiev <[email protected]>
Clenimar Filemon <[email protected]>
+Dmitry Tantsur <[email protected]>
Dmitry Tantsur <[email protected]>
Doug Hellmann <[email protected]>
Janonymous <[email protected]>
+Jim Rollenhagen <[email protected]>
+Luong Anh Tuan <[email protected]>
Monty Taylor <[email protected]>
Tang Chen <[email protected]>
Yuiko Takada <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/ChangeLog
new/python-ironic-inspector-client-1.9.0/ChangeLog
--- old/python-ironic-inspector-client-1.8.0/ChangeLog 2016-07-11
16:19:14.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/ChangeLog 2016-09-01
10:09:05.000000000 +0200
@@ -1,6 +1,25 @@
CHANGES
=======
+1.9.0
+-----
+
+* Sync tools/tox_install.sh
+* Using assertIsNone() is preferred over assertIs(None,..)
+* Switch to osc-lib instead of cliff
+* Add functional tests for CLI
+* Updated from global requirements
+* Increase verbosity for functional tests
+* Add functional test for wait_for_finish
+* Use constraints for all the things
+* Fix functional tests broken by the latest refactoring
+* Deprecate global functions in favor of ClientV1 methods
+* Updated from global requirements
+* Updated from global requirements
+* Add Python 3.5 tox env and detailed setup.cfg classifiers
+* Updated from global requirements
+* Add a test dependency on requests-mock
+
1.8.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/PKG-INFO
new/python-ironic-inspector-client-1.9.0/PKG-INFO
--- old/python-ironic-inspector-client-1.8.0/PKG-INFO 2016-07-11
16:19:15.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/PKG-INFO 2016-09-01
10:09:06.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-ironic-inspector-client
-Version: 1.8.0
+Version: 1.9.0
Summary: Python client for Ironic Inspector
Home-page: https://launchpad.net/python-ironic-inspector-client
Author: UNKNOWN
@@ -235,29 +235,6 @@
$ openstack baremetal introspection rule delete <UUID>
- Shortcut Functions
- ~~~~~~~~~~~~~~~~~~
-
- The following functions are available for simplified access to the
most common
- functionality:
-
- * Starting introspection::
-
- ironic_inspector_client.introspect(uuid[, new_ipmi_password[,
new_ipmi_username]][, base_url][, api_version] **)
-
- * Getting introspection status::
-
- ironic_inspector_client.get_status(uuid[, base_url][, api_version]
**)
-
- * Getting API versions supported by a server::
-
- ironic_inspector_client.server_api_versions([base_url] **)
-
- Here ``base_url`` argument is the same as ``inspector_url`` argument
- to the ``ClientV1`` constructor. Keyword arguments are passed to the
client
- constructor intact. The first 2 functions also accept deprecated
``auth_token``
- argument, which should not be used.
-
Using names instead of UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -284,4 +261,7 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/README.rst
new/python-ironic-inspector-client-1.9.0/README.rst
--- old/python-ironic-inspector-client-1.8.0/README.rst 2016-07-11
16:16:59.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/README.rst 2016-09-01
10:06:39.000000000 +0200
@@ -227,29 +227,6 @@
$ openstack baremetal introspection rule delete <UUID>
-Shortcut Functions
-~~~~~~~~~~~~~~~~~~
-
-The following functions are available for simplified access to the most common
-functionality:
-
-* Starting introspection::
-
- ironic_inspector_client.introspect(uuid[, new_ipmi_password[,
new_ipmi_username]][, base_url][, api_version] **)
-
-* Getting introspection status::
-
- ironic_inspector_client.get_status(uuid[, base_url][, api_version] **)
-
-* Getting API versions supported by a server::
-
- ironic_inspector_client.server_api_versions([base_url] **)
-
-Here ``base_url`` argument is the same as ``inspector_url`` argument
-to the ``ClientV1`` constructor. Keyword arguments are passed to the client
-constructor intact. The first 2 functions also accept deprecated ``auth_token``
-argument, which should not be used.
-
Using names instead of UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/client.py
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/client.py
--- old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/client.py
2016-07-11 16:16:59.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/client.py
2016-09-01 10:06:39.000000000 +0200
@@ -13,10 +13,15 @@
"""Shorthand client functions using V1 API."""
+import logging
+
from ironic_inspector_client.common import http
+from ironic_inspector_client.common.i18n import _LW
from ironic_inspector_client import v1
+LOG = logging.getLogger(__name__)
+
DEFAULT_API_VERSION = v1.DEFAULT_API_VERSION
MAX_API_VERSION = v1.MAX_API_VERSION
@@ -31,6 +36,8 @@
api_version=DEFAULT_API_VERSION, session=None, **kwargs):
"""Start introspection for a node.
+ This function is deprecated. Please use ClientV1.introspect.
+
:param uuid: node uuid
:param base_url: *Ironic Inspector* URL in form: http://host:port[/ver],
defaults to ``http://<current host>:5050/v1``.
@@ -48,6 +55,8 @@
:raises: VersionNotSupported if requested api_version is not supported
:raises: *requests* library exception on connection problems.
"""
+ LOG.warning(_LW('The "introspect" function is deprecated, please use '
+ 'ClientV1.introspect method instead'))
c = v1.ClientV1(api_version=api_version, auth_token=auth_token,
inspector_url=base_url, session=session, **kwargs)
return c.introspect(uuid, new_ipmi_username=new_ipmi_username,
@@ -58,6 +67,8 @@
api_version=DEFAULT_API_VERSION, session=None, **kwargs):
"""Get introspection status for a node.
+ This function is deprecated. Please use ClientV1.get_status.
+
New in Ironic Inspector version 1.0.0.
:param uuid: node uuid.
:param base_url: *Ironic Inspector* URL in form: http://host:port[/ver],
@@ -71,6 +82,8 @@
:raises: VersionNotSupported if requested api_version is not supported
:raises: *requests* library exception on connection problems.
"""
+ LOG.warning(_LW('The "get_status" function is deprecated, please use '
+ 'ClientV1.get_status method instead'))
c = v1.ClientV1(api_version=api_version, auth_token=auth_token,
inspector_url=base_url, session=session, **kwargs)
return c.get_status(uuid)
@@ -79,6 +92,8 @@
def server_api_versions(base_url=None, session=None, **kwargs):
"""Get minimum and maximum supported API versions from a server.
+ This function is deprecated. Please use ClientV1.server_api_versions.
+
:param base_url: *Ironic Inspector* URL in form: http://host:port[/ver],
defaults to ``http://<current host>:5050/v1``.
:param session: keystone session (authentication is not required).
@@ -88,6 +103,8 @@
:raises: *requests* library exception on connection problems.
:raises: ValueError if returned version cannot be parsed
"""
+ LOG.warning(_LW('The "server_api_versions" function is deprecated, '
+ 'please use ClientV1.server_api_versions method instead'))
c = http.BaseClient(1, inspector_url=base_url, session=session, **kwargs)
return c.server_api_versions()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/shell.py
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/shell.py
--- old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/shell.py
2016-07-11 16:17:00.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/shell.py
2016-09-01 10:06:39.000000000 +0200
@@ -19,9 +19,7 @@
import logging
import sys
-from cliff import command
-from cliff import lister
-from cliff import show
+from osc_lib.command import command
from osc_lib import utils
import ironic_inspector_client
@@ -61,7 +59,7 @@
return parser
-class StartCommand(lister.Lister):
+class StartCommand(command.Lister):
"""Start the introspection."""
COLUMNS = ('UUID', 'Error')
@@ -117,7 +115,7 @@
client.reprocess(parsed_args.uuid)
-class StatusCommand(show.ShowOne):
+class StatusCommand(command.ShowOne):
"""Get introspection status."""
def get_parser(self, prog_name):
@@ -144,7 +142,7 @@
client.abort(parsed_args.uuid)
-class RuleImportCommand(lister.Lister):
+class RuleImportCommand(command.Lister):
"""Import one or several introspection rules from a json file."""
COLUMNS = ("UUID", "Description")
@@ -169,7 +167,7 @@
return self.COLUMNS, result
-class RuleListCommand(lister.Lister):
+class RuleListCommand(command.Lister):
"""List all introspection rules."""
COLUMNS = ("UUID", "Description")
@@ -182,7 +180,7 @@
return self.COLUMNS, rules
-class RuleShowCommand(show.ShowOne):
+class RuleShowCommand(command.ShowOne):
"""Show an introspection rule."""
def get_parser(self, prog_name):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/test/functional.py
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/test/functional.py
---
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/test/functional.py
2016-07-11 16:16:59.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/test/functional.py
2016-09-01 10:06:39.000000000 +0200
@@ -16,11 +16,14 @@
import json
import mock
-import requests
+import os
+import sys
+import tempfile
import unittest
from ironic_inspector.common import swift
from ironic_inspector.test import functional
+from oslo_concurrency import processutils
import ironic_inspector_client as client
@@ -51,6 +54,31 @@
status = self.client.get_status(self.uuid)
self.assertEqual({'finished': True, 'error': None}, status)
+ def test_wait_for_finish(self):
+ shared = [0] # mutable structure to hold number of retries
+
+ def fake_waiter(delay):
+ shared[0] += 1
+ if shared[0] == 2:
+ # On the second wait simulate data arriving
+ res = self.call_continue(self.data)
+ self.assertEqual({'uuid': self.uuid}, res)
+ elif shared[0] > 2:
+ # Just wait afterwards
+ eventlet.greenthread.sleep(delay)
+
+ self.client.introspect(self.uuid)
+ eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)
+
+ status = self.client.get_status(self.uuid)
+ self.assertEqual({'finished': False, 'error': None}, status)
+
+ self.client.wait_for_finish([self.uuid], sleep_function=fake_waiter,
+ retry_interval=functional.DEFAULT_SLEEP)
+
+ status = self.client.get_status(self.uuid)
+ self.assertEqual({'finished': True, 'error': None}, status)
+
@mock.patch.object(swift, 'store_introspection_data', autospec=True)
@mock.patch.object(swift, 'get_introspection_data', autospec=True)
def test_reprocess_stored_introspection_data(self, get_mock,
@@ -122,7 +150,7 @@
'operator'}, status)
# assert continue doesn't work after abort
- self.assertRaises(requests.HTTPError, self.call_continue, self.data)
+ self.call_continue(self.data, expect_error=400)
def test_setup_ipmi(self):
self.node.provision_state = 'enroll'
@@ -247,6 +275,110 @@
client.get_status, self.uuid, api_version=(1, 0))
+BASE_CMD = [os.path.join(sys.prefix, 'bin', 'openstack'),
+ '--os-auth-type', 'token_endpoint', '--os-token', 'fake',
+ '--os-url', 'http://127.0.0.1:5050']
+
+
+class BaseCLITest(functional.Base):
+ def openstack(self, cmd, expect_error=False, parse_json=False):
+ real_cmd = BASE_CMD + cmd
+ if parse_json:
+ real_cmd += ['-f', 'json']
+ try:
+ out, _err = processutils.execute(*real_cmd)
+ except processutils.ProcessExecutionError as exc:
+ if expect_error:
+ return exc.stderr
+ else:
+ raise
+ else:
+ if expect_error:
+ raise AssertionError('Command %s returned unexpected success' %
+ cmd)
+ elif parse_json:
+ return json.loads(out)
+ else:
+ return out
+
+ def run_cli(self, *cmd, **kwargs):
+ return self.openstack(['baremetal', 'introspection'] + list(cmd),
+ **kwargs)
+
+
+class TestCLI(BaseCLITest):
+ def test_cli_negative(self):
+ err = self.run_cli('start', expect_error=True)
+ self.assertIn('too few arguments', err)
+ err = self.run_cli('status', expect_error=True)
+ self.assertIn('too few arguments', err)
+ err = self.run_cli('start', 'uuid', '--new-ipmi-username', 'user',
+ expect_error=True)
+ self.assertIn('requires a new password', 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)
+
+ def test_introspect_get_status(self):
+ self.run_cli('start', self.uuid)
+ eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)
+ self.cli.node.set_power_state.assert_called_once_with(self.uuid,
+ 'reboot')
+
+ status = self.run_cli('status', self.uuid, parse_json=True)
+ self.assertEqual({'finished': False, 'error': None}, status)
+
+ res = self.call_continue(self.data)
+ self.assertEqual({'uuid': self.uuid}, res)
+ eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)
+
+ self.assertCalledWithPatch(self.patch, self.cli.node.update)
+ self.cli.port.create.assert_called_once_with(
+ node_uuid=self.uuid, address='11:22:33:44:55:66')
+
+ status = self.run_cli('status', self.uuid, parse_json=True)
+ self.assertEqual({'finished': True, 'error': None}, status)
+
+ def test_rules_api(self):
+ res = self.run_cli('rule', 'list', parse_json=True)
+ self.assertEqual([], res)
+
+ rule = {'conditions': [],
+ 'actions': [{'action': 'fail', 'message': 'boom'}],
+ 'description': 'Cool actions',
+ 'uuid': self.uuid}
+ with tempfile.NamedTemporaryFile() as fp:
+ json.dump(rule, fp)
+ fp.flush()
+ res = self.run_cli('rule', 'import', fp.name, parse_json=True)
+
+ self.assertEqual([{'UUID': self.uuid, 'Description': 'Cool actions'}],
+ res)
+
+ res = self.run_cli('rule', 'show', self.uuid, parse_json=True)
+ self.assertEqual(rule, res)
+
+ res = self.run_cli('rule', 'list', parse_json=True)
+ self.assertEqual([{'UUID': self.uuid,
+ 'Description': 'Cool actions'}],
+ res)
+
+ self.run_cli('rule', 'delete', self.uuid)
+ res = self.run_cli('rule', 'list', parse_json=True)
+ self.assertEqual([], res)
+
+ with tempfile.NamedTemporaryFile() as fp:
+ rule.pop('uuid')
+ json.dump([rule, rule], fp)
+ fp.flush()
+ res = self.run_cli('rule', 'import', fp.name, parse_json=True)
+
+ self.run_cli('rule', 'purge')
+ res = self.run_cli('rule', 'list', parse_json=True)
+ self.assertEqual([], res)
+
+
if __name__ == '__main__':
with functional.mocked_server():
- unittest.main()
+ unittest.main(verbosity=2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/test/test_shell.py
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/test/test_shell.py
---
old/python-ironic-inspector-client-1.8.0/ironic_inspector_client/test/test_shell.py
2016-07-11 16:17:00.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/ironic_inspector_client/test/test_shell.py
2016-09-01 10:06:39.000000000 +0200
@@ -117,7 +117,7 @@
result = cmd.take_action(parsed_args)
self.client.reprocess.assert_called_once_with(node)
- self.assertIs(None, result)
+ self.assertIsNone(result)
def test_wait(self):
nodes = ['uuid1', 'uuid2', 'uuid3']
@@ -153,7 +153,7 @@
result = cmd.take_action(parsed_args)
self.client.abort.assert_called_once_with(node)
- self.assertIs(None, result)
+ self.assertIsNone(result)
class TestGetStatus(BaseTest):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/PKG-INFO
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/PKG-INFO
---
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/PKG-INFO
2016-07-11 16:19:14.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/PKG-INFO
2016-09-01 10:09:05.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-ironic-inspector-client
-Version: 1.8.0
+Version: 1.9.0
Summary: Python client for Ironic Inspector
Home-page: https://launchpad.net/python-ironic-inspector-client
Author: UNKNOWN
@@ -235,29 +235,6 @@
$ openstack baremetal introspection rule delete <UUID>
- Shortcut Functions
- ~~~~~~~~~~~~~~~~~~
-
- The following functions are available for simplified access to the
most common
- functionality:
-
- * Starting introspection::
-
- ironic_inspector_client.introspect(uuid[, new_ipmi_password[,
new_ipmi_username]][, base_url][, api_version] **)
-
- * Getting introspection status::
-
- ironic_inspector_client.get_status(uuid[, base_url][, api_version]
**)
-
- * Getting API versions supported by a server::
-
- ironic_inspector_client.server_api_versions([base_url] **)
-
- Here ``base_url`` argument is the same as ``inspector_url`` argument
- to the ``ClientV1`` constructor. Keyword arguments are passed to the
client
- constructor intact. The first 2 functions also accept deprecated
``auth_token``
- argument, which should not be used.
-
Using names instead of UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -284,4 +261,7 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/SOURCES.txt
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/SOURCES.txt
---
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/SOURCES.txt
2016-07-11 16:19:15.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/SOURCES.txt
2016-09-01 10:09:06.000000000 +0200
@@ -40,6 +40,7 @@
releasenotes/notes/introspect-multiple-uuids-0790d57e0a0b9292.yaml
releasenotes/notes/introspection-wait-a7e8fe832c3aaff9.yaml
releasenotes/notes/ks-session-ac614a9abda3e228.yaml
+releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml
releasenotes/notes/osc-lib-162db03fed2bc40c.yaml
releasenotes/notes/print-import-rule-result-b5c19e9b8679849e.yaml
releasenotes/notes/reprocess-stored-introspection-data-c4910325254426c5.yaml
@@ -50,4 +51,5 @@
releasenotes/source/mitaka.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
-releasenotes/source/_templates/.placeholder
\ No newline at end of file
+releasenotes/source/_templates/.placeholder
+tools/tox_install.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/pbr.json
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/pbr.json
---
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/pbr.json
2016-07-11 16:19:14.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/pbr.json
2016-09-01 10:09:05.000000000 +0200
@@ -1 +1 @@
-{"git_version": "fdbefc5", "is_release": true}
\ No newline at end of file
+{"git_version": "6364bc9", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/requires.txt
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/requires.txt
---
old/python-ironic-inspector-client-1.8.0/python_ironic_inspector_client.egg-info/requires.txt
2016-07-11 16:19:14.000000000 +0200
+++
new/python-ironic-inspector-client-1.9.0/python_ironic_inspector_client.egg-info/requires.txt
2016-09-01 10:09:05.000000000 +0200
@@ -1,8 +1,7 @@
-cliff!=1.16.0,!=1.17.0,>=1.15.0
-keystoneauth1>=2.7.0
-osc-lib>=0.1.0
+keystoneauth1>=2.10.0
+osc-lib>=1.0.2
oslo.i18n>=2.1.0
-oslo.utils>=3.15.0
+oslo.utils>=3.16.0
pbr>=1.6
python-openstackclient>=2.1.0
requests>=2.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml
new/python-ironic-inspector-client-1.9.0/releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml
---
old/python-ironic-inspector-client-1.8.0/releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/python-ironic-inspector-client-1.9.0/releasenotes/notes/old-functions-80ddae9eaa1e7e1d.yaml
2016-09-01 10:06:39.000000000 +0200
@@ -0,0 +1,8 @@
+---
+deprecations:
+ - |
+ The following functions are deprecated in favor of ``ClientV1`` methods:
+
+ * ``ironic_inspector_client.introspect``
+ * ``ironic_inspector_client.get_status``
+ * ``ironic_inspector_client.server_api_versions``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/requirements.txt
new/python-ironic-inspector-client-1.9.0/requirements.txt
--- old/python-ironic-inspector-client-1.8.0/requirements.txt 2016-07-11
16:17:00.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/requirements.txt 2016-09-01
10:06:39.000000000 +0200
@@ -1,11 +1,10 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-cliff!=1.16.0,!=1.17.0,>=1.15.0 # Apache-2.0
-keystoneauth1>=2.7.0 # Apache-2.0
-osc-lib>=0.1.0 # Apache-2.0
+keystoneauth1>=2.10.0 # Apache-2.0
+osc-lib>=1.0.2 # Apache-2.0
oslo.i18n>=2.1.0 # Apache-2.0
-oslo.utils>=3.15.0 # Apache-2.0
+oslo.utils>=3.16.0 # Apache-2.0
pbr>=1.6 # Apache-2.0
python-openstackclient>=2.1.0 # Apache-2.0
requests>=2.10.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/setup.cfg
new/python-ironic-inspector-client-1.9.0/setup.cfg
--- old/python-ironic-inspector-client-1.8.0/setup.cfg 2016-07-11
16:19:15.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/setup.cfg 2016-09-01
10:09:06.000000000 +0200
@@ -13,7 +13,10 @@
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 2
+ Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
+ Programming Language :: Python :: 3.4
+ Programming Language :: Python :: 3.5
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/test-requirements.txt
new/python-ironic-inspector-client-1.9.0/test-requirements.txt
--- old/python-ironic-inspector-client-1.8.0/test-requirements.txt
2016-07-11 16:16:59.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/test-requirements.txt
2016-09-01 10:06:39.000000000 +0200
@@ -6,6 +6,8 @@
fixtures>=3.0.0 # Apache-2.0/BSD
hacking<0.11,>=0.10.0
mock>=2.0 # BSD
+requests-mock>=1.0 # Apache-2.0
sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
reno>=1.8.0 # Apache2
+oslo.concurrency>=3.8.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-ironic-inspector-client-1.8.0/tools/tox_install.sh
new/python-ironic-inspector-client-1.9.0/tools/tox_install.sh
--- old/python-ironic-inspector-client-1.8.0/tools/tox_install.sh
1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-1.9.0/tools/tox_install.sh
2016-09-01 10:06:39.000000000 +0200
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+# Client constraint file contains this client version pin that is in conflict
+# with installing the client from source. We should replace the version pin in
+# the constraints file before applying it for from-source installation.
+
+ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner
+BRANCH_NAME=master
+CLIENT_NAME=python-ironic-inspector-client
+requirements_installed=$(echo "import openstack_requirements" | python
2>/dev/null ; echo $?)
+
+set -e
+
+CONSTRAINTS_FILE=$1
+shift
+
+install_cmd="pip install"
+mydir=$(mktemp -dt "$CLIENT_NAME-tox_install-XXXXXXX")
+trap "rm -rf $mydir" EXIT
+localfile=$mydir/upper-constraints.txt
+if [[ $CONSTRAINTS_FILE != http* ]]; then
+ CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE
+fi
+curl $CONSTRAINTS_FILE -k -o $localfile
+install_cmd="$install_cmd -c$localfile"
+
+if [ $requirements_installed -eq 0 ]; then
+ echo "ALREADY INSTALLED" > /tmp/tox_install.txt
+ echo "Requirements already installed; using existing package"
+elif [ -x "$ZUUL_CLONER" ]; then
+ echo "ZUUL CLONER" > /tmp/tox_install.txt
+ pushd $mydir
+ $ZUUL_CLONER --cache-dir \
+ /opt/git \
+ --branch $BRANCH_NAME \
+ git://git.openstack.org \
+ openstack/requirements
+ cd openstack/requirements
+ $install_cmd -e .
+ popd
+else
+ echo "PIP HARDCODE" > /tmp/tox_install.txt
+ if [ -z "$REQUIREMENTS_PIP_LOCATION" ]; then
+
REQUIREMENTS_PIP_LOCATION="git+https://git.openstack.org/openstack/requirements@$BRANCH_NAME#egg=requirements"
+ fi
+ $install_cmd -U -e ${REQUIREMENTS_PIP_LOCATION}
+fi
+
+# This is the main purpose of the script: Allow local installation of
+# the current repo. It is listed in constraints file and thus any
+# install will be constrained and we need to unconstrain it.
+edit-constraints $localfile -- $CLIENT_NAME "-e file://$PWD#egg=$CLIENT_NAME"
+
+$install_cmd -U $*
+exit $?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-ironic-inspector-client-1.8.0/tox.ini
new/python-ironic-inspector-client-1.9.0/tox.ini
--- old/python-ironic-inspector-client-1.8.0/tox.ini 2016-07-11
16:16:59.000000000 +0200
+++ new/python-ironic-inspector-client-1.9.0/tox.ini 2016-09-01
10:06:39.000000000 +0200
@@ -1,7 +1,9 @@
[tox]
-envlist = py34,py27,pep8,func
+envlist = py35,py34,py27,pep8,func
[testenv]
+install_command =
+ {toxinidir}/tools/tox_install.sh
{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
{opts} {packages}
usedevelop = True
deps =
-r{toxinidir}/requirements.txt