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 - dmuel...@suse.com
+
+- 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 <a...@suse.com>
 Anton Arefiev <aaref...@mirantis.com>
 Clenimar Filemon <cleni...@lsd.ufcg.edu.br>
+Dmitry Tantsur <divius.ins...@gmail.com>
 Dmitry Tantsur <dtant...@redhat.com>
 Doug Hellmann <d...@doughellmann.com>
 Janonymous <janonymous.codevult...@gmail.com>
+Jim Rollenhagen <j...@jimrollenhagen.com>
+Luong Anh Tuan <tua...@vn.fujitsu.com>
 Monty Taylor <mord...@inaugust.com>
 Tang Chen <chen.t...@easystack.cn>
 Yuiko Takada <yui-tak...@tg.jp.nec.com>
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


Reply via email to