2018-03-03 13:10:34 +03:00
|
|
|
This package provides a wrapper for libzfs_core C library.
|
|
|
|
|
|
|
|
libzfs_core is intended to be a stable interface for programmatic
|
|
|
|
administration of ZFS.
|
|
|
|
This wrapper provides one-to-one wrappers for libzfs_core API functions,
|
|
|
|
but the signatures and types are more natural to Python.
|
|
|
|
nvlists are wrapped as dictionaries or lists depending on their usage.
|
|
|
|
Some parameters have default values depending on typical use for
|
|
|
|
increased convenience.
|
|
|
|
Enumerations and bit flags become strings and lists of strings in Python.
|
|
|
|
Errors are reported as exceptions rather than integer errno-style
|
|
|
|
error codes. The wrapper takes care to provide one-to-many mapping
|
|
|
|
of the error codes to the exceptions by interpreting a context
|
|
|
|
in which the error code is produced.
|
|
|
|
|
|
|
|
Unit tests and automated test for the libzfs_core API are provided
|
|
|
|
with this package.
|
|
|
|
Please note that the API tests perform lots of ZFS dataset level
|
|
|
|
operations and ZFS tries hard to ensure that any modifications
|
|
|
|
do reach stable storage. That means that the operations are done
|
|
|
|
synchronously and that, for example, disk caches are flushed.
|
|
|
|
Thus, the tests can be very slow on real hardware.
|
|
|
|
It is recommended to place the default temporary directory or
|
|
|
|
a temporary directory specified by, for instance, TMP environment
|
|
|
|
variable on a memory backed filesystem.
|
|
|
|
|
|
|
|
Package documentation: http://pyzfs.readthedocs.org
|
Adopt pyzfs from ClusterHQ
This commit introduces several changes:
* Update LICENSE and project information
* Give a good PEP8 talk to existing Python source code
* Add RPM/DEB packaging for pyzfs
* Fix some outstanding issues with the existing pyzfs code caused by
changes in the ABI since the last time the code was updated
* Integrate pyzfs Python unittest with the ZFS Test Suite
* Add missing libzfs_core functions: lzc_change_key,
lzc_channel_program, lzc_channel_program_nosync, lzc_load_key,
lzc_receive_one, lzc_receive_resumable, lzc_receive_with_cmdprops,
lzc_receive_with_header, lzc_reopen, lzc_send_resume, lzc_sync,
lzc_unload_key, lzc_remap
Note: this commit slightly changes zfs_ioc_unload_key() ABI. This allow
to differentiate the case where we tried to unload a key on a
non-existing dataset (ENOENT) from the situation where a dataset has
no key loaded: this is consistent with the "change" case where trying
to zfs_ioc_change_key() from a dataset with no key results in EACCES.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #7230
2018-03-18 11:34:45 +03:00
|
|
|
Package development: https://github.com/zfsonlinux/zfs
|