Release History

0.9.4-12 2018-07-25

  • fixed a bug which caused GETs to fail with hcpsdk.HcpsdkError: faulty read: ‘NoneType’ object has no attribute ‘read’ caused by idletimer cutting off the connection while transferring data

0.9.4-11 2018-03-27

  • fixed a bug in hcpsdk.Connection.request() which caused blanks not to be url-encoded

0.9.4-10 2018-03-06

  • fixed a bug in hcpsdk.Connection.request() where some characters were not properly encoded

0.9.4-9 2017-08-26

  • Better __repr__ and __str__ for hcpsdk.__init__.py

0.9.4-8 2017-07-14

  • Fixed a bug where URLs containing ‘+’ also have to be url-encoded

0.9.4-7 2017-07-07

  • Fixed a bug where already url-encoded URLs were url-encoded, again

0.9.4-6 2017-03-31

  • Fixed a bug in NativeADAuthorization that caused 403 errors (thanks to Kevin L)

0.9.4-5 2016-12-19

  • Fixed a bug in setup.py that caused dnspython3 still be called in

0.9.4-4 2016-12-06

  • Changed the pre-requisite from dnspython3 to dnspython >= 1.15.0. (dnspython 1.15.0 supports Python 2 and 3)

0.9.4-3 2016-02-28

  • Added the posibility to enable TCP keep-alive for hcpsdk.Connections
  • Documentation slightly reformatted

0.9.4-2 2016-02-04

  • Re-worked the representation of Target()’s and Connection()’s (mainly) read-only attributes; fixed documentation source accordingly
  • Renamed attribute Response to response in hcpsdk.Connection(). Response is deprecated, but will stay available for backward compatibility

0.9.4-1 2015-12-18

  • Fixed doctring of hcpsdk.mapi.replication.setreplicationlinkstate()

0.9.4-0 2015-12-17

  • Added hcpsdk.mapi.chargeback
  • Added hcpsdk.mapi.tenant (with limited functionality)
  • Added support for Active Directory users (hcpsdk.NativeADAuthorization())
  • Added trademarks to documentation

0.9.3.11 2015-12-06

  • Fixed a bug that lead Connection.service_time2 to be too low

0.9.3.10 2015-12-01

  • Added support for local Swift Authorization (w/o Keystone and
  • an article about the proper use of URLs

0.9.3-9 2015-11-08

  • Documentation fixes

0.9.3-7 2015-11-08

  • Fixed return value of mapi.log.download()
  • Made output of mapilogshell.py more precise

0.9.3-6 2015-10-20 0.9.3-5 2015-10-20

  • Removed alabaster from the list of dependencies for source installs

0.9.3-4 2015-10-12 0.9.3-3 2015-10-12

  • Fixed a bug in setup.py to enable pip install on Windows

0.9.3-2 2015-10-12

  • Changed README.md and setup.py to adopt to Gitlab and readthedocs requirements

0.9.3-1 2015-10-11

  • Documentation fixes

0.9.3-0 2015-10-10

  • Added access to the logs endpoint invented with HCP 7.2 (hcpsdk.mapi.Logs())
  • Provide an example script, based on cmd.cmd() to manually explore the log download MAPI. See documentation.
  • Splitted hcpsdk.mapi classes into separate packages (logs and replication, yet), while maintaining accessibility through hcpsdk.mapi.Logs and hcpsdk.mapi.Replication, respectively.
  • Corrected the documentation buildout for Exceptions
  • Fixed a bug that prevented internal connections to be closed when idletimer fired
  • Fixed the logger initialization per class throughout the entire code base
  • Added exception handling for ConnectionRefusedError

0.9.2-38 2015-08-31

  • Added documentation about thread-safety.

0.9.2-37 2015-08-18

  • Handle OSError by retry-ing the call in hcpsdk.Connection.request()
  • Connection.close() now clears the underlying socket reference
  • Connection.close() no more generates debug message if the connection wasn’t open.
  • repr(hcpsdk.Target) and repr(hcpsdk.Connection) now returns the memory address of the respecive object for debug purposes.

0.9.2-36 2015-07-15

  • Disabled character ‘+’ as save when urlencoding parameters in hcpsdk.Connection.request()

0.9.2-35 2015-06-23

  • Removed some of the annoying debug messages stating idleTimer stopped/started

0.9.2-34 2015-06-23

  • Now showing the number of bytes read in debug output in hcpsdk.Connection.read()

0.9.2-32 2015-06-02

  • Now catching BrokenPipeError during hcpsdk.Connection.request(), leading to as many retries as requested for the connection.

0.9.2-31 2015-05-26

  • Fixed pip installer pre-requisites

0.9.2-30 2015-05-24

  • Fixed pip installer pre-requisites
  • Documentation for hcpsdk.namespace: added hint about HCP version availability.

0.9.2-29 2015-05-20

  • Fixed proper handling of http.client.CannotSendRequest in Connection.request()

0.9.2-28 2015-05-20

  • If a socket.timeout is raised in hcpsdk.Connection.read(), re-raise it as hcpsdk.HcpsdkTimeoutError.

0.9.2-27 2015-05-19

  • hcpsdk.Connection.request() is now aware of ResponseNotReady being raised during http.client.HTTPConnection.getresponse() and retries appropriately.

0.9.2-26 2015-05-19

  • Corrected the behaviour of the ‘all’ parameter in hcpsdk.namespace.listaccessiblens()

0.9.2-25 2015-05-13

  • One more debug message right after getResponse()

0.9.2-24 2015-05-13

  • Added output of service_time2 to debug messages

0.9.2-23 2015-05-13

  • Output of service times in debug messages set to 17 digits

0.9.2-22 2015-05-13

  • Output of service times in debug messages are more precise, now

0.9.2-21 2015-03-28

  • Tuned the exception handling in hcpsdk.request()
  • Fixed/added testcases

0.9.2-20 2015-03-26

  • Fixed/added testcases

0.9.2-19 2015-03-26

  • hcpsdk.Connection.request(): changed behavior for the cases where we receive one of ConnectionAbortedError, http.client.ResponseNotReady, TimeoutError and socket.timeout. We now refresh the cached IP addresses and setup a new connection.

0.9.2-18 2015-03-25

  • hcpsdk.Connection.request() accidentally quoted blanks in an URL as ‘+’, which is not valid for HCP. Replaced urllib.parse.quote_plus() by urllib.parse.quote().

0.9.2-17 2015-03-24

  • hcpsdk.Connection.request() is now aware of timeouts that occur during http.client.HTTPConnection.getresponse() and retries appropriately.

0.9.2-16 2015-03-22

  • hcpsdk.Connection.close() now checks if the underlying connection is really open before trying to close it.

0.9.2-15 2015-03-22

  • hcpsdk.Connection.request() excluded ‘+’ from being urlencoded in params.

0.9.2-14 2015-03-20

  • hcpsdk.Connection.POST() now allows to add a body to the request.

0.9.2-13 2015-03-16

  • Changed some unnecessary logging.error calls to logging.debug

0.9.2-12 2015-03-16

  • Now raising HcpsdkReplicaInitError id a hcpsdk.Target is initialized with a replica HCP (not yet implemented).
  • Improved error handling in hcpsdk.Connection.request().
  • hcpsdk.Target() will now raise ips.IpsError if DNS name resolution fails.

0.9.2-11 2015-03-12

  • Fixed an issue in hcpsdk.Connection.__str__() where a false attribute was referenced.

0.9.2-10 2015-03-11

  • Fixed an issue in hcpsdk.Connection.request() that led to situations where a failed connection wasn’t recovered correctly.

0.9.2-9 2015-03-09

  • Added missing import of subpackage pathbuilder into hcpsdk.__init__.py

0.9.2-8 2015-03-09

  • Fixed:

    as socket.getaddrinfo() seems to double the resolved IP addresses under some circumstances, added a check to make sure we don’t have duplicates in the result of hcpsdk.ips.query()

0.9.2-7 2015-03-09

  • Fixed dependency handling, again…

0.9.2-6 2015-03-08

  • Now handling ConnectionAbortedError properly in hcpsdk.Connection() by closing and re-opening the connection on the same target IP address

0.9.2-5 2015-03-07

  • Fixed __all__ in several modules, some typos in comments

0.9.2-4 2015-03-06

  • Added the missing param keyword argument to hcpsdk.Connection.PUT()

0.9.2-3 2015-03-06

  • Fixed a missing import in hcpsdk.__init__.py that led to an unrecoverable error when running on Python 3.4.3

0.9.2-1 2015-03-01

  • hcpsdk.Connection.request() now logs exception information and stack trace if a catched exception is re-raised as an hcpsdk.[..]Error. This will get visible only if the application has initialized the logging subsystem.

0.9.1-8 2015-02-27

  • Fixed line width in documentation (.rst files) to match limitations for pdf generation

0.9.1-7 2015-02-27

  • Fixed pip distribution fixed to allow auto-install of dependencies when running ‘pip install hcpsdk’

0.9.1-6 2015-02-18

  • Added automatic retires for hcpsdk.Connection.request() in case of a timeout or connection abort,
  • A DummyAuthorization class for use with the Default Namespace,
  • An appendiy on the difference when working with the Default Namespace.