Hello community,

here is the log from the commit of package python-pynetbox for openSUSE:Factory 
checked in at 2019-09-30 15:59:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pynetbox (Old)
 and      /work/SRC/openSUSE:Factory/.python-pynetbox.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pynetbox"

Mon Sep 30 15:59:16 2019 rev:2 rq:733771 version:4.0.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pynetbox/python-pynetbox.changes  
2019-09-27 14:49:01.584674587 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pynetbox.new.2352/python-pynetbox.changes    
    2019-09-30 15:59:19.761227737 +0200
@@ -1,0 +2,6 @@
+Fri Sep 27 22:21:50 UTC 2019 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 4.0.8
+  * Returns ContentError when 2XX response but not JSON.
+
+-------------------------------------------------------------------

Old:
----
  pynetbox-4.0.7.tar.gz

New:
----
  pynetbox-4.0.8.tar.gz

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

Other differences:
------------------
++++++ python-pynetbox.spec ++++++
--- /var/tmp/diff_new_pack.xoTHAI/_old  2019-09-30 15:59:20.649225374 +0200
+++ /var/tmp/diff_new_pack.xoTHAI/_new  2019-09-30 15:59:20.653225364 +0200
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pynetbox
-Version:        4.0.7
+Version:        4.0.8
 Release:        0
 Summary:        NetBox API client library
 License:        Apache-2.0

++++++ pynetbox-4.0.7.tar.gz -> pynetbox-4.0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pynetbox-4.0.7/PKG-INFO new/pynetbox-4.0.8/PKG-INFO
--- old/pynetbox-4.0.7/PKG-INFO 2019-09-13 17:11:18.000000000 +0200
+++ new/pynetbox-4.0.8/PKG-INFO 2019-09-27 15:57:13.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pynetbox
-Version: 4.0.7
+Version: 4.0.8
 Summary: NetBox API client library
 Home-page: https://github.com/digitalocean/pynetbox
 Author: Zach Moody
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pynetbox-4.0.7/pynetbox/__init__.py 
new/pynetbox-4.0.8/pynetbox/__init__.py
--- old/pynetbox-4.0.7/pynetbox/__init__.py     2019-09-13 17:11:00.000000000 
+0200
+++ new/pynetbox-4.0.8/pynetbox/__init__.py     2019-09-27 15:56:53.000000000 
+0200
@@ -1,6 +1,6 @@
 from pkg_resources import get_distribution, DistributionNotFound
 
-from pynetbox.core.query import RequestError
+from pynetbox.core.query import RequestError, AllocationError, ContentError
 from pynetbox.api import Api as api
 
 try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pynetbox-4.0.7/pynetbox/core/query.py 
new/pynetbox-4.0.8/pynetbox/core/query.py
--- old/pynetbox-4.0.7/pynetbox/core/query.py   2019-09-13 17:11:00.000000000 
+0200
+++ new/pynetbox-4.0.8/pynetbox/core/query.py   2019-09-27 15:56:53.000000000 
+0200
@@ -92,6 +92,29 @@
         self.error = message
 
 
+class ContentError(Exception):
+    """Content Exception
+
+    If the API URL does not point to a valid NetBox API, the server may
+    return a valid response code, but the content is not json. This
+    exception is raised in those cases.
+    """
+
+    def __init__(self, message):
+        req = message
+
+        message = (
+            "The server returned invalid (non-json) data. Maybe not "
+            "a NetBox server?"
+        )
+
+        super(ContentError, self).__init__(message)
+        self.req = req
+        self.request_body = req.request.body
+        self.url = req.url
+        self.error = message
+
+
 class Request(object):
     """Creates requests to the Netbox API
 
@@ -157,7 +180,10 @@
             verify=self.ssl_verify,
         )
         if req.ok:
-            return req.json()["session_key"]
+            try:
+                return req.json()["session_key"]
+            except json.JSONDecodeError:
+                raise ContentError(req)
         else:
             raise RequestError(req)
 
@@ -214,6 +240,7 @@
         any paginated results.
 
         :raises: RequestError if req.ok returns false.
+        :raises: ContentError if response is not json.
 
         :Returns: List of `Response` objects returned from the
             endpoint.
@@ -228,7 +255,10 @@
 
             req = requests.get(url, headers=headers, verify=self.ssl_verify)
             if req.ok:
-                return req.json()
+                try:
+                    return req.json()
+                except json.JSONDecodeError:
+                    raise ContentError(req)
             else:
                 raise RequestError(req)
 
@@ -266,6 +296,7 @@
         :param data: (dict) Contains a dict that will be turned into a
             json object and sent to the API.
         :raises: RequestError if req.ok returns false.
+        :raises: ContentError if response is not json.
         :returns: Dict containing the response from NetBox's API.
         """
         headers = {
@@ -281,7 +312,10 @@
             verify=self.ssl_verify,
         )
         if req.ok:
-            return req.json()
+            try:
+                return req.json()
+            except json.JSONDecodeError:
+                raise ContentError(req)
         else:
             raise RequestError(req)
 
@@ -294,6 +328,10 @@
         :param data: (dict) Contains a dict that will be turned into a
             json object and sent to the API.
         :raises: RequestError if req.ok returns false.
+        :raises: AllocationError if req.status_code is 204 (No Content)
+            as with available-ips and available-prefixes when there is
+            no room for the requested allocation.
+        :raises: ContentError if response is not json.
         :Returns: Dict containing the response from NetBox's API.
         """
         headers = {
@@ -311,7 +349,10 @@
         if req.status_code == 204:
             raise AllocationError(req)
         elif req.ok:
-            return req.json()
+            try:
+                return req.json()
+            except json.JSONDecodeError:
+                raise ContentError(req)
         else:
             raise RequestError(req)
 
@@ -346,6 +387,7 @@
         :param data: (dict) Contains a dict that will be turned into a
             json object and sent to the API.
         :raises: RequestError if req.ok returns false.
+        :raises: ContentError if response is not json.
         :returns: Dict containing the response from NetBox's API.
         """
         headers = {
@@ -361,6 +403,9 @@
             verify=self.ssl_verify,
         )
         if req.ok:
-            return req.json()
+            try:
+                return req.json()
+            except json.JSONDecodeError:
+                raise ContentError(req)
         else:
             raise RequestError(req)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pynetbox-4.0.7/pynetbox.egg-info/PKG-INFO 
new/pynetbox-4.0.8/pynetbox.egg-info/PKG-INFO
--- old/pynetbox-4.0.7/pynetbox.egg-info/PKG-INFO       2019-09-13 
17:11:18.000000000 +0200
+++ new/pynetbox-4.0.8/pynetbox.egg-info/PKG-INFO       2019-09-27 
15:57:12.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pynetbox
-Version: 4.0.7
+Version: 4.0.8
 Summary: NetBox API client library
 Home-page: https://github.com/digitalocean/pynetbox
 Author: Zach Moody


Reply via email to