| 
									
										
										
										
											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 |