Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-redfish for openSUSE:Factory 
checked in at 2022-04-13 21:04:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-redfish (Old)
 and      /work/SRC/openSUSE:Factory/.python-redfish.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-redfish"

Wed Apr 13 21:04:58 2022 rev:9 rq:969608 version:3.1.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-redfish/python-redfish.changes    
2022-01-20 00:12:55.750607969 +0100
+++ /work/SRC/openSUSE:Factory/.python-redfish.new.1900/python-redfish.changes  
2022-04-13 21:05:47.388605442 +0200
@@ -1,0 +2,14 @@
+Wed Apr 13 02:13:23 UTC 2022 - Steve Kowalik <steven.kowa...@suse.com>
+
+- Update to 3.1.5:
+  * Added methods for specifying proxies directly with a new 'proxies'
+    parameter
+  * Removed enforcement of trailing '/' in the 'default_prefix'
+  * Added support for Unix sockets
+  * Corrected usage of header storage and retrieval for static response objects
+  * Corrected 'import' statements to support Python 3.10
+- Drop patch collections-python310.patch, included upstream. 
+- Add requests-unixsocket to {Build,}Requires.
+- Drop unneeded BuildRequires on mock.
+
+-------------------------------------------------------------------

Old:
----
  collections-python310.patch
  redfish-3.1.0.tar.gz

New:
----
  redfish-3.1.5.tar.gz

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

Other differences:
------------------
++++++ python-redfish.spec ++++++
--- /var/tmp/diff_new_pack.agkwkZ/_old  2022-04-13 21:05:47.988606047 +0200
+++ /var/tmp/diff_new_pack.agkwkZ/_new  2022-04-13 21:05:47.996606055 +0200
@@ -19,15 +19,12 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-redfish
-Version:        3.1.0
+Version:        3.1.5
 Release:        0
 Summary:        Redfish Python Library
 License:        BSD-3-Clause
-Group:          Development/Languages/Python
 URL:            https://github.com/DMTF/python-redfish-library
 Source:         
https://github.com/DMTF/python-redfish-library/archive/%{version}.tar.gz#/redfish-%{version}.tar.gz
-# submitted as gh#DMTF/python-redfish-library#118
-Patch1:         collections-python310.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
@@ -35,14 +32,16 @@
 Requires:       python-jsonpath-rw
 Requires:       python-jsonpointer
 Requires:       python-requests
+Requires:       python-requests-toolbelt
+Requires:       python-requests-unixsocket
 BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module jsonpatch}
 BuildRequires:  %{python_module jsonpath-rw}
 BuildRequires:  %{python_module jsonpointer}
-BuildRequires:  %{python_module mock}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module requests-toolbelt}
+BuildRequires:  %{python_module requests-unixsocket}
 BuildRequires:  %{python_module requests}
 # /SECTION
 %python_subpackages

++++++ redfish-3.1.0.tar.gz -> redfish-3.1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/.travis.yml 
new/python-redfish-library-3.1.5/.travis.yml
--- old/python-redfish-library-3.1.0/.travis.yml        2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/.travis.yml        2022-04-01 
22:08:02.000000000 +0200
@@ -1,14 +1,15 @@
-dist: xenial
+dist: focal
 language: python
 cache:
 - pip
 python:
-- '3.4'
 - '3.5'
 - '3.6'
 - '3.7'
 - '3.8'
 - '3.9'
+# workaround for https://travis-ci.community/t/add-python-3-10/12220/12
+- '3.10.1'
 before_install:
 - pip install -U pip
 - pip install -U setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/CHANGELOG.md 
new/python-redfish-library-3.1.5/CHANGELOG.md
--- old/python-redfish-library-3.1.0/CHANGELOG.md       2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/CHANGELOG.md       2022-04-01 
22:08:02.000000000 +0200
@@ -1,5 +1,20 @@
 # Change Log
 
+## [3.1.5] - 2022-04-01
+- Added methods for specifying proxies directly with a new 'proxies' parameter
+
+## [3.1.4] - 2022-03-25
+- Removed enforcement of trailing '/' in the 'default_prefix'
+
+## [3.1.3] - 2022-03-21
+- Added support for Unix sockets
+
+## [3.1.2] - 2022-03-10
+- Corrected usage of header storage and retrieval for static response objects
+
+## [3.1.1] - 2022-01-18
+- Corrected 'import' statements to support Python 3.10
+
 ## [3.1.0] - 2022-01-10
 - Updated library to leverage 'requests' in favor of 'http.client'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/README.rst 
new/python-redfish-library-3.1.5/README.rst
--- old/python-redfish-library-3.1.0/README.rst 2022-01-10 14:55:53.000000000 
+0100
+++ new/python-redfish-library-3.1.5/README.rst 2022-04-01 22:08:02.000000000 
+0200
@@ -1,8 +1,6 @@
 python-redfish-library
 ======================
 
-.. image:: https://travis-ci.org/DMTF/python-redfish-library.svg?branch=master
-    :target: https://travis-ci.org/DMTF/python-redfish-library
 .. image:: https://img.shields.io/pypi/v/redfish.svg?maxAge=2592000
     :target: https://pypi.python.org/pypi/redfish
 .. image:: 
https://img.shields.io/github/release/DMTF/python-redfish-library.svg?maxAge=2592000
@@ -11,20 +9,15 @@
     :target: 
https://raw.githubusercontent.com/DMTF/python-redfish-library/master/LICENSE
 .. image:: https://img.shields.io/pypi/pyversions/redfish.svg?maxAge=2592000
     :target: https://pypi.python.org/pypi/redfish
-.. image:: 
https://api.codacy.com/project/badge/Grade/1283adc3972d42b4a3ddb9b96660bc07
-    :target: 
https://www.codacy.com/app/rexysmydog/python-redfish-library?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=DMTF/python-redfish-library&amp;utm_campaign=Badge_Grade
-
 
 .. contents:: :depth: 1
 
-
 Description
 -----------
 
 As of version 3.0.0, Python2 is no longer supported.  If Python2 is required, 
``redfish<3.0.0`` can be specified in a requirements file.
 
-REST (Representational State Transfer) is a web based software architectural 
style consisting of a set of constraints that focuses on a system's resources. 
The Redfish library performs the basic HTTPS operations GET, POST, PUT, PATCH 
and DELETE on resources using the HATEOAS (Hypermedia as the Engine of 
Application State) Redfish architecture. API clients allow you to manage and 
interact with the system through a fixed URL and several URIs. Go to the `wiki 
<../../wiki>`_ for more details.
-
+REST (Representational State Transfer) is a web based software architectural 
style consisting of a set of constraints that focuses on a system's resources.  
The Redfish library performs GET, POST, PUT, PATCH and DELETE HTTP operations 
on resources within a Redfish service.  Go to the `wiki <../../wiki>`_ for more 
details.
 
 Installing
 ----------
@@ -33,7 +26,6 @@
 
     pip install redfish
 
-
 Building from zip file source
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -43,65 +35,74 @@
     cd dist
     pip install redfish-x.x.x.zip
 
-
 Requirements
 ------------
 
 Ensure the system does not have the OpenStack "python-redfish" module 
installed on the target system.  This module is using a conflicting package 
name that this library already uses.  The module in question can be found here: 
https://pypi.org/project/python-redfish/
 
-
 Usage
 ----------
 
-A set of examples is provided under the examples directory of this project. In 
addition to the directives present in this paragraph, you will find valuable 
implementation tips and tricks in those examples.
-
+A set of examples is provided under the examples directory of this project.  
In addition to the directives present in this paragraph, you will find valuable 
implementation tips and tricks in those examples.
 
-Import the relevant python module
+Import the relevant Python module
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For a Redfish compliant application import the relevant python module.
+For a Redfish conformant application import the relevant Python module.
 
-For Redfish compliant application:
+For Redfish conformant application:
 
 .. code-block:: python
 
     import redfish
 
-
-Create a Redfish Object
+Create a Redfish object
 ~~~~~~~~~~~~~~~~~~~~~~~
 
-The Redfish Objects contain 3 parameters: the target secured URL (i.e. 
"https://IP"; or "https://X.Y.Z.T";), an user name and its password.
-There are additional 2 optional parameters: timeout (in seconds before a 
connection initialization times out) and max_retry (how many times a request 
will retry after a timeout). If unset these default to None and 10 respectively.
-To crete a Redfish Object, call the redfish_client method:
+The Redfish object contains three required parameters:
+
+* ``base_url``: The address of the Redfish service (with scheme).  Example: 
``https://192.168.1.100``.  For Unix sockets, use the scheme ``http+unix://``, 
followed by the percent-encoded filepath to the socket.
+* ``username``: The username for authentication.
+* ``password``: The password for authentication.
+
+There are several optional parameters:
+
+* ``default_prefix``: The path to the Redfish service root.  This is only used 
for initial connection and authentication with the service.  The default value 
is ``/redfish/v1/``.
+* ``sessionkey``: The session key to use with subsequent requests.  This can 
be used to bypass the login step.  The default value is ``None``.
+* ``cafile``: The file path to the CA certificate that issued the Redfish 
service's certificate.  The default value is ``None``.
+* ``timeout``: The number of seconds to wait for a response before closing the 
connection.  The default value is ``None``.
+* ``max_retry``: The number of retries to perform an operation before giving 
up.  The default value is ``10``.
+* ``proxies``: A dictionary containing protocol to proxy URL mappings.  The 
default value is ``None``.  See `Using proxies`_.
+
+To crete a Redfish object, call the ``redfish_client`` method:
 
 .. code-block:: python
 
     REDFISH_OBJ = redfish.redfish_client(base_url=login_host, 
username=login_account, \
-                          password=login_password, 
default_prefix='/redfish/v1')
+                          password=login_password, 
default_prefix='/redfish/v1/')
 
+Login to the service
+~~~~~~~~~~~~~~~~~~~~
 
-Login to the server
-~~~~~~~~~~~~~~~~~~~
+After creating the REDFISH_OBJ, perform the ``login`` operation to 
authenticate with the service.  The ``auth`` parameter allows you to specify 
the login method.  Possible values are:
 
-The login operation is performed when creating the REDFISH_OBJ. You can 
continue with a basic authentication, but it would less secure.
+* ``session``: Creates a Redfish session with a session token.
+* ``basic``: Uses HTTP Basic authentication for all requests.
 
 .. code-block:: python
 
     REDFISH_OBJ.login(auth="session")
 
-
 Perform a GET operation
 ~~~~~~~~~~~~~~~~~~~~~~~
 
 A simple GET operation can be performed to obtain the data present in any 
valid path.
-An example of rawget operation on the path "/redfish/v1/systems/1" is shown 
below:
+An example of GET operation on the path "/redfish/v1/systems/1" is shown below:
 
 .. code-block:: python
 
     response = REDFISH_OBJ.get("/redfish/v1/systems/1", None)
 
-
 Perform a POST operation
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -113,13 +114,12 @@
     body = {"ResetType": "GracefulShutdown"}
     response = 
REDFISH_OBJ.post("/redfish/v1/systems/1/Actions/ComputerSystem.Reset", 
body=body)
 
-
-Working with Tasks
+Working with tasks
 ~~~~~~~~~~~~~~~~~~
 
-A POST operation may result in a task, describing an operation with a duration 
greater than the span of a single request.
-The action message object that is_processing will return a Task resource that 
can be accessed reviewed when polled with monitor.
-An example of a POST operation with a possible Task is shown below.
+A POST and PATCH operations may result in a task, describing an operation with 
a duration greater than the span of a single request.
+The action message object that ``is_processing`` will return a task that can 
be accessed reviewed when polled with monitor.
+An example of a POST operation with a possible task is shown below.
 
 .. code-block:: python
 
@@ -134,22 +134,25 @@
             time.sleep(retry_time if retry_time else 5)
             task = response.monitor(context)
 
-
 Logout the created session
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Make sure you logout every session you create as it will remain alive until it 
times out.
+Ensure you perform a ``logout`` operation when done interacting with the 
Redfish service.  If this step isn't performed, the session will remain active 
until the Redfish service decides to close it.
 
 .. code-block:: python
 
     REDFISH_OBJ.logout()
 
-
-A logout deletes the current sesssion from the system. The redfish_client 
object destructor includes a logout statement.
+The ``logout`` operation deletes the current sesssion from the service.  The 
``redfish_client`` object destructor includes a logout statement.
 
 Using proxies
 ~~~~~~~~~~~~~
 
+There are two methods for using proxies.
+
+Environment variables
+^^^^^^^^^^^^^^^^^^^^^
+
 You can use a proxy by specifying the ``HTTP_PROXY`` and ``HTTPS_PROXY`` 
environment variables.  Hosts to be excluded from the proxy can be specified 
using the NO_PROXY environment variable.
 
 .. code-block:: shell
@@ -157,31 +160,44 @@
     export HTTP_PROXY="http://192.168.1.10:8888";
     export HTTPS_PROXY="http://192.168.1.10:8888";
 
+Directly provided
+^^^^^^^^^^^^^^^^^
+
+You can use a proxy by building a dictionary containing the proxy information 
and providing it to the ``proxies`` argument when creating the 
``redfish_client`` object.
+The key-value pairs of the dictionary contain the protocol and the proxy URL 
for the protocol.
+
+.. code-block:: python
+
+    proxies = {
+        'http': 'http://192.168.1.10:8888',
+        'https': 'http://192.168.1.10:8888',
+    }
+    REDFISH_OBJ = redfish.redfish_client(base_url=login_host, 
username=login_account, \
+                          password=login_password, proxies=proxies)
+
 Contributing
 ------------
 
 1. Fork it!
-2. Create your feature branch: `git checkout -b my-new-feature`
-3. Commit your changes: `git commit -am 'Add some feature'`
-4. Push to the branch: `git push origin my-new-feature`
+2. Create your feature branch: ``git checkout -b my-new-feature``
+3. Commit your changes: ``git commit -s -am 'Add some feature'``
+4. Push to the branch: ``git push origin my-new-feature``
 5. Submit a pull request :D
 
-
 Release Process
 ---------------
 
-Run the `release.sh` script to publish a new version.
+Run the ``release.sh`` script to publish a new version.
 
 .. code-block:: shell
 
     sh release.sh <NewVersion>
 
-
 Enter the release notes when prompted; an empty line signifies no more notes 
to add.
 
 Copyright and License
 ---------------------
 
 Copyright Notice:
-Copyright 2016-2021 DMTF. All rights reserved.
+Copyright 2016-2022 DMTF. All rights reserved.
 License: BSD 3-Clause License. For full text see link: 
`https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md 
<https://github.com/DMTF/python-redfish-library/blob/master/LICENSE.md>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/requirements.txt 
new/python-redfish-library-3.1.5/requirements.txt
--- old/python-redfish-library-3.1.0/requirements.txt   2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/requirements.txt   2022-04-01 
22:08:02.000000000 +0200
@@ -2,6 +2,6 @@
 jsonpatch ; python_version >= '3.5'
 jsonpath_rw
 jsonpointer
-urllib3
 requests
 requests-toolbelt
+requests-unixsocket
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/setup.py 
new/python-redfish-library-3.1.5/setup.py
--- old/python-redfish-library-3.1.0/setup.py   2022-01-10 14:55:53.000000000 
+0100
+++ new/python-redfish-library-3.1.5/setup.py   2022-04-01 22:08:02.000000000 
+0200
@@ -12,7 +12,7 @@
     long_description = f.read()
 
 setup(name='redfish',
-      version='3.1.0',
+      version='3.1.5',
       description='Redfish Python Library',
       long_description=long_description,
       long_description_content_type='text/x-rst',
@@ -33,6 +33,7 @@
           'jsonpointer',
           "requests",
           'requests_toolbelt',
+          'requests-unixsocket'
       ],
       extras_require={
           ':python_version == "3.4"': [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/src/redfish/__init__.py 
new/python-redfish-library-3.1.5/src/redfish/__init__.py
--- old/python-redfish-library-3.1.0/src/redfish/__init__.py    2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/src/redfish/__init__.py    2022-04-01 
22:08:02.000000000 +0200
@@ -6,7 +6,7 @@
 """ Redfish restful library """
 
 __all__ = ['rest', 'ris', 'discovery']
-__version__ = "3.1.0"
+__version__ = "3.1.5"
 
 from redfish.rest.v1 import redfish_client
 from redfish.rest.v1 import AuthMethod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/src/redfish/rest/v1.py 
new/python-redfish-library-3.1.5/src/redfish/rest/v1.py
--- old/python-redfish-library-3.1.0/src/redfish/rest/v1.py     2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/src/redfish/rest/v1.py     2022-04-01 
22:08:02.000000000 +0200
@@ -16,6 +16,7 @@
 import logging
 import warnings
 import requests
+import requests_unixsocket
 
 from collections import (OrderedDict)
 
@@ -402,10 +403,32 @@
                 returnlist.append((key, value))
         else:
             for item in self._headers:
-                returnlist.append(item.items()[0])
+                returnlist.append(item)
 
         return returnlist
 
+    def getheader(self, name):
+        """Property for accessing an individual header
+
+        :param name: The header name to retrieve.
+        :type name: str.
+        :returns: returns a header from HTTP response
+        """
+        returnheader = None
+
+        if isinstance(self._headers, dict):
+            for key, value in self._headers.items():
+                if key.lower() == name.lower():
+                    returnheader = self._headers[key]
+                    break
+        else:
+            for item in self._headers:
+                if item[0].lower() == name.lower():
+                    returnheader = item[1]
+                    break
+
+        return returnheader
+
 class AuthMethod(object):
     """AUTH Method class"""
     BASIC = 'basic'
@@ -417,7 +440,7 @@
     def __init__(self, base_url, username=None, password=None,
                                 default_prefix='/redfish/v1/', sessionkey=None,
                                 capath=None, cafile=None, timeout=None,
-                                max_retry=None):
+                                max_retry=None, proxies=None):
         """Initialization of the base class RestClientBase
 
         :param base_url: The URL of the remote system
@@ -438,6 +461,8 @@
         :type timeout: int
         :param max_retry: Number of times a request will retry after a timeout
         :type max_retry: int
+        :param proxies: Dictionary containing protocol to proxy URL mappings
+        :type proxies: dict
 
         """
 
@@ -447,9 +472,13 @@
         self.__session_key = sessionkey
         self.__authorization_key = None
         self.__session_location = None
-        self._session = requests.Session()
+        if self.__base_url.startswith('http+unix://'):
+            self._session = requests_unixsocket.Session()
+        else:
+            self._session = requests.Session()
         self._timeout = timeout
         self._max_retry = max_retry if max_retry is not None else 10
+        self._proxies = proxies
         self.login_url = None
         self.default_prefix = default_prefix
         self.capath = capath
@@ -822,7 +851,7 @@
                     verify = self.cafile
                 resp = self._session.request(method.upper(), 
"{}{}".format(self.__base_url, reqpath), data=body,
                                              headers=headers, 
timeout=self._timeout, allow_redirects=allow_redirects,
-                                             verify=verify)
+                                             verify=verify, 
proxies=self._proxies)
 
                 if sys.version_info < (3, 3):
                     endtime = time.clock()
@@ -944,7 +973,7 @@
                                 default_prefix='/redfish/v1/',
                                 sessionkey=None, capath=None,
                                 cafile=None, timeout=None,
-                                max_retry=None):
+                                max_retry=None, proxies=None):
         """Initialize HttpClient
 
         :param base_url: The url of the remote system
@@ -965,13 +994,15 @@
         :type timeout: int
         :param max_retry: Number of times a request will retry after a timeout
         :type max_retry: int
+        :param proxies: Dictionary containing protocol to proxy URL mappings
+        :type proxies: dict
 
         """
         super(HttpClient, self).__init__(base_url, username=username,
                             password=password, default_prefix=default_prefix,
                             sessionkey=sessionkey, capath=capath,
                             cafile=cafile, timeout=timeout,
-                            max_retry=max_retry)
+                            max_retry=max_retry, proxies=proxies)
 
         try:
             self.login_url = self.root.Links.Sessions['@odata.id']
@@ -1000,11 +1031,6 @@
         :returns: returns a rest request
 
         """
-        if self.default_prefix == path and path[-1] != '/':
-            path = path + '/'
-        else:
-            pass
-
         return super(HttpClient, self)._rest_request(path=path, method=method,
                                                      args=args, body=body,
                                                      headers=headers,
@@ -1029,7 +1055,7 @@
                                 default_prefix='/redfish/v1/',
                                 sessionkey=None, capath=None,
                                 cafile=None, timeout=None,
-                                max_retry=None):
+                                max_retry=None, proxies=None):
     """Create and return appropriate REDFISH client instance."""
     """ Instantiates appropriate Redfish object based on existing"""
     """ configuration. Use this to retrieve a pre-configured Redfish object
@@ -1052,6 +1078,8 @@
     :type timeout: int
     :param max_retry: Number of times a request will retry after a timeout
     :type max_retry: int
+    :param proxies: Dictionary containing protocol to proxy URL mappings
+    :type proxies: dict
     :returns: a client object.
 
     """
@@ -1061,4 +1089,4 @@
     return HttpClient(base_url=base_url, username=username, password=password,
                         default_prefix=default_prefix, sessionkey=sessionkey,
                         capath=capath, cafile=cafile, timeout=timeout,
-                        max_retry=max_retry)
+                        max_retry=max_retry, proxies=proxies)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/src/redfish/ris/rmc.py 
new/python-redfish-library-3.1.5/src/redfish/ris/rmc.py
--- old/python-redfish-library-3.1.0/src/redfish/ris/rmc.py     2022-01-10 
14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/src/redfish/ris/rmc.py     2022-04-01 
22:08:02.000000000 +0200
@@ -15,7 +15,8 @@
 import copy
 import shutil
 import logging
-from collections import OrderedDict, Mapping
+from collections import OrderedDict
+from collections.abc import Mapping
 
 import jsonpatch
 import jsonpath_rw
@@ -251,7 +252,7 @@
     current_client = property(get_current_client, None)
 
     def login(self, username=None, password=None, base_url=None, verbose=False,
-                                path=None, skipbuild=False, includelogs=False):
+                                path=None, skipbuild=False, includelogs=False, 
proxies=None):
         """Main worker function for login command
 
         :param username: user name required to login to server.
@@ -268,6 +269,8 @@
         :type skipbuild: boolean.
         :param includelogs: flag to determine id logs should be downloaded.
         :type includelogs: boolean.
+        :param proxies: Dictionary containing protocol to proxy URL mappings
+        :type proxies: dict
 
         """
         if not self.check_current_rmc_client(url=base_url):
@@ -278,11 +281,12 @@
         existing_client = self.get_rmc_client(url=base_url)
         if existing_client:
             self.update_rmc_client(url=base_url, username=username,
-                                                            password=password)
+                                   password=password)
         else:
             try:
                 self.add_rmc_client(RmcClient(username=username,
-                                              password=password, url=base_url))
+                                              password=password, url=base_url,
+                                              proxies=proxies))
             except Exception as excp:
                 raise excp
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-redfish-library-3.1.0/src/redfish/ris/rmc_helper.py 
new/python-redfish-library-3.1.5/src/redfish/ris/rmc_helper.py
--- old/python-redfish-library-3.1.0/src/redfish/ris/rmc_helper.py      
2022-01-10 14:55:53.000000000 +0100
+++ new/python-redfish-library-3.1.5/src/redfish/ris/rmc_helper.py      
2022-04-01 22:08:02.000000000 +0200
@@ -82,7 +82,8 @@
 
 class RmcClient(object):
     """RMC client base class"""
-    def __init__(self, url=None, username=None, password=None, 
sessionkey=None):
+    def __init__(self, url=None, username=None, password=None, sessionkey=None,
+                 proxies=None):
         """Initialized RmcClient
         :param url: redfish host name or IP address.
         :type url: str.
@@ -92,10 +93,13 @@
         :type password: str.
         :param sessionkey: session key credential for current login
         :type sessionkey: str
+        :param proxies: Dictionary containing protocol to proxy URL mappings
+        :type proxies: dict
 
         """
-        self._rest_client = redfish.rest.v1.redfish_client(base_url=url,
-                   username=username, password=password, sessionkey=sessionkey)
+        self._rest_client = redfish.rest.v1.redfish_client(
+            base_url=url, username=username, password=password,
+            sessionkey=sessionkey, proxies=proxies)
 
         self._get_cache = dict()
         self._monolith = RisMonolith(self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-redfish-library-3.1.0/tox.ini 
new/python-redfish-library-3.1.5/tox.ini
--- old/python-redfish-library-3.1.0/tox.ini    2022-01-10 14:55:53.000000000 
+0100
+++ new/python-redfish-library-3.1.5/tox.ini    2022-04-01 22:08:02.000000000 
+0200
@@ -1,5 +1,5 @@
 [tox]
-envlist = py34,py35,py36,py37,py38,py39
+envlist = py35,py36,py37,py38,py39,py310
 
 [testenv]
 usedevelop = True
@@ -7,25 +7,13 @@
 deps =
     coverage
     fixtures
-    nose
-    nose-timer
+    pytest
     -rrequirements.txt
 commands =
-    nosetests \
-    --with-timer \
-    --with-coverage --cover-erase --cover-package=src
-
-[testenv:py34]
-deps =
-    coverage
-    fixtures
-    nose
-    nose-timer
-    testtools >= 0.9.22, <= 2.3.0
-    -rrequirements.txt
+    pytest -v
 
 [testenv:pep8]
-basepython = python3.6
+basepython = python3
 deps = flake8
 commands = flake8 tests/ src/redfish/discovery
 

Reply via email to