pyxs Changelog¶
Here you can see the full list of changes between each pyxs release.
Version 0.4.1¶
Bugfix release, released on May 11th, 2016
- Fixed a bug in
XenBusConnection.create_transportwhich failed on attribute lookup. See PR #7 on GitHub.
Version 0.4.0¶
Released on March 6th, 2016
Fixed a bug in
Client.set_permissionswhich coerced permission lists (e.g.["b0"]) to repr-strings prior to validation.The API is now based around
bytes, which means that all methods which used to acceptstr(or text) now requirebytes. XenStore paths and values are specified to be 7-bit ASCII, thus it makes little sense to allow any Unicode string as input and then validate if it matches the spec.Removed
transactionargument fromClientconstructor. The user is advised to use the corresponding methods explicitly.Removed
connectionargument fromClientconstructor. The user should now wrap it in aRouter.Renamed some of the
Clientmethods to more human-readable names:Old name New name ls list rm delete get_permissions get_perms set_permissions set_perms transaction_start transaction transaction_end commit and rollback Removed
Client.transactioncontext manager, because it didn’t provide a way to handle possible commit failure.Added
Client.existsfor one-line path existence checks. See PR #6 on GitHub. Thanks to Sandeep Murthy.Removed implicit reconnection logic from
FileDescriptorConnection. The user is now expected to connect manually.Changed
XenBusConnectionto prefer/dev/xen/xenbuson Linux due to a possible deadlock in XenBus backend.Changed
UnixSocketConnectionto usesocket.socketinstead of the corresponding file descriptor.Disallowed calling
Client.monitoroverXenBusConnection. See http://lists.xen.org/archives/html/xen-devel/2016-02/msg03816 for details.
Version 0.3.1¶
Released on November 29th 2012
- Added
defaultargument toClient.read(), which acts similar todict.get(). - Fixed a lot of minor quirks so
pyxscan be Debianized.
Version 0.3¶
Released on September 12th 2011
- Moved all PUBSUB functionality into a separate
Monitorclass, which uses a separate connection. That way, we’ll never have to worry about mixing incoming XenStore events and command replies. - Fixed a couple of nasty bugs in concurrent use of
Client.wait()with other commands (see above).
Version 0.2¶
Released on August 18th 2011
- Completely refactored validation – no more @spec magic, everything
is checked explicitly inside
Client.execute_command(). - Added a compatibility interface, which mimics xen.lowlevel.xs
behaviour, using
pyxsas a backend, see pyxs/_compat.py. - Restricted SET_TARGET, INTRODUCE and RELEASE operations to
Dom0 only –
/proc/xen/capabilitiesis used to check domain role. - Fixed a bug in
Client.wait()– queued watch events weren’t wrapped inpyxs._internal.Eventclass, unlike the received ones. - Added
Client.walk()method for walking XenStore tree – similar toos.walk()
Version 0.1¶
Initial release, released on July 16th 2011
- Added a complete implementation of XenStore protocol, including
transactions and path watching, see
pyxs.Clientfor details. - Added generic validation helper – @spec, which forces arguments to match the scheme from the wire protocol specification.
- Added two connection backends –
XenBusConnectionfor connecting from DomU through a block device andUnixSocketConnection, communicating with XenStore via a Unix domain socket.