bigsuds
Advanced tools
| Metadata-Version: 1.1 | ||
| Name: bigsuds | ||
| Version: 1.0.4 | ||
| Version: 1.0.5 | ||
| Summary: Library for F5 Networks iControl API | ||
@@ -19,1 +19,3 @@ Home-page: http://devcentral.f5.com | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3.5 | ||
| Classifier: Programming Language :: Python :: 3.6 |
@@ -1,1 +0,1 @@ | ||
| suds>=0.4 | ||
| suds-jurko>=0.6 |
@@ -7,4 +7,3 @@ bigsuds.py | ||
| bigsuds.egg-info/dependency_links.txt | ||
| bigsuds.egg-info/pbr.json | ||
| bigsuds.egg-info/requires.txt | ||
| bigsuds.egg-info/top_level.txt |
+41
-24
@@ -6,3 +6,19 @@ #!/usr/bin/env python | ||
| """ | ||
| import httplib | ||
| try: | ||
| # Python 2.x | ||
| import httplib | ||
| from urllib2 import URLError | ||
| from httplib import BadStatusLine | ||
| from urllib2 import build_opener | ||
| from urllib2 import HTTPBasicAuthHandler | ||
| from urllib2 import HTTPSHandler | ||
| except ImportError: | ||
| # Python 3.x | ||
| import http.client as httplib | ||
| from urllib.error import URLError | ||
| from http.client import BadStatusLine | ||
| from urllib.request import build_opener | ||
| from urllib.request import HTTPBasicAuthHandler | ||
| from urllib.request import HTTPSHandler | ||
| import logging | ||
@@ -12,3 +28,2 @@ import os | ||
| import ssl | ||
| import urllib2 | ||
| from xml.sax import SAXParseException | ||
@@ -25,5 +40,7 @@ | ||
| __version__ = '1.0.4' | ||
| import six | ||
| __version__ = '1.0.5' | ||
| # We need to monkey-patch the Client's ObjectCache due to a suds bug: | ||
@@ -34,3 +51,3 @@ # https://fedorahosted.org/suds/ticket/376 | ||
| # We need to add support for SSL Contexts for Python 2.7.9+ | ||
| class HTTPSHandlerNoVerify(urllib2.HTTPSHandler): | ||
| class HTTPSHandlerNoVerify(HTTPSHandler): | ||
| def __init__(self, *args, **kwargs): | ||
@@ -44,3 +61,3 @@ try: | ||
| urllib2.HTTPSHandler.__init__(self, *args, **kwargs) | ||
| HTTPSHandler.__init__(self, *args, **kwargs) | ||
@@ -170,7 +187,7 @@ class HTTPSTransportNoVerify(HttpAuthenticated): | ||
| self._timeout,self._port) | ||
| except SAXParseException, e: | ||
| except SAXParseException as e: | ||
| raise ParseError('%s\nFailed to parse wsdl. Is "%s" a valid ' | ||
| 'namespace?' % (e, wsdl_name)) | ||
| # One situation that raises TransportError is when credentials are bad. | ||
| except (urllib2.URLError, TransportError), e: | ||
| except (URLError, TransportError) as e: | ||
| raise ConnectionError(str(e)) | ||
@@ -193,3 +210,3 @@ return self._create_client_wrapper(client, wsdl_name) | ||
| self._timeout, self._port) | ||
| for namespace, attr_list in wsdl_hierarchy.iteritems(): | ||
| for namespace, attr_list in six.iteritems(wsdl_hierarchy): | ||
| ns = getattr(self, namespace) | ||
@@ -299,3 +316,3 @@ ns.set_attr_list(attr_list) | ||
| auth_handler = urllib2.HTTPBasicAuthHandler() | ||
| auth_handler = HTTPBasicAuthHandler() | ||
| # 10.1.0 has a realm of "BIG-IP" | ||
@@ -308,8 +325,8 @@ auth_handler.add_password(uri='https://%s:%s/' % (hostname, port), | ||
| if verify: | ||
| opener = urllib2.build_opener(auth_handler) | ||
| opener = build_opener(auth_handler) | ||
| else: | ||
| opener = urllib2.build_opener(auth_handler, HTTPSHandlerNoVerify) | ||
| opener = build_opener(auth_handler, HTTPSHandlerNoVerify) | ||
| try: | ||
| result = opener.open(url, timeout=timeout) | ||
| except urllib2.URLError, e: | ||
| except URLError as e: | ||
| raise ConnectionError(str(e)) | ||
@@ -421,3 +438,3 @@ | ||
| method = getattr(self._client.service, attr) | ||
| except _MethodNotFound, e: | ||
| except _MethodNotFound as e: | ||
| e.__class__ = MethodNotFound | ||
@@ -478,13 +495,13 @@ raise | ||
| 'credentials.') | ||
| except _MethodNotFound, e: | ||
| except _MethodNotFound as e: | ||
| e.__class__ = MethodNotFound | ||
| raise | ||
| except WebFault, e: | ||
| except WebFault as e: | ||
| e.__class__ = ServerError | ||
| raise | ||
| except urllib2.URLError, e: | ||
| except URLError as e: | ||
| raise ConnectionError('URLError: %s' % str(e)) | ||
| except httplib.BadStatusLine, e: | ||
| except BadStatusLine as e: | ||
| raise ConnectionError('BadStatusLine: %s' % e) | ||
| except SAXParseException, e: | ||
| except SAXParseException as e: | ||
| raise ParseError("Failed to parse the BIGIP's response. This " | ||
@@ -495,3 +512,3 @@ "was likely caused by a 500 error message.") | ||
| wrapped_method.__doc__ = usage | ||
| wrapped_method.__name__ = method.method.name.encode("utf-8") | ||
| wrapped_method.__name__ = str(method.method.name) | ||
| # It's occasionally convenient to be able to grab the suds object directly | ||
@@ -546,3 +563,3 @@ wrapped_method._method = method | ||
| newkwargs = {} | ||
| for name, value in kwargs.items(): | ||
| for name, value in six.iteritems(kwargs): | ||
| try: | ||
@@ -579,3 +596,3 @@ argtype = [x[1] for x in self._argspec if x[0] == name][0] | ||
| if isinstance(value, dict): | ||
| for name, value in value.items(): | ||
| for name, value in six.iteritems(value): | ||
| # The new object we created has the type of each attribute | ||
@@ -597,3 +614,3 @@ # accessible via the attribute's class name. | ||
| # This is a common mistake. We might as well catch it here. | ||
| if isinstance(value, basestring): | ||
| if isinstance(value, six.string_types): | ||
| raise ArgumentError( | ||
@@ -668,7 +685,7 @@ '%s needs an iterable, but was specified as a string: ' | ||
| return d | ||
| elif isinstance(value, unicode): | ||
| elif isinstance(value, six.string_types): | ||
| # This handles suds.sax.text.Text as well, as it derives from | ||
| # unicode. | ||
| return str(value) | ||
| elif isinstance(value, long): | ||
| elif isinstance(value, six.integer_types): | ||
| return int(value) | ||
@@ -675,0 +692,0 @@ return value |
+3
-1
| Metadata-Version: 1.1 | ||
| Name: bigsuds | ||
| Version: 1.0.4 | ||
| Version: 1.0.5 | ||
| Summary: Library for F5 Networks iControl API | ||
@@ -19,1 +19,3 @@ Home-page: http://devcentral.f5.com | ||
| Classifier: Programming Language :: Python :: 2.7 | ||
| Classifier: Programming Language :: Python :: 3.5 | ||
| Classifier: Programming Language :: Python :: 3.6 |
+3
-1
@@ -24,2 +24,4 @@ from setuptools import setup | ||
| 'Programming Language :: Python :: 2.7', | ||
| 'Programming Language :: Python :: 3.5', | ||
| 'Programming Language :: Python :: 3.6', | ||
| ], | ||
@@ -30,3 +32,3 @@ keywords='f5 icontrol', | ||
| url='http://devcentral.f5.com', | ||
| install_requires=['suds>=0.4'], | ||
| install_requires=['suds-jurko>=0.6'], | ||
| py_modules=['bigsuds'], | ||
@@ -33,0 +35,0 @@ test_suite='nose.collector', |
| {"is_release": false, "git_version": "fca5a1b"} |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
30016
2.49%605
2.89%9
-10%