Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ././../../../../../../usr/man/man3rad/zfsmgr-1.3rad
Real path: /usr/share/man/man3rad/zfsmgr-1.3rad
Zurück
'\" t .\" Title: zfsmgr-1 .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> .\" Date: 2020-07-16 .\" Manual: RAD Module Definitions .\" Source: Solaris 11.4 .\" Language: English .\" .TH "ZFSMGR\-1" "3rad" "2020\-07\-16" "Solaris 11.4" "RAD Module Definitions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" zfsmgr \- API for ZFS storage pools, datasets and snapshots .SH "SYNOPSIS" .nf #include <rad/client/1/zfsmgr\&.h> cc [ flag\&.\&.\&. ] file\&.\&.\&. \fB\-lzfsmgr1_client\fR [ library\&.\&.\&. ] .fi .SS "interface ZfsDataset" .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_create_filesystem\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_create_filesystem\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_create_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_create_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_destroy_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_destroy_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rename_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rename_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *old_name, . const\ char\ *new_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_filesystems\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_filesystems\fR(rc_instance_t\ *inst, . boolean_t\ *recursive, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_snapshots\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_snapshots\fR(rc_instance_t\ *inst, . boolean_t\ *recursive, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_destroy\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_destroy\fR(rc_instance_t\ *inst, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rename\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rename\fR(rc_instance_t\ *inst, . const\ char\ *new_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_mount\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_mount\fR(rc_instance_t\ *inst, . const\ char\ **mount_options, . int\ mount_options_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unmount\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unmount\fR(rc_instance_t\ *inst, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rollback\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rollback\fR(rc_instance_t\ *inst, . const\ char\ *snapshot_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_promote\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_promote\fR(rc_instance_t\ *inst, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_set_props\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_props\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_inherit\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_inherit\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_send_socket\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_send_socket\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_SocketType_t\ socket_type, . boolean_t\ *verify_token, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_SendSocketInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_send_stream_info\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_send_stream_info\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_SendStreamInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_receive_socket\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_receive_socket\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_SocketType_t\ socket_type, . zfsmgr_ZfsRecvNameOptions_t\ name_options, . boolean_t\ *verify_token, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_RecvSocketInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'typedef\ void\ \fB(*zfsmgr_ZfsDataset_zfs_send_status_cb_f)\fR('u .R typedef void \fB(*zfsmgr_ZfsDataset_zfs_send_status_cb_f)\fR(rc_instance_t\ *inst, . zfsmgr_ZfsSendRecvStatus_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_subscribe_zfs_send_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_subscribe_zfs_send_status\fR(rc_instance_t\ *inst, . zfsmgr_ZfsDataset_zfs_send_status_cb_f\ cb, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unsubscribe_zfs_send_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unsubscribe_zfs_send_status\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .nf .HP \w'typedef\ void\ \fB(*zfsmgr_ZfsDataset_zfs_recv_status_cb_f)\fR('u .R typedef void \fB(*zfsmgr_ZfsDataset_zfs_recv_status_cb_f)\fR(rc_instance_t\ *inst, . zfsmgr_ZfsSendRecvStatus_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_subscribe_zfs_recv_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_subscribe_zfs_recv_status\fR(rc_instance_t\ *inst, . zfsmgr_ZfsDataset_zfs_recv_status_cb_f\ cb, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unsubscribe_zfs_recv_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unsubscribe_zfs_recv_status\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .SS "interface ZfsSnapshot" .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_clone\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_clone\fR(rc_instance_t\ *inst, . const\ char\ *clone_name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_get_clones\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_get_clones\fR(rc_instance_t\ *inst, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_get_props\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_set_props\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_inherit\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_inherit\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .SS "interface Zpool" .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_vdevs\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_vdevs\fR(rc_instance_t\ *inst, . zfsmgr_ZpoolVdev_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_set_props\fR('u .R rc_err_t \fBzfsmgr_Zpool_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_props\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_dataset_ref\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_dataset_ref\fR(rc_instance_t\ *inst, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_upgrade\fR('u .R rc_err_t \fBzfsmgr_Zpool_upgrade\fR(rc_instance_t\ *inst, . int\ version, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .SS "interface ZfsUtil" .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsUtil_valid_zfs_name\fR('u .R rc_err_t \fBzfsmgr_ZfsUtil_valid_zfs_name\fR(rc_instance_t\ *inst, . const\ char\ *name, . boolean_t\ *is_snapname, . boolean_t\ *result); .RS .RE .fi .SS "Enumerated Types" .PP \fBenum PropSrc\fR .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_PropSrc { ZPS_src_local = 0, ZPS_src_default = 1, ZPS_src_temporary = 2, ZPS_src_received = 3, ZPS_src_inherited = 4, ZPS_src_none = 5, } zfsmgr_PropSrc_t; .fi .RE .\" } blockquote .PP \fBenum ZfsOpOption\fR .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsOpOption { ZZOO_create_parent = 0, ZZOO_recurse_filesystems = 1, ZZOO_recurse_dependents = 2, ZZOO_defer = 3, ZZOO_overlay_mount = 4, ZZOO_force_unmount = 5, ZZOO_force_rollback = 6, ZZOO_do_not_mount = 7, ZZOO_send_props = 8, ZZOO_self_contained = 9, ZZOO_revert_received = 10, ZZOO_allow_destroy_snapshots = 11, ZZOO_allow_destroy_clones = 12, } zfsmgr_ZfsOpOption_t; .fi .RE .\" } blockquote .PP \fBenum ZfsRecvNameOptions\fR .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsRecvNameOptions { ZZRNO_use_provided_name = 0, ZZRNO_use_all_but_pool_name = 1, ZZRNO_use_tail_only = 2, } zfsmgr_ZfsRecvNameOptions_t; .fi .RE .\" } blockquote .PP \fBenum ZfsRADErrType\fR .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsRADErrType { ZZRADET_libzfs_err = 0, ZZRADET_zfsrad_err = 1, ZZRADET_operation_err = 2, } zfsmgr_ZfsRADErrType_t; .fi .RE .\" } blockquote .PP \fBenum SocketType\fR .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_SocketType { ZST_AF_UNIX = 0, ZST_AF_INET = 1, } zfsmgr_SocketType_t; .fi .RE .\" } blockquote .SS "Structured Types" .PP \fBstruct ZfsRADError\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsRADError zfsmgr_ZfsRADError_t; .PP .nf struct zfsmgr_ZfsRADError { zfsmgr_ZfsRADErrType_t zzrade_err_type; int zzrade_libzfs_errcode; char *zzrade_libzfs_errstr; char *zzrade_info; char *zzrade_location; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsRADError_free\fR('u .R void \fBzfsmgr_ZfsRADError_free\fR(zfsmgr_ZfsRADError_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct ZfsProp\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsProp zfsmgr_ZfsProp_t; .PP .nf struct zfsmgr_ZfsProp { char *zzp_name; char *zzp_value; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsProp_free\fR('u .R void \fBzfsmgr_ZfsProp_free\fR(zfsmgr_ZfsProp_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct ZfsPropDetail\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsPropDetail zfsmgr_ZfsPropDetail_t; .PP .nf struct zfsmgr_ZfsPropDetail { char *zzpd_name; char *zzpd_value; zfsmgr_PropSrc_t zzpd_source; zfsmgr_ZfsRADError_t *zzpd_error; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsPropDetail_free\fR('u .R void \fBzfsmgr_ZfsPropDetail_free\fR(zfsmgr_ZfsPropDetail_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct ZfsPropRequest\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsPropRequest zfsmgr_ZfsPropRequest_t; .PP .nf struct zfsmgr_ZfsPropRequest { char *zzpr_name; boolean_t *zzpr_persistent; boolean_t *zzpr_received; boolean_t *zzpr_integer_val; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsPropRequest_free\fR('u .R void \fBzfsmgr_ZfsPropRequest_free\fR(zfsmgr_ZfsPropRequest_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct SendStreamInfo\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_SendStreamInfo zfsmgr_SendStreamInfo_t; .PP .nf struct zfsmgr_SendStreamInfo { char *zssi_size; char **zssi_snapshot_info; int zssi_snapshot_info_count; }; .fi .nf .HP \w'void\ \fBzfsmgr_SendStreamInfo_free\fR('u .R void \fBzfsmgr_SendStreamInfo_free\fR(zfsmgr_SendStreamInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct SendSocketInfo\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_SendSocketInfo zfsmgr_SendSocketInfo_t; .PP .nf struct zfsmgr_SendSocketInfo { char *zssi_token; char *zssi_socket; zfsmgr_SendStreamInfo_t *zssi_stream_info; }; .fi .nf .HP \w'void\ \fBzfsmgr_SendSocketInfo_free\fR('u .R void \fBzfsmgr_SendSocketInfo_free\fR(zfsmgr_SendSocketInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct RecvSocketInfo\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_RecvSocketInfo zfsmgr_RecvSocketInfo_t; .PP .nf struct zfsmgr_RecvSocketInfo { char *zrsi_token; char *zrsi_socket; }; .fi .nf .HP \w'void\ \fBzfsmgr_RecvSocketInfo_free\fR('u .R void \fBzfsmgr_RecvSocketInfo_free\fR(zfsmgr_RecvSocketInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct ZpoolVdev\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZpoolVdev zfsmgr_ZpoolVdev_t; .PP .nf struct zfsmgr_ZpoolVdev { char *zzv_type; char **zzv_devices; int zzv_devices_count; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZpoolVdev_free\fR('u .R void \fBzfsmgr_ZpoolVdev_free\fR(zfsmgr_ZpoolVdev_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct ZfsSendRecvStatus\fR .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsSendRecvStatus zfsmgr_ZfsSendRecvStatus_t; .PP .nf struct zfsmgr_ZfsSendRecvStatus { char *zzsrs_operation; int zzsrs_return_code; int zzsrs_libzfs_errcode; char *zzsrs_libzfs_errstr; char *zzsrs_info; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsSendRecvStatus_free\fR('u .R void \fBzfsmgr_ZfsSendRecvStatus_free\fR(zfsmgr_ZfsSendRecvStatus_t\ *in); .RS .RE .fi .RE .\" } blockquote .SH "DESCRIPTION" .PP \fBAPI com\&.oracle\&.solaris\&.rad\&.zfsmgr \fR\fB\&\s-2\u[1]\d\s+2\fR .PP This API provides functionality for management of ZFS storage pools, ZFS datasets and ZFS snapshots\&. .PP The following sample Python clients illustrate some simple interactions with the module\&. .SH "INTERFACES" .SS "interface ZfsDataset" .PP This object represents a ZFS dataset and contains interfaces for managing ZFS datasets\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsDataset Methods\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_create_filesystem\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_create_filesystem\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Create a ZFS filesystem with the name and properties given\&. It will be mounted according to the mountpoint property inherited from the parent unless a mountpoint is specified in props\&. Upon successful return, the ZfsDataset object may be used directly for ZfsDataset related operations\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of the new filesystem\&. The filesystem to be created must be a descendant of this ZFS filesystem\&. Intermediate descendants will be created if they do not exist and the create_parent option is specified in options\&. .PP \fIprops\fR (\fInullable\fR) \(em Optional list of name\-value pairs of properties to set\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBcreate_parent\fR: create all non\-existing parent datasets\&. Equivalent to: zfs create \-p .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIresult\fR \(em A ZfsDataset object representing the ZFS filesystem that was just created\&. .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_create_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_create_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Create a snapshot of this ZFS dataset\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of the snapshot to be created\&. .PP \fIprops\fR (\fInullable\fR) \(em Optional list of name\-value pairs of properties to set\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBrecurse_filesystems\fR: generate snapshots of all child datasets\&. Snapshots will take the name of their original dataset, suffixed by "@" and the snapshot suffix provided by the "name" argument\&. Equivalent to: zfs snapshot \-r .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIresult\fR \(em A ZfsSnapshot object representing the ZFS snapshot created by this call\&. .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_destroy_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_destroy_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Destroy the specified snapshot\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of the snapshot to be destroyed\&. .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBdefer\fR: defer snapshot deletion\&. Equivalent to: zfs destroy \-d .PP \fBrecurse_filesystems\fR: destroy all snapshots with this name in the descendant filesystems\&. Equivalent to: zfs destroy \-r .PP \fBrecurse_dependents\fR: recursively destroy dependents\&. Equivalent to: zfs destroy \-R .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rename_snapshot\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rename_snapshot\fR(rc_instance_t\ *inst, . const\ char\ *old_name, . const\ char\ *new_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Rename the specified snapshot\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIold_name\fR \(em Name of the snapshot to be renamed .PP \fInew_name\fR \(em New name for the snapshot .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBrecurse_filesystems\fR: recursively rename the snapshots of all descendant datasets\&. Equivalent to: zfs rename \-r .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_filesystems\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_filesystems\fR(rc_instance_t\ *inst, . boolean_t\ *recursive, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIrecursive\fR (\fInullable\fR) \(em Optional\&. Default is False, which only returns the first level descendant of the filesystem\&. Set this to True to get all descendant filesystems of this ZFS filesystem\&. .PP \fIresult\fR \(em List of string names of descendant ZFS filesystems\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_snapshots\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_snapshots\fR(rc_instance_t\ *inst, . boolean_t\ *recursive, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIrecursive\fR (\fInullable\fR) \(em Optional\&. Default is False, which only returns snapshots of the filesystem\&. Set this to True to get snapshots from all descendant filesystems of this ZFS filesystem\&. .PP \fIresult\fR \(em List of string names of this dataset\'s snapshots\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_destroy\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_destroy\fR(rc_instance_t\ *inst, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Destroy this ZFS dataset\&. The handle to this dataset will be invalid upon successful return\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBforce_unmount\fR: force unmount of any filesystems\&. Equivalent to: zfs destroy \-f .PP \fBrecurse_filesystems\fR: destroy descendant filesystems\&. Equivalent to: zfs destroy \-r .PP \fBrecurse_dependents\fR: recursively destroy dependents\&. Equivalent to: zfs destroy \-R .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rename\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rename\fR(rc_instance_t\ *inst, . const\ char\ *new_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Rename this ZFS dataset\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fInew_name\fR \(em String containing the new name\&. .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBcreate_parent\fR: create all non\-existing parent datasets\&. Equivalent to: zfs rename \-p .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_mount\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_mount\fR(rc_instance_t\ *inst, . const\ char\ **mount_options, . int\ mount_options_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Mount this ZFS dataset\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fImount_options\fR (\fInullable\fR) \(em Optional list of of mount options to use for the duration of the mount\&. All mount options allowed for the zfs(8) mount command can be specified\&. Each option should be specified as a separate string in the list\&. .PP \fImount_options_count\fR \(em Number of items in mount_options array .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBoverlay_mount\fR: perform an overlay mount Equivalent to: zfs mount \-O .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unmount\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unmount\fR(rc_instance_t\ *inst, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Unmount this ZFS dataset\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBforce_unmount\fR: force unmount, even if in use\&. Equivalent to: zfs unmount \-f .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_rollback\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_rollback\fR(rc_instance_t\ *inst, . const\ char\ *snapshot_name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Roll this dataset back to the named snapshot\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIsnapshot_name\fR \(em Name of the snapshot to roll back to\&. .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBforce_unmount\fR: force unmount of any filesystems\&. Equivalent to: zfs rollback \-f .PP \fBallow_destroy_snapshots\fR: allow destroying snapshots more recent than this one\&. Equivalent to: zfs rollback \-r .PP \fBallow_destroy_clones\fR: allow recursively destroying snapshots more recent than this one, plus any clones of those snapshots\&. Equivalent to: zfs rollback \-R .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_promote\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_promote\fR(rc_instance_t\ *inst, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Promote this ZFS dataset\&. Dataset must be a clone\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_set_props\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Set property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to set\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIerror\fR \(em The ZfsRADError contains information about the first property that can not be set\&. No subsequent properties in the list will be set after the first failure\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_props\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to get\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIresult\fR \(em List of ZfsPropDetail objects, one for each property requested in the get_props() function call\&. The ZfsPropDetail object contains name, value, source and error fields\&. Their values are set based on the result of getting each property\&. If the property was successfully retrieved, then the name, value and source will have appropriate values and error will be None\&. If the property is valid, but does not have a value, then the name field is set to the name of the requested property, and all other fields will be None\&. If the property was not successfully retrieved, the name field is set to the name of the requested property, and the error field will be set with details on the error\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR \(em Returns any error not specific to getting property values\&. Errors related to getting a specific property value are included in the property detail structure that is returned\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_inherit\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_inherit\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Clears the specified properties, causing them to be inherited from an ancestor\&. If no ancestor has the property set, then the default value is used\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to clear\&. Only the name field of the ZfsProp structure is used\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBrecurse_filesystems\fR: recursively inherits the given properties for all children Equivalent to: zfs inherit \-r .PP \fBrevert_received\fR: Reverts to the received property value, if any\&. Equivalent to: zfs inherit \-S .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_send_socket\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_send_socket\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_SocketType_t\ socket_type, . boolean_t\ *verify_token, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_SendSocketInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of the snapshot to be sent\&. .PP \fIsocket_type\fR \(em The type of socket to create .PP \fIverify_token\fR (\fInullable\fR) \(em Specify whether token verification is required before data is sent\&. This is an optional argument\&. If not specified, it defaults to False, which means a client can connect to the port and start receiving the zfs send stream\'s data without sending the generated token returned in this call\&. .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBrecurse_filesystems\fR: Generates a recursive stream package\&. A recursive stream package contains a series of full and/or incremental streams\&. When received, all properties and descendant file systems are preserved\&. Equivalent to: zfs send \-r .PP \fBself_contained\fR: Creates a self\-contained stream\&. Valid only with the recurse_filesystems option\&. Equivalent to: zfs send \-C .PP \fBsend_props\fR: Sends properties\&. Equivalent to: zfs send \-p .PP \fBrecurse_dependents\fR: Generates a replication stream package that replicates the specified filesystem and all descendant filesystems\&. Equivalent to: zfs send \-R .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIresult\fR \(em SendSocketInfo structure containing information about the send stream, and the socket to use for the connection .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_send_stream_info\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_send_stream_info\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_SendStreamInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of the snapshot to get send information from .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBrecurse_filesystems\fR: Generates a recursive stream package\&. A recursive stream package contains a series of full and/or incremental streams\&. When received, all properties and descendant file systems are preserved\&. Equivalent to: zfs send \-r .PP \fBself_contained\fR: Creates a self\-contained stream\&. Valid only with the recurse_filesystems option\&. Equivalent to: zfs send \-C .PP \fBsend_props\fR: Sends properties\&. Equivalent to: zfs send \-p .PP \fBrecurse_dependents\fR: Generates a replication stream package that replicates the specified filesystem and all descendant filesystems\&. Equivalent to: zfs send \-R .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIresult\fR \(em SendStreamInfo structure containing information about the snapshots that would be sent as well as the estimated size of the stream\&. .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_get_receive_socket\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_get_receive_socket\fR(rc_instance_t\ *inst, . const\ char\ *name, . zfsmgr_SocketType_t\ socket_type, . zfsmgr_ZfsRecvNameOptions_t\ name_options, . boolean_t\ *verify_token, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_RecvSocketInfo_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR \(em Name of ZFS dataset or snapshot to create from the received stream of data\&. .\" blockquote { .RS 4 .PP The provided dataset name or the top level dataset of the provided name must match the name of this dataset\&. .RE .\" } blockquote .PP \fIsocket_type\fR \(em Type of socket to create\&. .PP \fIname_options\fR \(em Specifies how the final name used for the ZfsSnapshot or ZfsDataset should be derived\&. .PP \fIverify_token\fR (\fInullable\fR) \(em Specify whether token verification is required before data is received\&. This is an optional argument\&. If not specified, it defaults to False, which means a client can connect to the port and start sending the data to the zfs receive stream without first sending the generated token returned in this call\&. .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following options are allowed: .\" blockquote { .RS 4 .PP \fBforce_rollback\fR: Forces a rollback of the filesystem to the most recent snapshot before performing the receive operation\&. Equivalent to: zfs receive \-F .PP \fBdo_not_mount\fR: File system that is associated with the received stream is not mounted\&. Equivalent to: zfs receive \-u .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIprops\fR (\fInullable\fR) \(em Optional list of name\-value pairs of properties to set\&. If a "name" property is included, it must match the "name" argument\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIresult\fR \(em SocketInfo structure with information for socket to use for the connection\&. .PP \fIerror\fR .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsDataset Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset__rad_get_name\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a ZfsDataset object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset__rad_lookup\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a ZfsDataset instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset__rad_list\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available ZfsDataset instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsDataset Events\fR .RS 4 .PP \fIzfs_send_status\fR .\" blockquote { .RS 4 .nf .HP \w'typedef\ void\ \fB(*zfsmgr_ZfsDataset_zfs_send_status_cb_f)\fR('u .R typedef void \fB(*zfsmgr_ZfsDataset_zfs_send_status_cb_f)\fR(rc_instance_t\ *inst, . zfsmgr_ZfsSendRecvStatus_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Function invoked when event "zfs_send_status" occurs\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance that generated the event .PP \fIpayload\fR \(em Event payload .PP \fIts\fR \(em Time stamp .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_subscribe_zfs_send_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_subscribe_zfs_send_status\fR(rc_instance_t\ *inst, . zfsmgr_ZfsDataset_zfs_send_status_cb_f\ cb, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Subscribe to event "zfs_send_status"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIcb\fR \(em Event callback function .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unsubscribe_zfs_send_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unsubscribe_zfs_send_status\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Unsubscribe from event "zfs_send_status"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIarg\fR \(em User data returned .RE .\" } blockquote .RE .\" } blockquote .PP \fIzfs_recv_status\fR .\" blockquote { .RS 4 .nf .HP \w'typedef\ void\ \fB(*zfsmgr_ZfsDataset_zfs_recv_status_cb_f)\fR('u .R typedef void \fB(*zfsmgr_ZfsDataset_zfs_recv_status_cb_f)\fR(rc_instance_t\ *inst, . zfsmgr_ZfsSendRecvStatus_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Function invoked when event "zfs_recv_status" occurs\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance that generated the event .PP \fIpayload\fR \(em Event payload .PP \fIts\fR \(em Time stamp .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_subscribe_zfs_recv_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_subscribe_zfs_recv_status\fR(rc_instance_t\ *inst, . zfsmgr_ZfsDataset_zfs_recv_status_cb_f\ cb, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Subscribe to event "zfs_recv_status"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIcb\fR \(em Event callback function .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsDataset_unsubscribe_zfs_recv_status\fR('u .R rc_err_t \fBzfsmgr_ZfsDataset_unsubscribe_zfs_recv_status\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Unsubscribe from event "zfs_recv_status"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIarg\fR \(em User data returned .RE .\" } blockquote .RE .\" } blockquote .RE .SS "interface ZfsSnapshot" .PP This object represents a ZFS snapshot and contains interfaces for managing ZFS snapshots\&. This object does not provide an interface for creating snapshots\&. Snapshot creation should be done by calling ZfsDataset\'s create_snapshot() interface\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsSnapshot Methods\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_clone\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_clone\fR(rc_instance_t\ *inst, . const\ char\ *clone_name, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsOpOption_t\ *options, . int\ options_count, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Clone a dataset from this snapshot\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIclone_name\fR \(em Name of the new dataset\&. .PP \fIprops\fR (\fInullable\fR) \(em Optional list of name\-value pairs of properties to set in the clone\&. If a "name" property is included, it must match the "name" argument\&. Equivalent to: zfs clone \-o .PP \fIprops_count\fR \(em Number of items in props array .PP \fIoptions\fR (\fInullable\fR) \(em A list of one or more values from the ZfsOpOptions enum\&. This is an optional argument\&. For this operation, the following option is allowed: .\" blockquote { .RS 4 .PP \fBcreate_parent\fR: create all non\-existing parent datasets of the clone\&. Equivalent to: zfs clone \-p .RE .\" } blockquote .PP \fIoptions_count\fR \(em Number of items in options array .PP \fIresult\fR \(em A ZfsDataset object representing the ZFS dataset created from cloning this snapshot\&. .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_get_clones\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_get_clones\fR(rc_instance_t\ *inst, . char\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_get_props\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to get\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIresult\fR \(em List of ZfsPropDetail objects, one for each property requested in the get_props() function call\&. The ZfsPropDetail object contains name, value, source and error fields\&. Their values are set based on the result of getting each property\&. If the property was successfully retrieved, then the name, value and source will have appropriate values and error will be None\&. If the property is valid, but does not have a value, then the name field is set to the name of the requested property, and all other fields will be None\&. If the property was not successfully retrieved, the name field is set to the name of the requested property, and the error field will be set with details on the error\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR \(em Returns any error not specific to getting property values\&. Errors related to getting a specific property value are included in the property detail structure that is returned\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_set_props\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Set property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to set\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIerror\fR \(em The ZfsRADError contains information about the first property that can not be set\&. No subsequent properties in the list will be set after the first failure\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot_inherit\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot_inherit\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Clears the specified properties, causing them to be inherited from an ancestor\&. If no ancestor has the property set, then the default value is used\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to clear\&. Only the name field of the ZfsProp structure is used\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIerror\fR .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsSnapshot Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot__rad_get_name\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a ZfsSnapshot object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot__rad_lookup\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a ZfsSnapshot instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsSnapshot__rad_list\fR('u .R rc_err_t \fBzfsmgr_ZfsSnapshot__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available ZfsSnapshot instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .SS "interface Zpool" .PP Zpools are assumed to already exist on the system\&. Thus, the Zpool interfaces limit zpool operations to listing vdev configuration and getting/setting zpool properties\&. Note that there is no get_filesystems() method\&. The root dataset\'s get_filesystems() method should be used to get all filesystems in a zpool\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZpool Methods\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_vdevs\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_vdevs\fR(rc_instance_t\ *inst, . zfsmgr_ZpoolVdev_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_set_props\fR('u .R rc_err_t \fBzfsmgr_Zpool_set_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsProp_t\ **props, . int\ props_count, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Set property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to set\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIerror\fR \(em The ZfsRADError contains information about the first property that can not be set\&. No subsequent properties in the list will be set after the first failure\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_props\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_props\fR(rc_instance_t\ *inst, . zfsmgr_ZfsPropRequest_t\ **props, . int\ props_count, . zfsmgr_ZfsPropDetail_t\ ***result, . int\ *result_cnt, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIprops\fR \(em List of properties to get\&. .PP \fIprops_count\fR \(em Number of items in props array .PP \fIresult\fR \(em List of ZfsPropDetail objects, one for each property requested in the get_props() function call\&. The ZfsPropDetail object contains name, value, source and error fields\&. Their values are set based on the result of getting each property\&. If the property was successfully retrieved, then the name, value and source will have appropriate values and error will be None\&. If the property is valid, but does not have a value, then the name field is set to the name of the requested property, and all other fields will be None\&. If the property was not successfully retrieved, the name field is set to the name of the requested property, and the error field will be set with details on the error\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR \(em Returns any error not specific to getting property values\&. Errors related to getting a specific property value are included in the property detail structure that is returned\&. .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_get_dataset_ref\fR('u .R rc_err_t \fBzfsmgr_Zpool_get_dataset_ref\fR(rc_instance_t\ *inst, . rc_instance_t\ **result, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool_upgrade\fR('u .R rc_err_t \fBzfsmgr_Zpool_upgrade\fR(rc_instance_t\ *inst, . int\ version, . zfsmgr_ZfsRADError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Upgrade the zpool version .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIversion\fR .PP \fIerror\fR .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZpool Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool__rad_get_name\fR('u .R rc_err_t \fBzfsmgr_Zpool__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a Zpool object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool__rad_lookup\fR('u .R rc_err_t \fBzfsmgr_Zpool__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a Zpool instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_Zpool__rad_list\fR('u .R rc_err_t \fBzfsmgr_Zpool__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available Zpool instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .SS "interface ZfsUtil" .PP This is a singleton instance providing ZFS functionality that is unrelated to Zpool, ZfsDataset or ZfsSnapshot\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsUtil Methods\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsUtil_valid_zfs_name\fR('u .R rc_err_t \fBzfsmgr_ZfsUtil_valid_zfs_name\fR(rc_instance_t\ *inst, . const\ char\ *name, . boolean_t\ *is_snapname, . boolean_t\ *result); .RS .RE .fi .\" blockquote { .RS 4 .PP Check whether the specified string can be used as a ZFS name .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIname\fR .PP \fIis_snapname\fR (\fInullable\fR) \(em Optional\&. Specify whether the name to be verified is a snapshot name or not\&. If not specified, the provided name is assumed to be a dataset name\&. .PP \fIresult\fR \(em True will be returned if the given name can be used as a ZFS name\&. False will be returned otherwise\&. .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBZfsUtil Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsUtil__rad_get_name\fR('u .R rc_err_t \fBzfsmgr_ZfsUtil__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a ZfsUtil object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsUtil__rad_lookup\fR('u .R rc_err_t \fBzfsmgr_ZfsUtil__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a ZfsUtil instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBzfsmgr_ZfsUtil__rad_list\fR('u .R rc_err_t \fBzfsmgr_ZfsUtil__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available ZfsUtil instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .SH "ENUMERATED TYPES" .PP \fBenum PropSrc\fR \(em The source for ZFS/Zpool property value\&. .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_PropSrc { ZPS_src_local = 0, ZPS_src_default = 1, ZPS_src_temporary = 2, ZPS_src_received = 3, ZPS_src_inherited = 4, ZPS_src_none = 5, } zfsmgr_PropSrc_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP ZPS_src_local (0) \(em property source: local .PP ZPS_src_default (1) \(em property source: default .PP ZPS_src_temporary (2) \(em property source: temporary .PP ZPS_src_received (3) \(em property source: received .PP ZPS_src_inherited (4) \(em property source: inherited .PP ZPS_src_none (5) \(em property source: none .RE .\" } blockquote .PP \fBenum ZfsOpOption\fR \(em Options for ZfsDataset/Zpool/ZfsSnapshot operations\&. .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsOpOption { ZZOO_create_parent = 0, ZZOO_recurse_filesystems = 1, ZZOO_recurse_dependents = 2, ZZOO_defer = 3, ZZOO_overlay_mount = 4, ZZOO_force_unmount = 5, ZZOO_force_rollback = 6, ZZOO_do_not_mount = 7, ZZOO_send_props = 8, ZZOO_self_contained = 9, ZZOO_revert_received = 10, ZZOO_allow_destroy_snapshots = 11, ZZOO_allow_destroy_clones = 12, } zfsmgr_ZfsOpOption_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP These options do not apply to all operations\&. See the actual API for a description of which options are allowed\&. .RE .\" } blockquote .\" blockquote { .RS 4 .PP ZZOO_create_parent (0) \(em create all non\-existing parent datasets .PP ZZOO_recurse_filesystems (1) \(em perform the specified operation recursively on all descendants of the given filesystems\&. Similar to \-r in zfs(8) .PP ZZOO_recurse_dependents (2) \(em perform the specified operation recursively on all dependents of the given filesystems\&. Similar to \-R in zfs(8) .PP ZZOO_defer (3) \(em defer deletion of the given snapshot .PP ZZOO_overlay_mount (4) \(em perform an overlay mount .PP ZZOO_force_unmount (5) \(em force unmount of any mounted filesystems .PP ZZOO_force_rollback (6) \(em force rollback of a filesystem .PP ZZOO_do_not_mount (7) \(em do not mount the filesystem that is associated with the received stream .PP ZZOO_send_props (8) \(em send the properties in the "zfs send" stream .PP ZZOO_self_contained (9) \(em create a self\-contained "zfs send" stream .PP ZZOO_revert_received (10) \(em revert to the received property value, if any .PP ZZOO_allow_destroy_snapshots (11) \(em allow destruction of snapshots in a rollback operation .PP ZZOO_allow_destroy_clones (12) \(em allow destruction of clones in a rollback operation .RE .\" } blockquote .PP \fBenum ZfsRecvNameOptions\fR \(em Options to control how the name of the ZfsSnapshot or ZfsDataset from the get_receive_socket function is generated\&. .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsRecvNameOptions { ZZRNO_use_provided_name = 0, ZZRNO_use_all_but_pool_name = 1, ZZRNO_use_tail_only = 2, } zfsmgr_ZfsRecvNameOptions_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP ZZRNO_use_provided_name (0) \(em Use the snapshot or dataset name exactly as provided\&. .PP ZZRNO_use_all_but_pool_name (1) \(em All but the pool name of the sent snapshot path is appended to the string provided in the name argument\&. Equivalent to the \-d option in the zfs receive subcommand\&. .PP ZZRNO_use_tail_only (2) \(em Only the tail of the sent snapshot path is appended to the string provided in the name argument\&. Equivalent to the \-e option in the zfs receive subcommand\&. .RE .\" } blockquote .PP \fBenum ZfsRADErrType\fR \(em Error types .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_ZfsRADErrType { ZZRADET_libzfs_err = 0, ZZRADET_zfsrad_err = 1, ZZRADET_operation_err = 2, } zfsmgr_ZfsRADErrType_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP ZZRADET_libzfs_err (0) \(em Errors from libzfs calls made by the ZFS RAD module .PP ZZRADET_zfsrad_err (1) \(em Errors from the ZFS RAD module .PP ZZRADET_operation_err (2) \(em Errors from the requested operation .RE .\" } blockquote .PP \fBenum SocketType\fR \(em Socket types that can be created for zfs send/receive\&. .\" blockquote { .RS 4 .PP .nf typedef enum zfsmgr_SocketType { ZST_AF_UNIX = 0, ZST_AF_INET = 1, } zfsmgr_SocketType_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP ZST_AF_UNIX (0) \(em Unix domain socket .PP ZST_AF_INET (1) \(em networking socket .RE .\" } blockquote .SH "STRUCTURED TYPES" .PP \fBstruct ZfsRADError\fR \(em Contains information about an error that occurred in the ZFS RAD module\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsRADError zfsmgr_ZfsRADError_t; .PP .nf struct zfsmgr_ZfsRADError { zfsmgr_ZfsRADErrType_t zzrade_err_type; int zzrade_libzfs_errcode; char *zzrade_libzfs_errstr; char *zzrade_info; char *zzrade_location; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsRADError_free\fR('u .R void \fBzfsmgr_ZfsRADError_free\fR(zfsmgr_ZfsRADError_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP The err_type field indicates the type of error\&. Certain fields in this object are only used for certain error types\&. See each field for details\&. .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzrade_err_type\fR \(em Contains information about the type of error .PP \fIzzrade_libzfs_errcode\fR \(em libzfs Error code (enumerated type)\&. This is only used for "libzfs_err" type\&. .PP \fIzzrade_libzfs_errstr\fR \(em Error string corresponding to libzfs error code\&. This is only used for "libzfs_err" type\&. .PP \fIzzrade_info\fR .\" blockquote { .RS 4 .PP For "zfsrad_err" error type, this field contains detailed information about the error\&. For "libzfs_err", and "operation_err" error type, this field might contain additional information about the condition under which the error occurred\&. .RE .\" } blockquote .PP \fIzzrade_location\fR \(em Returns the function where the error occurred\&. .RE .\" } blockquote .PP \fBstruct ZfsProp\fR \(em Structure for specifying ZFS property information\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsProp zfsmgr_ZfsProp_t; .PP .nf struct zfsmgr_ZfsProp { char *zzp_name; char *zzp_value; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsProp_free\fR('u .R void \fBzfsmgr_ZfsProp_free\fR(zfsmgr_ZfsProp_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzp_name\fR \(em Property name .PP \fIzzp_value\fR \(em Property value .RE .\" } blockquote .PP \fBstruct ZfsPropDetail\fR \(em Structure for returning ZFS property information by the get_props() functions\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsPropDetail zfsmgr_ZfsPropDetail_t; .PP .nf struct zfsmgr_ZfsPropDetail { char *zzpd_name; char *zzpd_value; zfsmgr_PropSrc_t zzpd_source; zfsmgr_ZfsRADError_t *zzpd_error; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsPropDetail_free\fR('u .R void \fBzfsmgr_ZfsPropDetail_free\fR(zfsmgr_ZfsPropDetail_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzpd_name\fR \(em Property name .PP \fIzzpd_value\fR \(em Property value \- If the property is valid, but there is no value defined for the property, the value will be None\&. .PP \fIzzpd_source\fR \(em The source of the property (similar to what is returned by the get subcommand for zfs(8))\&. .PP \fIzzpd_error\fR .\" blockquote { .RS 4 .PP If this is not set, it means the value retrieved by the get_prop() function is successful\&. If there is any problem with retrieving the property, this will contain the error information\&. .RE .\" } blockquote .RE .\" } blockquote .PP \fBstruct ZfsPropRequest\fR \(em Structure used for requesting ZFS property information for the get_props() functions\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsPropRequest zfsmgr_ZfsPropRequest_t; .PP .nf struct zfsmgr_ZfsPropRequest { char *zzpr_name; boolean_t *zzpr_persistent; boolean_t *zzpr_received; boolean_t *zzpr_integer_val; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsPropRequest_free\fR('u .R void \fBzfsmgr_ZfsPropRequest_free\fR(zfsmgr_ZfsPropRequest_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzpr_name\fR \(em Property name .PP \fIzzpr_persistent\fR .\" blockquote { .RS 4 .PP Specify whether the get_props() request should return the persistent value of the property or not\&. This is an optional argument\&. If not specified, this defaults to False, and the effective value of the property will be returned\&. If this is set to True, the "received" field for this property request may not have the value of True\&. .RE .\" } blockquote .PP \fIzzpr_received\fR .\" blockquote { .RS 4 .PP Specify whether the get_props() request should return the received value of the property or not\&. This is an optional argument\&. If not specified, this defaults to False, and the effective value of the property will be returned\&. If this is set to True, the "persistent" field for this property request may not have the value of True\&. .RE .\" } blockquote .PP \fIzzpr_integer_val\fR .\" blockquote { .RS 4 .PP Specify whether the get property request should return the requested property\'s value in integer format\&. This is an optional argument\&. If not specified, this defaults to False, and the returned value will be in string format\&. .RE .\" } blockquote .RE .\" } blockquote .PP \fBstruct SendStreamInfo\fR \(em Contains information about the stream that will be generated\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_SendStreamInfo zfsmgr_SendStreamInfo_t; .PP .nf struct zfsmgr_SendStreamInfo { char *zssi_size; char **zssi_snapshot_info; int zssi_snapshot_info_count; }; .fi .nf .HP \w'void\ \fBzfsmgr_SendStreamInfo_free\fR('u .R void \fBzfsmgr_SendStreamInfo_free\fR(zfsmgr_SendStreamInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzssi_size\fR .\" blockquote { .RS 4 .PP Estimated size of the stream to be generated\&. The data type is a string instead of a integer because the size might be bigger than a 32 bit integer\&. .RE .\" } blockquote .PP \fIzssi_snapshot_info\fR \(em List of information about the send stream\&. .PP \fIzssi_snapshot_info_count\fR .RE .\" } blockquote .PP \fBstruct SendSocketInfo\fR \(em Contains information about the socket to be used for the ZFS stream\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_SendSocketInfo zfsmgr_SendSocketInfo_t; .PP .nf struct zfsmgr_SendSocketInfo { char *zssi_token; char *zssi_socket; zfsmgr_SendStreamInfo_t *zssi_stream_info; }; .fi .nf .HP \w'void\ \fBzfsmgr_SendSocketInfo_free\fR('u .R void \fBzfsmgr_SendSocketInfo_free\fR(zfsmgr_SendSocketInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzssi_token\fR \(em Token used to confirm that the connection is valid\&. .PP \fIzssi_socket\fR .\" blockquote { .RS 4 .PP If the requested socket type is a UNIX domain socket, then this will be the path to the socket file\&. If the requested socket type is an INET socket, then the value will be the connection port number\&. .RE .\" } blockquote .PP \fIzssi_stream_info\fR \(em Information about the send stream\&. .RE .\" } blockquote .PP \fBstruct RecvSocketInfo\fR \(em Contains information about the socket to be used for the ZFS stream\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_RecvSocketInfo zfsmgr_RecvSocketInfo_t; .PP .nf struct zfsmgr_RecvSocketInfo { char *zrsi_token; char *zrsi_socket; }; .fi .nf .HP \w'void\ \fBzfsmgr_RecvSocketInfo_free\fR('u .R void \fBzfsmgr_RecvSocketInfo_free\fR(zfsmgr_RecvSocketInfo_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzrsi_token\fR \(em Token used to confirm that the connection is valid\&. .PP \fIzrsi_socket\fR .\" blockquote { .RS 4 .PP If the requested socket type is a UNIX domain socket, then this will be the path to the socket file\&. If the requested socket type is an INET socket, then the value will be the connection port number\&. .RE .\" } blockquote .RE .\" } blockquote .PP \fBstruct ZpoolVdev\fR \(em Zpool Vdev configuration information\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZpoolVdev zfsmgr_ZpoolVdev_t; .PP .nf struct zfsmgr_ZpoolVdev { char *zzv_type; char **zzv_devices; int zzv_devices_count; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZpoolVdev_free\fR('u .R void \fBzfsmgr_ZpoolVdev_free\fR(zfsmgr_ZpoolVdev_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzv_type\fR \(em Type of the Vdev\&. Only types "mirror", "disk" and "file" are supported at this time\&. .PP \fIzzv_devices\fR \(em A list of devices making up this Vdev .PP \fIzzv_devices_count\fR .RE .\" } blockquote .PP \fBstruct ZfsSendRecvStatus\fR \(em Return status of the send/receive operation\&. .\" blockquote { .RS 4 .PP typedef struct zfsmgr_ZfsSendRecvStatus zfsmgr_ZfsSendRecvStatus_t; .PP .nf struct zfsmgr_ZfsSendRecvStatus { char *zzsrs_operation; int zzsrs_return_code; int zzsrs_libzfs_errcode; char *zzsrs_libzfs_errstr; char *zzsrs_info; }; .fi .nf .HP \w'void\ \fBzfsmgr_ZfsSendRecvStatus_free\fR('u .R void \fBzfsmgr_ZfsSendRecvStatus_free\fR(zfsmgr_ZfsSendRecvStatus_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIzzsrs_operation\fR \(em Indicates whether this is a "send" or "receive" operation\&. .PP \fIzzsrs_return_code\fR \(em The return code from the zfs_send() or zfs_receive() call\&. .PP \fIzzsrs_libzfs_errcode\fR \(em libzfs\&.so error code as defined in /usr/include/libzfs\&.h\&. This is only used if there is an error\&. .PP \fIzzsrs_libzfs_errstr\fR \(em Error string corresponding to libzfs error code\&. This is only used if there is an error\&. .PP \fIzzsrs_info\fR \(em Optional field for additional information for the client\&. .RE .\" } blockquote .SH "VERSION" .PP 1\&.1 .SH "ATTRIBUTES" .PP See attributes(7) for descriptions of the following attributes: .TS allbox tab(:); cB cB. T{ ATTRIBUTE TYPE T}:T{ ATTRIBUTE VALUE T} .T& l l l l. T{ Availability T}:T{ system/management/rad/module/rad\-zfsmgr T} T{ Interface Stability T}:T{ Private T} .TE .sp 1 .SH "SEE ALSO" .PP \fBrad\fR(8) .SH "NOTES" .IP " 1." 4 Accessing Python documentation for this module: .sp .RS 4 .nf $ pydoc rad.bindings.com.oracle.solaris.rad.zfsmgr_1 .fi .RE