xref: /freebsd-src/sys/contrib/openzfs/contrib/pyzfs/README (revision 180f822596ecc49d3074dcc9dfea9628aae1d48d)
1eda14cbcSMatt MacyThis package provides a wrapper for libzfs_core C library.
2eda14cbcSMatt Macy
3eda14cbcSMatt Macylibzfs_core is intended to be a stable interface for programmatic
4eda14cbcSMatt Macyadministration of ZFS.
5eda14cbcSMatt MacyThis wrapper provides one-to-one wrappers for libzfs_core API functions,
6eda14cbcSMatt Macybut the signatures and types are more natural to Python.
7eda14cbcSMatt Macynvlists are wrapped as dictionaries or lists depending on their usage.
8eda14cbcSMatt MacySome parameters have default values depending on typical use for
9eda14cbcSMatt Macyincreased convenience.
10eda14cbcSMatt MacyEnumerations and bit flags become strings and lists of strings in Python.
11eda14cbcSMatt MacyErrors are reported as exceptions rather than integer errno-style
12eda14cbcSMatt Macyerror codes.  The wrapper takes care to provide one-to-many mapping
13eda14cbcSMatt Macyof the error codes to the exceptions by interpreting a context
14eda14cbcSMatt Macyin which the error code is produced.
15eda14cbcSMatt Macy
16eda14cbcSMatt MacyUnit tests and automated test for the libzfs_core API are provided
17eda14cbcSMatt Macywith this package.
18eda14cbcSMatt MacyPlease note that the API tests perform lots of ZFS dataset level
19eda14cbcSMatt Macyoperations and ZFS tries hard to ensure that any modifications
20eda14cbcSMatt Macydo reach stable storage. That means that the operations are done
21eda14cbcSMatt Macysynchronously and that, for example, disk caches are flushed.
22eda14cbcSMatt MacyThus, the tests can be very slow on real hardware.
23eda14cbcSMatt MacyIt is recommended to place the default temporary directory or
24eda14cbcSMatt Macya temporary directory specified by, for instance, TMP environment
25eda14cbcSMatt Macyvariable on a memory backed filesystem.
26eda14cbcSMatt Macy
27eda14cbcSMatt MacyPackage documentation: http://pyzfs.readthedocs.org
28*180f8225SMatt MacyPackage development: https://github.com/openzfs/zfs
29