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_transport
which failed on attribute lookup. See PR #7 on GitHub.
Version 0.4.0¶
Released on March 6th, 2016
Fixed a bug in
Client.set_permissions
which 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
transaction
argument fromClient
constructor. The user is advised to use the corresponding methods explicitly.Removed
connection
argument fromClient
constructor. The user should now wrap it in aRouter
.Renamed some of the
Client
methods 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.transaction
context manager, because it didn’t provide a way to handle possible commit failure.Added
Client.exists
for 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
XenBusConnection
to prefer/dev/xen/xenbus
on Linux due to a possible deadlock in XenBus backend.Changed
UnixSocketConnection
to usesocket.socket
instead of the corresponding file descriptor.Disallowed calling
Client.monitor
overXenBusConnection
. See http://lists.xen.org/archives/html/xen-devel/2016-02/msg03816 for details.
Version 0.3.1¶
Released on November 29th 2012
- Added
default
argument toClient.read()
, which acts similar todict.get()
. - Fixed a lot of minor quirks so
pyxs
can be Debianized.
Version 0.3¶
Released on September 12th 2011
- Moved all PUBSUB functionality into a separate
Monitor
class, 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
pyxs
as a backend, see pyxs/_compat.py. - Restricted SET_TARGET, INTRODUCE and RELEASE operations to
Dom0 only –
/proc/xen/capabilities
is used to check domain role. - Fixed a bug in
Client.wait()
– queued watch events weren’t wrapped inpyxs._internal.Event
class, 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.Client
for details. - Added generic validation helper – @spec, which forces arguments to match the scheme from the wire protocol specification.
- Added two connection backends –
XenBusConnection
for connecting from DomU through a block device andUnixSocketConnection
, communicating with XenStore via a Unix domain socket.