Generated by Cython 0.24
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: libzfs.c
0001: # cython: c_string_type=unicode, c_string_encoding=ascii
0002: #-
0003: # Copyright (c) 2014 iXsystems, Inc.
0004: # All rights reserved.
0005: #
0006: # Redistribution and use in source and binary forms, with or without
0007: # modification, are permitted provided that the following conditions
0008: # are met:
0009: # 1. Redistributions of source code must retain the above copyright
0010: # notice, this list of conditions and the following disclaimer.
0011: # 2. Redistributions in binary form must reproduce the above copyright
0012: # notice, this list of conditions and the following disclaimer in the
0013: # documentation and/or other materials provided with the distribution.
0014: #
0015: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
0016: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0017: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0018: # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
0019: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
0020: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
0021: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
0022: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
0023: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
0024: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
0025: # SUCH DAMAGE.
0026: #
0027:
+0028: import os
__pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) __PYX_ERR(1, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0029: import stat
__pyx_t_1 = __Pyx_Import(__pyx_n_s_stat, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_stat, __pyx_t_1) < 0) __PYX_ERR(1, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0030: import enum
__pyx_t_1 = __Pyx_Import(__pyx_n_s_enum, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_enum, __pyx_t_1) < 0) __PYX_ERR(1, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0031: import errno
__pyx_t_1 = __Pyx_Import(__pyx_n_s_errno, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_errno, __pyx_t_1) < 0) __PYX_ERR(1, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0032: import threading
__pyx_t_1 = __Pyx_Import(__pyx_n_s_threading, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_1) < 0) __PYX_ERR(1, 32, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0033: import cython
0034: cimport libzfs
0035: cimport zfs
0036: cimport nvpair
+0037: from datetime import datetime
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_datetime); __Pyx_GIVEREF(__pyx_n_s_datetime); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_datetime); __pyx_t_2 = __Pyx_Import(__pyx_n_s_datetime, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime, __pyx_t_1) < 0) __PYX_ERR(1, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0038: from libc.errno cimport errno
0039: from libc.stdint cimport uintptr_t
0040: from libc.string cimport memset, strncpy
0041: from libc.stdlib cimport free
0042:
0043:
0044: include "nvpair.pxi"
0045: include "converter.pxi"
0046:
0047:
+0048: class DatasetType(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_DatasetType, __pyx_n_s_DatasetType, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_DatasetType, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DatasetType, __pyx_t_5) < 0) __PYX_ERR(1, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0049: FILESYSTEM = zfs.ZFS_TYPE_FILESYSTEM
__pyx_t_5 = __Pyx_PyInt_From_zfs_type_t(ZFS_TYPE_FILESYSTEM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FILESYSTEM, __pyx_t_5) < 0) __PYX_ERR(1, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0050: VOLUME = zfs.ZFS_TYPE_VOLUME
__pyx_t_5 = __Pyx_PyInt_From_zfs_type_t(ZFS_TYPE_VOLUME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VOLUME, __pyx_t_5) < 0) __PYX_ERR(1, 50, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0051: SNAPSHOT = zfs.ZFS_TYPE_SNAPSHOT
__pyx_t_5 = __Pyx_PyInt_From_zfs_type_t(ZFS_TYPE_SNAPSHOT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SNAPSHOT, __pyx_t_5) < 0) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0052: BOOKMARK = zfs.ZFS_TYPE_BOOKMARK
__pyx_t_5 = __Pyx_PyInt_From_zfs_type_t(ZFS_TYPE_BOOKMARK); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BOOKMARK, __pyx_t_5) < 0) __PYX_ERR(1, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0053:
0054:
+0055: class Error(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_Error, __pyx_n_s_Error, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_Error, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_5) < 0) __PYX_ERR(1, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0056: SUCCESS = libzfs.EZFS_SUCCESS
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_SUCCESS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SUCCESS, __pyx_t_5) < 0) __PYX_ERR(1, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0057: NOMEM = libzfs.EZFS_NOMEM
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOMEM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOMEM, __pyx_t_5) < 0) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0058: BADPROP = libzfs.EZFS_BADPROP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADPROP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADPROP, __pyx_t_5) < 0) __PYX_ERR(1, 58, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0059: PROPREADONLY = libzfs.EZFS_PROPREADONLY
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PROPREADONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROPREADONLY, __pyx_t_5) < 0) __PYX_ERR(1, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0060: PROPTYPE = libzfs.EZFS_PROPTYPE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PROPTYPE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROPTYPE, __pyx_t_5) < 0) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0061: PROPNONINHERIT = libzfs.EZFS_PROPNONINHERIT
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PROPNONINHERIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROPNONINHERIT, __pyx_t_5) < 0) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0062: PROPSPACE = libzfs.EZFS_PROPSPACE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PROPSPACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROPSPACE, __pyx_t_5) < 0) __PYX_ERR(1, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0063: BADTYPE = libzfs.EZFS_BADTYPE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADTYPE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADTYPE, __pyx_t_5) < 0) __PYX_ERR(1, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0064: BUSY = libzfs.EZFS_BUSY
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BUSY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BUSY, __pyx_t_5) < 0) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0065: EXISTS = libzfs.EZFS_EXISTS
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_EXISTS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_EXISTS, __pyx_t_5) < 0) __PYX_ERR(1, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0066: NOENT = libzfs.EZFS_NOENT
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOENT, __pyx_t_5) < 0) __PYX_ERR(1, 66, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0067: BADSTREAM = libzfs.EZFS_BADSTREAM
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADSTREAM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADSTREAM, __pyx_t_5) < 0) __PYX_ERR(1, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0068: DSREADONLY = libzfs.EZFS_DSREADONLY
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_DSREADONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DSREADONLY, __pyx_t_5) < 0) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0069: VOLTOOBIG = libzfs.EZFS_VOLTOOBIG
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_VOLTOOBIG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VOLTOOBIG, __pyx_t_5) < 0) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0070: INVALIDNAME = libzfs.EZFS_INVALIDNAME
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_INVALIDNAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_INVALIDNAME, __pyx_t_5) < 0) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0071: BADRESTORE = libzfs.EZFS_BADRESTORE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADRESTORE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADRESTORE, __pyx_t_5) < 0) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0072: BADBACKUP = libzfs.EZFS_BADBACKUP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADBACKUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADBACKUP, __pyx_t_5) < 0) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0073: BADTARGET = libzfs.EZFS_BADTARGET
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADTARGET); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADTARGET, __pyx_t_5) < 0) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0074: NODEVICE = libzfs.EZFS_NODEVICE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NODEVICE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NODEVICE, __pyx_t_5) < 0) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0075: BADDEV = libzfs.EZFS_BADDEV
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADDEV); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADDEV, __pyx_t_5) < 0) __PYX_ERR(1, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0076: NOREPLICAS = libzfs.EZFS_NOREPLICAS
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOREPLICAS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOREPLICAS, __pyx_t_5) < 0) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0077: RESILVERING = libzfs.EZFS_RESILVERING
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_RESILVERING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RESILVERING, __pyx_t_5) < 0) __PYX_ERR(1, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0078: BADVERSION = libzfs.EZFS_BADVERSION
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADVERSION); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADVERSION, __pyx_t_5) < 0) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0079: POOLUNAVAIL = libzfs.EZFS_POOLUNAVAIL
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POOLUNAVAIL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_POOLUNAVAIL, __pyx_t_5) < 0) __PYX_ERR(1, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0080: DEVOVERFLOW = libzfs.EZFS_DEVOVERFLOW
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_DEVOVERFLOW); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DEVOVERFLOW, __pyx_t_5) < 0) __PYX_ERR(1, 80, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0081: BADPATH = libzfs.EZFS_BADPATH
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADPATH); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADPATH, __pyx_t_5) < 0) __PYX_ERR(1, 81, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0082: CROSSTARGET = libzfs.EZFS_CROSSTARGET
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_CROSSTARGET); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CROSSTARGET, __pyx_t_5) < 0) __PYX_ERR(1, 82, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0083: ZONED = libzfs.EZFS_ZONED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_ZONED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ZONED, __pyx_t_5) < 0) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0084: MOUNTFAILED = libzfs.EZFS_MOUNTFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_MOUNTFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_MOUNTFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0085: UMOUNTFAILED = libzfs.EZFS_UMOUNTFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_UMOUNTFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UMOUNTFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0086: UNSHARENFSFAILED = libzfs.EZFS_UNSHARENFSFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_UNSHARENFSFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNSHARENFSFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0087: SHARENFSFAILED = libzfs.EZFS_SHARENFSFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_SHARENFSFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SHARENFSFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0088: PERM = libzfs.EZFS_PERM
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PERM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PERM, __pyx_t_5) < 0) __PYX_ERR(1, 88, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0089: NOSPC = libzfs.EZFS_NOSPC
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOSPC); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOSPC, __pyx_t_5) < 0) __PYX_ERR(1, 89, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0090: FAULT = libzfs.EZFS_FAULT
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_FAULT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FAULT, __pyx_t_5) < 0) __PYX_ERR(1, 90, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0091: IO = libzfs.EZFS_IO
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_IO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_IO, __pyx_t_5) < 0) __PYX_ERR(1, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0092: INTR = libzfs.EZFS_INTR
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_INTR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_INTR, __pyx_t_5) < 0) __PYX_ERR(1, 92, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0093: ISSPARE = libzfs.EZFS_ISSPARE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_ISSPARE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ISSPARE, __pyx_t_5) < 0) __PYX_ERR(1, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0094: INVALCONFIG = libzfs.EZFS_INVALCONFIG
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_INVALCONFIG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_INVALCONFIG, __pyx_t_5) < 0) __PYX_ERR(1, 94, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0095: RECURSIVE = libzfs.EZFS_RECURSIVE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_RECURSIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RECURSIVE, __pyx_t_5) < 0) __PYX_ERR(1, 95, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0096: NOHISTORY = libzfs.EZFS_NOHISTORY
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOHISTORY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOHISTORY, __pyx_t_5) < 0) __PYX_ERR(1, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0097: POOLPROPS = libzfs.EZFS_POOLPROPS
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POOLPROPS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_POOLPROPS, __pyx_t_5) < 0) __PYX_ERR(1, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0098: POOL_NOTSUP = libzfs.EZFS_POOL_NOTSUP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POOL_NOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_POOL_NOTSUP, __pyx_t_5) < 0) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0099: INVALARG = libzfs.EZFS_POOL_INVALARG
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POOL_INVALARG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_INVALARG, __pyx_t_5) < 0) __PYX_ERR(1, 99, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0100: NAMETOOLONG = libzfs.EZFS_NAMETOOLONG
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NAMETOOLONG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NAMETOOLONG, __pyx_t_5) < 0) __PYX_ERR(1, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0101: OPENFAILED = libzfs.EZFS_OPENFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_OPENFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_OPENFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0102: NOCAP = libzfs.EZFS_NOCAP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOCAP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOCAP, __pyx_t_5) < 0) __PYX_ERR(1, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0103: LABELFAILED = libzfs.EZFS_LABELFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_LABELFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_LABELFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 103, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0104: BADWHO = libzfs.EZFS_BADWHO
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADWHO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADWHO, __pyx_t_5) < 0) __PYX_ERR(1, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0105: BADPERM = libzfs.EZFS_BADPERM
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADPERM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADPERM, __pyx_t_5) < 0) __PYX_ERR(1, 105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0106: BADPERMSET = libzfs.EZFS_BADPERMSET
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADPERMSET); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADPERMSET, __pyx_t_5) < 0) __PYX_ERR(1, 106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0107: NODELEGATION = libzfs.EZFS_NODELEGATION
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NODELEGATION); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NODELEGATION, __pyx_t_5) < 0) __PYX_ERR(1, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0108: UNSHARESMBFAILED = libzfs.EZFS_UNSHARESMBFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_UNSHARESMBFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNSHARESMBFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0109: SHARESMBFAILED = libzfs.EZFS_SHARESMBFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_SHARESMBFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SHARESMBFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0110: BADCACHE = libzfs.EZFS_BADCACHE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_BADCACHE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BADCACHE, __pyx_t_5) < 0) __PYX_ERR(1, 110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0111: ISL2CACHE = libzfs.EZFS_ISL2CACHE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_ISL2CACHE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ISL2CACHE, __pyx_t_5) < 0) __PYX_ERR(1, 111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0112: VDEVNOTSUP = libzfs.EZFS_VDEVNOTSUP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_VDEVNOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VDEVNOTSUP, __pyx_t_5) < 0) __PYX_ERR(1, 112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0113: NOTSUP = libzfs.EZFS_NOTSUP
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NOTSUP, __pyx_t_5) < 0) __PYX_ERR(1, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0114: SPARE = libzfs.EZFS_ACTIVE_SPARE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_ACTIVE_SPARE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SPARE, __pyx_t_5) < 0) __PYX_ERR(1, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0115: LOGS = libzfs.EZFS_UNPLAYED_LOGS
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_UNPLAYED_LOGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_LOGS, __pyx_t_5) < 0) __PYX_ERR(1, 115, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0116: RELE = libzfs.EZFS_REFTAG_RELE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_REFTAG_RELE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RELE, __pyx_t_5) < 0) __PYX_ERR(1, 116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0117: HOLD = libzfs.EZFS_REFTAG_HOLD
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_REFTAG_HOLD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_HOLD, __pyx_t_5) < 0) __PYX_ERR(1, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0118: TAGTOOLONG = libzfs.EZFS_TAGTOOLONG
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_TAGTOOLONG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_TAGTOOLONG, __pyx_t_5) < 0) __PYX_ERR(1, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0119: PIPEFAILED = libzfs.EZFS_PIPEFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_PIPEFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PIPEFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0120: THREADCREATEFAILED = libzfs.EZFS_THREADCREATEFAILED
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_THREADCREATEFAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_THREADCREATEFAILED, __pyx_t_5) < 0) __PYX_ERR(1, 120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0121: ONLINE = libzfs.EZFS_POSTSPLIT_ONLINE
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POSTSPLIT_ONLINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ONLINE, __pyx_t_5) < 0) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0122: SCRUBBING = libzfs.EZFS_SCRUBBING
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_SCRUBBING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SCRUBBING, __pyx_t_5) < 0) __PYX_ERR(1, 122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0123: SCRUB = libzfs.EZFS_NO_SCRUB
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_NO_SCRUB); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SCRUB, __pyx_t_5) < 0) __PYX_ERR(1, 123, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0124: DIFF = libzfs.EZFS_DIFF
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_DIFF); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DIFF, __pyx_t_5) < 0) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0125: DIFFDATA = libzfs.EZFS_DIFFDATA
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_DIFFDATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DIFFDATA, __pyx_t_5) < 0) __PYX_ERR(1, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0126: POOLREADONLY = libzfs.EZFS_POOLREADONLY
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_POOLREADONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_POOLREADONLY, __pyx_t_5) < 0) __PYX_ERR(1, 126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0127: UNKNOWN = libzfs.EZFS_UNKNOWN
__pyx_t_5 = __Pyx_PyInt_From_int(EZFS_UNKNOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNKNOWN, __pyx_t_5) < 0) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0128:
0129:
+0130: class PropertySource(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_PropertySource, __pyx_n_s_PropertySource, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_PropertySource, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PropertySource, __pyx_t_5) < 0) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0131: NONE = zfs.ZPROP_SRC_NONE
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(1, 131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0132: DEFAULT = zfs.ZPROP_SRC_DEFAULT
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_DEFAULT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DEFAULT, __pyx_t_5) < 0) __PYX_ERR(1, 132, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0133: TEMPORARY = zfs.ZPROP_SRC_TEMPORARY
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_TEMPORARY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_TEMPORARY, __pyx_t_5) < 0) __PYX_ERR(1, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0134: LOCAL = zfs.ZPROP_SRC_LOCAL
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_LOCAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_LOCAL, __pyx_t_5) < 0) __PYX_ERR(1, 134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0135: INHERITED = zfs.ZPROP_SRC_INHERITED
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_INHERITED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_INHERITED, __pyx_t_5) < 0) __PYX_ERR(1, 135, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0136: RECEIVED = zfs.ZPROP_SRC_RECEIVED
__pyx_t_5 = __Pyx_PyInt_From_zprop_source_t(ZPROP_SRC_RECEIVED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RECEIVED, __pyx_t_5) < 0) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0137:
0138:
+0139: class VDevState(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_VDevState, __pyx_n_s_VDevState, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_VDevState, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_VDevState, __pyx_t_5) < 0) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0140: UNKNOWN = zfs.VDEV_STATE_UNKNOWN
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_UNKNOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNKNOWN, __pyx_t_5) < 0) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0141: CLOSED = zfs.VDEV_STATE_CLOSED
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_CLOSED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CLOSED, __pyx_t_5) < 0) __PYX_ERR(1, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0142: OFFLINE = zfs.VDEV_STATE_OFFLINE
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_OFFLINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_OFFLINE, __pyx_t_5) < 0) __PYX_ERR(1, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0143: REMOVED = zfs.VDEV_STATE_REMOVED
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_REMOVED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_REMOVED, __pyx_t_5) < 0) __PYX_ERR(1, 143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0144: CANT_OPEN = zfs.VDEV_STATE_CANT_OPEN
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_CANT_OPEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CANT_OPEN, __pyx_t_5) < 0) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0145: FAULTED = zfs.VDEV_STATE_FAULTED
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_FAULTED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FAULTED, __pyx_t_5) < 0) __PYX_ERR(1, 145, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0146: DEGRADED = zfs.VDEV_STATE_DEGRADED
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_DEGRADED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DEGRADED, __pyx_t_5) < 0) __PYX_ERR(1, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0147: HEALTHY = zfs.VDEV_STATE_HEALTHY
__pyx_t_5 = __Pyx_PyInt_From_vdev_state_t(VDEV_STATE_HEALTHY); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_HEALTHY, __pyx_t_5) < 0) __PYX_ERR(1, 147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0148:
0149:
+0150: class VDevAuxState(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_VDevAuxState, __pyx_n_s_VDevAuxState, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_VDevAuxState, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_VDevAuxState, __pyx_t_5) < 0) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0151: NONE = zfs.VDEV_AUX_NONE
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0152: OPEN_FAILED = zfs.VDEV_AUX_OPEN_FAILED
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_OPEN_FAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_OPEN_FAILED, __pyx_t_5) < 0) __PYX_ERR(1, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0153: CORRUPT_DATA = zfs.VDEV_AUX_CORRUPT_DATA
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_CORRUPT_DATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_DATA, __pyx_t_5) < 0) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0154: NO_REPLICAS = zfs.VDEV_AUX_NO_REPLICAS
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_NO_REPLICAS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NO_REPLICAS, __pyx_t_5) < 0) __PYX_ERR(1, 154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0155: BAD_GUID_SUM = zfs.VDEV_AUX_BAD_GUID_SUM
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_BAD_GUID_SUM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BAD_GUID_SUM, __pyx_t_5) < 0) __PYX_ERR(1, 155, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0156: TOO_SMALL = zfs.VDEV_AUX_TOO_SMALL
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_TOO_SMALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_TOO_SMALL, __pyx_t_5) < 0) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0157: BAD_LABEL = zfs.VDEV_AUX_BAD_LABEL
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_BAD_LABEL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BAD_LABEL, __pyx_t_5) < 0) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0158: VERSION_NEWER = zfs.VDEV_AUX_VERSION_NEWER
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_VERSION_NEWER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VERSION_NEWER, __pyx_t_5) < 0) __PYX_ERR(1, 158, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0159: VERSION_OLDER = zfs.VDEV_AUX_VERSION_OLDER
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_VERSION_OLDER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VERSION_OLDER, __pyx_t_5) < 0) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0160: UNSUP_FEAT = zfs.VDEV_AUX_UNSUP_FEAT
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_UNSUP_FEAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNSUP_FEAT, __pyx_t_5) < 0) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0161: SPARED = zfs.VDEV_AUX_SPARED
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_SPARED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SPARED, __pyx_t_5) < 0) __PYX_ERR(1, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0162: ERR_EXCEEDED = zfs.VDEV_AUX_ERR_EXCEEDED
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_ERR_EXCEEDED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ERR_EXCEEDED, __pyx_t_5) < 0) __PYX_ERR(1, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0163: IO_FAILURE = zfs.VDEV_AUX_IO_FAILURE
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_IO_FAILURE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_IO_FAILURE, __pyx_t_5) < 0) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0164: BAD_LOG = zfs.VDEV_AUX_BAD_LOG
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_BAD_LOG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BAD_LOG, __pyx_t_5) < 0) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0165: EXTERNAL = zfs.VDEV_AUX_EXTERNAL
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_EXTERNAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_EXTERNAL, __pyx_t_5) < 0) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0166: SPLIT_POOL = zfs.VDEV_AUX_SPLIT_POOL
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_SPLIT_POOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SPLIT_POOL, __pyx_t_5) < 0) __PYX_ERR(1, 166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0167: ASHIFT_TOO_BIG = zfs.VDEV_AUX_ASHIFT_TOO_BIG
__pyx_t_5 = __Pyx_PyInt_From_vdev_aux_t(VDEV_AUX_ASHIFT_TOO_BIG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ASHIFT_TOO_BIG, __pyx_t_5) < 0) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0168:
0169:
+0170: class PoolState(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_PoolState, __pyx_n_s_PoolState, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_PoolState, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PoolState, __pyx_t_5) < 0) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0171: ACTIVE = zfs.POOL_STATE_ACTIVE
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_ACTIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ACTIVE, __pyx_t_5) < 0) __PYX_ERR(1, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0172: EXPORTED = zfs.POOL_STATE_EXPORTED
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_EXPORTED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_EXPORTED, __pyx_t_5) < 0) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0173: DESTROYED = zfs.POOL_STATE_DESTROYED
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_DESTROYED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DESTROYED, __pyx_t_5) < 0) __PYX_ERR(1, 173, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0174: SPARE = zfs.POOL_STATE_SPARE
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_SPARE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SPARE, __pyx_t_5) < 0) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0175: L2CACHE = zfs.POOL_STATE_L2CACHE
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_L2CACHE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_L2CACHE, __pyx_t_5) < 0) __PYX_ERR(1, 175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0176: UNINITIALIZED = zfs.POOL_STATE_UNINITIALIZED
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_UNINITIALIZED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNINITIALIZED, __pyx_t_5) < 0) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0177: UNAVAIL = zfs.POOL_STATE_UNAVAIL
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_UNAVAIL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNAVAIL, __pyx_t_5) < 0) __PYX_ERR(1, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0178: POTENTIALLY_ACTIVE = zfs.POOL_STATE_POTENTIALLY_ACTIVE
__pyx_t_5 = __Pyx_PyInt_From_pool_state_t(POOL_STATE_POTENTIALLY_ACTIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_POTENTIALLY_ACTIVE, __pyx_t_5) < 0) __PYX_ERR(1, 178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0179:
0180:
+0181: class ScanFunction(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_ScanFunction, __pyx_n_s_ScanFunction, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_ScanFunction, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScanFunction, __pyx_t_5) < 0) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0182: NONE = zfs.POOL_SCAN_NONE
__pyx_t_5 = __Pyx_PyInt_From_pool_scan_func_t(POOL_SCAN_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0183: SCRUB = zfs.POOL_SCAN_SCRUB
__pyx_t_5 = __Pyx_PyInt_From_pool_scan_func_t(POOL_SCAN_SCRUB); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SCRUB, __pyx_t_5) < 0) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0184: RESILVER = zfs.POOL_SCAN_RESILVER
__pyx_t_5 = __Pyx_PyInt_From_pool_scan_func_t(POOL_SCAN_RESILVER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RESILVER, __pyx_t_5) < 0) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0185:
0186:
+0187: class PoolStatus(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_PoolStatus, __pyx_n_s_PoolStatus, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_PoolStatus, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_PoolStatus, __pyx_t_5) < 0) __PYX_ERR(1, 187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0188: CORRUPT_CACHE = libzfs.ZPOOL_STATUS_CORRUPT_CACHE
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_CORRUPT_CACHE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_CACHE, __pyx_t_5) < 0) __PYX_ERR(1, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0189: MISSING_DEV_R = libzfs.ZPOOL_STATUS_MISSING_DEV_R
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_MISSING_DEV_R); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_MISSING_DEV_R, __pyx_t_5) < 0) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0190: MISSING_DEV_NR = libzfs.ZPOOL_STATUS_MISSING_DEV_NR
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_MISSING_DEV_NR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_MISSING_DEV_NR, __pyx_t_5) < 0) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0191: CORRUPT_LABEL_R = libzfs.ZPOOL_STATUS_CORRUPT_LABEL_R
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_CORRUPT_LABEL_R); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_LABEL_R, __pyx_t_5) < 0) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0192: CORRUPT_LABEL_NR = libzfs.ZPOOL_STATUS_CORRUPT_LABEL_NR
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_CORRUPT_LABEL_NR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_LABEL_NR, __pyx_t_5) < 0) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0193: BAD_GUID_SUM = libzfs.ZPOOL_STATUS_BAD_GUID_SUM
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_BAD_GUID_SUM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BAD_GUID_SUM, __pyx_t_5) < 0) __PYX_ERR(1, 193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0194: CORRUPT_POOL = libzfs.ZPOOL_STATUS_CORRUPT_POOL
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_CORRUPT_POOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_POOL, __pyx_t_5) < 0) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0195: CORRUPT_DATA = libzfs.ZPOOL_STATUS_CORRUPT_DATA
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_CORRUPT_DATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CORRUPT_DATA, __pyx_t_5) < 0) __PYX_ERR(1, 195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0196: FAILING_DEV = libzfs.ZPOOL_STATUS_FAILING_DEV
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_FAILING_DEV); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FAILING_DEV, __pyx_t_5) < 0) __PYX_ERR(1, 196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0197: VERSION_NEWER = libzfs.ZPOOL_STATUS_VERSION_NEWER
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_VERSION_NEWER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VERSION_NEWER, __pyx_t_5) < 0) __PYX_ERR(1, 197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0198: HOSTID_MISMATCH = libzfs.ZPOOL_STATUS_HOSTID_MISMATCH
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_HOSTID_MISMATCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_HOSTID_MISMATCH, __pyx_t_5) < 0) __PYX_ERR(1, 198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0199: IO_FAILURE_WAIT = libzfs.ZPOOL_STATUS_IO_FAILURE_WAIT
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_IO_FAILURE_WAIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_IO_FAILURE_WAIT, __pyx_t_5) < 0) __PYX_ERR(1, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0200: IO_FAILURE_CONTINUE = libzfs.ZPOOL_STATUS_IO_FAILURE_CONTINUE
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_IO_FAILURE_CONTINUE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_IO_FAILURE_CONTINUE, __pyx_t_5) < 0) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0201: BAD_LOG = libzfs.ZPOOL_STATUS_BAD_LOG
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_BAD_LOG); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BAD_LOG, __pyx_t_5) < 0) __PYX_ERR(1, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0202: UNSUP_FEAT_READ = libzfs.ZPOOL_STATUS_UNSUP_FEAT_READ
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_UNSUP_FEAT_READ); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNSUP_FEAT_READ, __pyx_t_5) < 0) __PYX_ERR(1, 202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0203: UNSUP_FEAT_WRITE = libzfs.ZPOOL_STATUS_UNSUP_FEAT_WRITE
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_UNSUP_FEAT_WRITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_UNSUP_FEAT_WRITE, __pyx_t_5) < 0) __PYX_ERR(1, 203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0204: FAULTED_DEV_R = libzfs.ZPOOL_STATUS_FAULTED_DEV_R
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_FAULTED_DEV_R); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FAULTED_DEV_R, __pyx_t_5) < 0) __PYX_ERR(1, 204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0205: FAULTED_DEV_NR = libzfs.ZPOOL_STATUS_FAULTED_DEV_NR
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_FAULTED_DEV_NR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FAULTED_DEV_NR, __pyx_t_5) < 0) __PYX_ERR(1, 205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0206: VERSION_OLDER = libzfs.ZPOOL_STATUS_VERSION_OLDER
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_VERSION_OLDER); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VERSION_OLDER, __pyx_t_5) < 0) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0207: FEAT_DISABLED = libzfs.ZPOOL_STATUS_FEAT_DISABLED
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_FEAT_DISABLED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FEAT_DISABLED, __pyx_t_5) < 0) __PYX_ERR(1, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0208: RESILVERING = libzfs.ZPOOL_STATUS_RESILVERING
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_RESILVERING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RESILVERING, __pyx_t_5) < 0) __PYX_ERR(1, 208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0209: OFFLINE_DEV = libzfs.ZPOOL_STATUS_OFFLINE_DEV
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_OFFLINE_DEV); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_OFFLINE_DEV, __pyx_t_5) < 0) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0210: REMOVED_DEV = libzfs.ZPOOL_STATUS_REMOVED_DEV
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_REMOVED_DEV); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_REMOVED_DEV, __pyx_t_5) < 0) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0211: NON_NATIVE_ASHIFT = libzfs.ZPOOL_STATUS_NON_NATIVE_ASHIFT
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_NON_NATIVE_ASHIFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NON_NATIVE_ASHIFT, __pyx_t_5) < 0) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0212: OK = libzfs.ZPOOL_STATUS_OK
__pyx_t_5 = __Pyx_PyInt_From_zpool_status_t(ZPOOL_STATUS_OK); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_OK, __pyx_t_5) < 0) __PYX_ERR(1, 212, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0213:
0214:
+0215: class ScanState(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_ScanState, __pyx_n_s_ScanState, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_ScanState, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScanState, __pyx_t_5) < 0) __PYX_ERR(1, 215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0216: NONE = zfs.DSS_NONE
__pyx_t_5 = __Pyx_PyInt_From_dsl_scan_state_t(DSS_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0217: SCANNING = zfs.DSS_SCANNING
__pyx_t_5 = __Pyx_PyInt_From_dsl_scan_state_t(DSS_SCANNING); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SCANNING, __pyx_t_5) < 0) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0218: FINISHED = zfs.DSS_FINISHED
__pyx_t_5 = __Pyx_PyInt_From_dsl_scan_state_t(DSS_FINISHED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FINISHED, __pyx_t_5) < 0) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0219: CANCELED = zfs.DSS_CANCELED
__pyx_t_5 = __Pyx_PyInt_From_dsl_scan_state_t(DSS_CANCELED); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CANCELED, __pyx_t_5) < 0) __PYX_ERR(1, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0220:
0221:
+0222: class ZIOType(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_ZIOType, __pyx_n_s_ZIOType, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_ZIOType, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ZIOType, __pyx_t_5) < 0) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0223: NONE = zfs.ZIO_TYPE_NULL
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0224: READ = zfs.ZIO_TYPE_READ
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_READ); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_READ, __pyx_t_5) < 0) __PYX_ERR(1, 224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0225: WRITE = zfs.ZIO_TYPE_WRITE
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_WRITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_WRITE, __pyx_t_5) < 0) __PYX_ERR(1, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0226: FREE = zfs.ZIO_TYPE_FREE
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_FREE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FREE, __pyx_t_5) < 0) __PYX_ERR(1, 226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0227: CLAIM = zfs.ZIO_TYPE_CLAIM
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_CLAIM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CLAIM, __pyx_t_5) < 0) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0228: IOCTL = zfs.ZIO_TYPE_IOCTL
__pyx_t_5 = __Pyx_PyInt_From_zio_type_t(ZIO_TYPE_IOCTL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_IOCTL, __pyx_t_5) < 0) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0229:
0230:
+0231: class FeatureState(enum.Enum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_FeatureState, __pyx_n_s_FeatureState, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_FeatureState, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_FeatureState, __pyx_t_5) < 0) __PYX_ERR(1, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0232: DISABLED = 0
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DISABLED, __pyx_int_0) < 0) __PYX_ERR(1, 232, __pyx_L1_error)
+0233: ENABLED = 1
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ENABLED, __pyx_int_1) < 0) __PYX_ERR(1, 233, __pyx_L1_error)
+0234: ACTIVE = 2
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ACTIVE, __pyx_int_2) < 0) __PYX_ERR(1, 234, __pyx_L1_error)
0235:
0236:
+0237: class SendFlag(enum.Enum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_SendFlag, __pyx_n_s_SendFlag, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_SendFlag, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SendFlag, __pyx_t_5) < 0) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0238: VERBOSE = 0
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_VERBOSE, __pyx_int_0) < 0) __PYX_ERR(1, 238, __pyx_L1_error)
+0239: REPLICATE = 1
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_REPLICATE, __pyx_int_1) < 0) __PYX_ERR(1, 239, __pyx_L1_error)
+0240: DOALL = 2
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DOALL, __pyx_int_2) < 0) __PYX_ERR(1, 240, __pyx_L1_error)
+0241: FROMORIGIN = 3
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FROMORIGIN, __pyx_int_3) < 0) __PYX_ERR(1, 241, __pyx_L1_error)
+0242: DEDUP = 3
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DEDUP, __pyx_int_3) < 0) __PYX_ERR(1, 242, __pyx_L1_error)
+0243: PROPS = 4
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROPS, __pyx_int_4) < 0) __PYX_ERR(1, 243, __pyx_L1_error)
+0244: DRYRUN = 5
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DRYRUN, __pyx_int_5) < 0) __PYX_ERR(1, 244, __pyx_L1_error)
+0245: PARSABLE = 6
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PARSABLE, __pyx_int_6) < 0) __PYX_ERR(1, 245, __pyx_L1_error)
+0246: PROGRESS = 7
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_PROGRESS, __pyx_int_7) < 0) __PYX_ERR(1, 246, __pyx_L1_error)
+0247: LARGEBLOCK = 8
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_LARGEBLOCK, __pyx_int_8) < 0) __PYX_ERR(1, 247, __pyx_L1_error)
+0248: EMBED_DATA = 9
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_EMBED_DATA, __pyx_int_9) < 0) __PYX_ERR(1, 248, __pyx_L1_error)
0249:
0250:
+0251: class DiffRecordType(enum.Enum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_DiffRecordType, __pyx_n_s_DiffRecordType, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_DiffRecordType, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DiffRecordType, __pyx_t_5) < 0) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0252: ADD = '+'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_ADD, __pyx_kp_s__80) < 0) __PYX_ERR(1, 252, __pyx_L1_error)
+0253: REMOVE = '-'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_REMOVE, __pyx_kp_s__3) < 0) __PYX_ERR(1, 253, __pyx_L1_error)
+0254: MODIFY = 'M'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_MODIFY, __pyx_n_s_M) < 0) __PYX_ERR(1, 254, __pyx_L1_error)
+0255: RENAME = 'R'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_RENAME, __pyx_n_s_R) < 0) __PYX_ERR(1, 255, __pyx_L1_error)
0256:
0257:
+0258: class DiffFileType(enum.Enum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_DiffFileType, __pyx_n_s_DiffFileType, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_DiffFileType, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DiffFileType, __pyx_t_5) < 0) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0259: BLOCK = 'B'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_BLOCK, __pyx_n_s_B) < 0) __PYX_ERR(1, 259, __pyx_L1_error)
+0260: CHAR = 'C'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_CHAR, __pyx_n_s_C) < 0) __PYX_ERR(1, 260, __pyx_L1_error)
+0261: FILE = 'F'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_FILE, __pyx_n_s_F) < 0) __PYX_ERR(1, 261, __pyx_L1_error)
+0262: DIRECTORY = '/'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_DIRECTORY, __pyx_kp_s__81) < 0) __PYX_ERR(1, 262, __pyx_L1_error)
+0263: SYMLINK = '@'
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SYMLINK, __pyx_kp_s__59) < 0) __PYX_ERR(1, 263, __pyx_L1_error)
+0264: SOCKET = '='
if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_SOCKET, __pyx_kp_s__14) < 0) __PYX_ERR(1, 264, __pyx_L1_error)
0265:
0266:
0267: IF FREEBSD_VERSION >= 1003509:
+0268: cdef enum:
enum {
+0269: MAX_DATASET_NAME_LEN = zfs.ZFS_MAX_DATASET_NAME_LEN
__pyx_e_6libzfs_MAX_DATASET_NAME_LEN = ZFS_MAX_DATASET_NAME_LEN };
0270: ELSE:
0271: cdef enum:
0272: MAX_DATASET_NAME_LEN = libzfs.ZFS_MAXNAMELEN
0273:
0274:
+0275: class DiffRecord(object):
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_builtin_object); __Pyx_GIVEREF(__pyx_builtin_object); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_object); __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_DiffRecord, __pyx_n_s_DiffRecord, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_DiffRecord, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DiffRecord, __pyx_t_5) < 0) __PYX_ERR(1, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0276: def __init__(self, raw):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10DiffRecord_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_10DiffRecord_1__init__ = {"__init__", (PyCFunction)__pyx_pw_6libzfs_10DiffRecord_1__init__, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_6libzfs_10DiffRecord_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_raw = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_raw,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_raw)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 276, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 276, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_raw = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 276, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.DiffRecord.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10DiffRecord___init__(__pyx_self, __pyx_v_self, __pyx_v_raw); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10DiffRecord___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_raw) { PyObject *__pyx_v_timestamp = NULL; PyObject *__pyx_v_cmd = NULL; PyObject *__pyx_v_typ = NULL; PyObject *__pyx_v_rest = NULL; PyObject *__pyx_v_paths = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.DiffRecord.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_timestamp); __Pyx_XDECREF(__pyx_v_cmd); __Pyx_XDECREF(__pyx_v_typ); __Pyx_XDECREF(__pyx_v_rest); __Pyx_XDECREF(__pyx_v_paths); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__82 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_raw, __pyx_n_s_timestamp, __pyx_n_s_cmd, __pyx_n_s_typ, __pyx_n_s_rest, __pyx_n_s_paths); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__82); __Pyx_GIVEREF(__pyx_tuple__82); /* … */ __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_10DiffRecord_1__init__, 0, __pyx_n_s_DiffRecord___init, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__82, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_init, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(1, 276, __pyx_L1_error)
+0277: timestamp, cmd, typ, rest = raw.split(maxsplit=3)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_raw, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_maxsplit, __pyx_int_3) < 0) __PYX_ERR(1, 277, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 277, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_4 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_4,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_4,&__pyx_t_5}; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(1, 277, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 277, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_v_timestamp = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_cmd = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_typ = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_rest = __pyx_t_5; __pyx_t_5 = 0;
+0278: paths = rest.split('->', maxsplit=2)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_rest, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_maxsplit, __pyx_int_2) < 0) __PYX_ERR(1, 278, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__10, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_paths = __pyx_t_4; __pyx_t_4 = 0; /* … */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s__9); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10);
+0279: self.raw = raw
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_raw, __pyx_v_raw) < 0) __PYX_ERR(1, 279, __pyx_L1_error)
+0280: self.timestamp = datetime.utcfromtimestamp(float(timestamp))
__pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_datetime); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_utcfromtimestamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyNumber_Float(__pyx_v_timestamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_1) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else { __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_timestamp, __pyx_t_4) < 0) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0281: self.cmd = DiffRecordType(cmd)
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_DiffRecordType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_2) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_INCREF(__pyx_v_cmd); __Pyx_GIVEREF(__pyx_v_cmd); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_cmd); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cmd, __pyx_t_4) < 0) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0282: self.type = DiffFileType(typ)
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_DiffFileType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_5) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_typ); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } else { __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_typ); __Pyx_GIVEREF(__pyx_v_typ); PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_v_typ); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_type, __pyx_t_4) < 0) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0283: self.path = paths[0].strip()
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_paths, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_strip); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 283, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_path, __pyx_t_4) < 0) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
0284:
+0285: if self.cmd == DiffRecordType.RENAME:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cmd); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DiffRecordType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_RENAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_8) { /* … */ }
+0286: self.oldpath = paths[1].strip()
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_paths, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_strip); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 286, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_oldpath, __pyx_t_2) < 0) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0287:
+0288: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10DiffRecord_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_10DiffRecord_3__str__ = {"__str__", (PyCFunction)__pyx_pw_6libzfs_10DiffRecord_3__str__, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_10DiffRecord_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10DiffRecord_2__str__(__pyx_self, ((PyObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10DiffRecord_2__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.DiffRecord.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__84 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__84)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__84); __Pyx_GIVEREF(__pyx_tuple__84); /* … */ __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_10DiffRecord_3__str__, 0, __pyx_n_s_DiffRecord___str, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_str, __pyx_t_5) < 0) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_str, 288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(1, 288, __pyx_L1_error)
+0289: return self.raw
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_raw); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0290:
+0291: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10DiffRecord_5__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_10DiffRecord_5__repr__ = {"__repr__", (PyCFunction)__pyx_pw_6libzfs_10DiffRecord_5__repr__, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_10DiffRecord_5__repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10DiffRecord_4__repr__(__pyx_self, ((PyObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10DiffRecord_4__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.DiffRecord.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__86 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__86); __Pyx_GIVEREF(__pyx_tuple__86); /* … */ __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_10DiffRecord_5__repr__, 0, __pyx_n_s_DiffRecord___repr, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_repr, __pyx_t_5) < 0) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_repr, 291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(1, 291, __pyx_L1_error)
+0292: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0293:
+0294: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10DiffRecord_7__getstate__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_10DiffRecord_7__getstate__ = {"__getstate__", (PyCFunction)__pyx_pw_6libzfs_10DiffRecord_7__getstate__, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_10DiffRecord_7__getstate__(PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10DiffRecord_6__getstate__(__pyx_self, ((PyObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10DiffRecord_6__getstate__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.DiffRecord.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__88 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(1, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__88); __Pyx_GIVEREF(__pyx_tuple__88); /* … */ __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_10DiffRecord_7__getstate__, 0, __pyx_n_s_DiffRecord___getstate, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_getstate, __pyx_t_5) < 0) __PYX_ERR(1, 294, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_getstate, 294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(1, 294, __pyx_L1_error)
+0295: return {
__Pyx_XDECREF(__pyx_r);
+0296: 'timestamp': self.timestamp,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_timestamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_timestamp, __pyx_t_2) < 0) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0297: 'cmd': self.cmd.name,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cmd, __pyx_t_3) < 0) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0298: 'type': self.type.name,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0299: 'path': self.path,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_path, __pyx_t_2) < 0) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0300: 'oldpath': getattr(self, 'oldpath', None)
__pyx_t_2 = __Pyx_GetAttr3(__pyx_v_self, __pyx_n_s_oldpath, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_oldpath, __pyx_t_2) < 0) __PYX_ERR(1, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0301: }
0302:
0303:
0304:
0305: IF FREEBSD_VERSION >= 1000000:
+0306: class SendFlags(enum.IntEnum):
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_enum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_IntEnum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_SendFlags, __pyx_n_s_SendFlags, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_SendFlags, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SendFlags, __pyx_t_5) < 0) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0307: EMBED_DATA = libzfs.LZC_SEND_FLAG_EMBED_DATA
__pyx_t_5 = __Pyx_PyInt_From_enum__lzc_send_flags(LZC_SEND_FLAG_EMBED_DATA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_EMBED_DATA, __pyx_t_5) < 0) __PYX_ERR(1, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0308:
0309:
+0310: class ZFSException(RuntimeError):
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_builtin_RuntimeError); __Pyx_GIVEREF(__pyx_builtin_RuntimeError); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_RuntimeError); __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_n_s_ZFSException, __pyx_n_s_ZFSException, (PyObject *) NULL, __pyx_n_s_libzfs, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_ZFSException, __pyx_t_2, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ZFSException, __pyx_t_5) < 0) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0311: def __init__(self, code, message):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSException_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_12ZFSException_1__init__ = {"__init__", (PyCFunction)__pyx_pw_6libzfs_12ZFSException_1__init__, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_6libzfs_12ZFSException_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_code = 0; PyObject *__pyx_v_message = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_code,&__pyx_n_s_message,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_code)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(1, 311, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(1, 311, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 311, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_self = values[0]; __pyx_v_code = values[1]; __pyx_v_message = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 311, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSException.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_12ZFSException___init__(__pyx_self, __pyx_v_self, __pyx_v_code, __pyx_v_message); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSException___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_code, PyObject *__pyx_v_message) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZFSException.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__90 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_code, __pyx_n_s_message); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(1, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__90); __Pyx_GIVEREF(__pyx_tuple__90); /* … */ __pyx_t_5 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_12ZFSException_1__init__, 0, __pyx_n_s_ZFSException___init, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(1, 311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_init, 311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(1, 311, __pyx_L1_error)
+0312: super(ZFSException, self).__init__(message)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_message); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_INCREF(__pyx_v_message); __Pyx_GIVEREF(__pyx_v_message); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_message); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0313: self.code = code
if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_code, __pyx_v_code) < 0) __PYX_ERR(1, 313, __pyx_L1_error)
0314:
0315:
+0316: cdef class ZFS(object):
struct __pyx_obj_6libzfs_ZFS { PyObject_HEAD struct __pyx_vtabstruct_6libzfs_ZFS *__pyx_vtab; libzfs_handle_t *handle; int history; char *history_prefix; }; /* … */ struct __pyx_vtabstruct_6libzfs_ZFS { int (*__pyx___iterate_pools)(zpool_handle_t *, void *); PyObject *(*get_error)(struct __pyx_obj_6libzfs_ZFS *); struct __pyx_obj_6libzfs_ZFSVdev *(*make_vdev_tree)(struct __pyx_obj_6libzfs_ZFS *, PyObject *); }; static struct __pyx_vtabstruct_6libzfs_ZFS *__pyx_vtabptr_6libzfs_ZFS;
0317: cdef libzfs.libzfs_handle_t* handle
0318: cdef int history
0319: cdef char *history_prefix
0320:
+0321: def __cinit__(self, history=False, history_prefix=''):
/* Python wrapper */ static int __pyx_pw_6libzfs_3ZFS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_3ZFS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_history = 0; PyObject *__pyx_v_history_prefix = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_history,&__pyx_n_s_history_prefix,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)Py_False); values[1] = ((PyObject *)__pyx_kp_s__11); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_history); if (value) { values[0] = value; kw_args--; } } case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_history_prefix); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 321, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_history = values[0]; __pyx_v_history_prefix = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 321, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS___cinit__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_history, __pyx_v_history_prefix); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_3ZFS___cinit__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_history, PyObject *__pyx_v_history_prefix) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0322: self.handle = libzfs.libzfs_init()
__pyx_v_self->handle = libzfs_init();
+0323: if isinstance(history, bool):
__pyx_t_1 = ((PyObject*)&PyBool_Type); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_history, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 323, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+0324: self.history = history
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_history); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 324, __pyx_L1_error) __pyx_v_self->history = __pyx_t_4;
0325: else:
+0326: raise ZFSException(Error.BADTYPE, 'history is a boolean parameter')
/*else*/ { __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_BADTYPE); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_kp_s_history_is_a_boolean_parameter); __Pyx_GIVEREF(__pyx_kp_s_history_is_a_boolean_parameter); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_s_history_is_a_boolean_parameter); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 326, __pyx_L1_error) } __pyx_L3:;
0327:
+0328: if self.history:
__pyx_t_3 = (__pyx_v_self->history != 0); if (__pyx_t_3) { /* … */ }
+0329: if isinstance(history_prefix, str):
__pyx_t_3 = PyString_Check(__pyx_v_history_prefix);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L5;
}
+0330: self.history_prefix = history_prefix
__pyx_t_10 = __Pyx_PyObject_AsString(__pyx_v_history_prefix); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(1, 330, __pyx_L1_error) __pyx_v_self->history_prefix = __pyx_t_10;
0331: else:
+0332: raise ZFSException(Error.BADTYPE, 'history_prefix is a string parameter')
/*else*/ { __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_BADTYPE); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_kp_s_history_prefix_is_a_string_param); __Pyx_GIVEREF(__pyx_kp_s_history_prefix_is_a_string_param); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_kp_s_history_prefix_is_a_string_param); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 332, __pyx_L1_error) } __pyx_L5:;
0333:
+0334: def __dealloc__(self):
/* Python wrapper */ static void __pyx_pw_6libzfs_3ZFS_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_6libzfs_3ZFS_3__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_6libzfs_3ZFS_2__dealloc__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_6libzfs_3ZFS_2__dealloc__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* … */ /* function exit code */ __Pyx_RefNannyFinishContext(); }
+0335: libzfs.libzfs_fini(self.handle)
libzfs_fini(__pyx_v_self->handle);
0336:
+0337: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_5__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_5__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_4__getstate__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_4__getstate__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { PyObject *__pyx_v_p = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFS.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_p); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0338: return [p.__getstate__() for p in self.pools]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_pools); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 338, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 338, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 338, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 338, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_getstate); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } if (__pyx_t_7) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 338, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 338, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0339:
0340: @staticmethod
+0341: cdef int __iterate_pools(libzfs.zpool_handle_t *handle, void *arg) nogil:
static int __pyx_f_6libzfs_3ZFS___iterate_pools(zpool_handle_t *__pyx_v_handle, void *__pyx_v_arg) { PyObject *__pyx_v_pools = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_pools", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFS.__iterate_pools", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_pools); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+0342: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L8; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } __pyx_L8:; } } } /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } __pyx_L5:; }
+0343: pools = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_pools = __pyx_t_1;
__pyx_t_1 = 0;
+0344: pools.append(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 344, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_pools, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 344, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
0345:
+0346: cdef object get_error(self):
static PyObject *__pyx_f_6libzfs_3ZFS_get_error(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_error", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFS.get_error", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0347: return ZFSException(
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+0348: Error(libzfs.libzfs_errno(self.handle)),
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_int(libzfs_errno(__pyx_v_self->handle)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0349: libzfs.libzfs_error_description(self.handle)
__pyx_t_4 = __Pyx_PyUnicode_FromString(libzfs_error_description(__pyx_v_self->handle)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0350: )
0351:
+0352: cdef ZFSVdev make_vdev_tree(self, topology):
static struct __pyx_obj_6libzfs_ZFSVdev *__pyx_f_6libzfs_3ZFS_make_vdev_tree(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_topology) { struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_root = 0; PyObject *__pyx_v_i = NULL; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_vdev_tree", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFS.make_vdev_tree", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_root); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0353: cdef ZFSVdev root
+0354: root = ZFSVdev(self, 'root')
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_n_s_root); __Pyx_GIVEREF(__pyx_n_s_root); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_root); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_root = ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2); __pyx_t_2 = 0;
+0355: root.children = topology.get('data', [])
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_n_s_data); __Pyx_GIVEREF(__pyx_n_s_data); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_n_s_data); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_root), __pyx_n_s_children, __pyx_t_2) < 0) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0356:
+0357: if 'cache' in topology:
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_cache, __pyx_v_topology, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 357, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
/* … */
}
+0358: root.nvlist['l2cache'] = [(<ZFSVdev>i).nvlist for i in topology['cache']]
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetItem(__pyx_v_topology, __pyx_n_s_cache); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0; __pyx_t_9 = NULL; } else { __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 358, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 358, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 358, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 358, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_1 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_i)->nvlist))) __PYX_ERR(1, 358, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_root->nvlist), __pyx_n_s_l2cache, __pyx_t_2) < 0)) __PYX_ERR(1, 358, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0359:
+0360: if 'spare' in topology:
__pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_spare, __pyx_v_topology, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(1, 360, __pyx_L1_error)
__pyx_t_7 = (__pyx_t_8 != 0);
if (__pyx_t_7) {
/* … */
}
+0361: root.nvlist['spares'] = [(<ZFSVdev>i).nvlist for i in topology['spare']]
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyObject_GetItem(__pyx_v_topology, __pyx_n_s_spare); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_9 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 361, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 361, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 361, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } } else { __pyx_t_6 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 361, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_6); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); __pyx_t_6 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_i)->nvlist))) __PYX_ERR(1, 361, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_root->nvlist), __pyx_n_s_spares, __pyx_t_2) < 0)) __PYX_ERR(1, 361, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0362:
+0363: if 'log' in topology:
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_log, __pyx_v_topology, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 363, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
/* … */
}
+0364: for i in topology['log']:
__pyx_t_2 = PyObject_GetItem(__pyx_v_topology, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_9 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 364, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 364, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 364, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 364, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0365: (<ZFSVdev>i).nvlist['is_log'] = 1L
if (unlikely(PyObject_SetItem(((PyObject *)((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_i)->nvlist), __pyx_n_s_is_log, __pyx_int_1L) < 0)) __PYX_ERR(1, 365, __pyx_L1_error)
+0366: root.add_child_vdev(i)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_root), __pyx_n_s_add_child_vdev); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } if (!__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_i); __Pyx_GIVEREF(__pyx_v_i); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_i); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0367:
+0368: return root
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_root)); __pyx_r = __pyx_v_root; goto __pyx_L0;
0369:
0370: property errno:
+0371: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_5errno_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_5errno_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_5errno___get__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_5errno___get__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFS.errno.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0372: return Error(libzfs.libzfs_errno(self.handle))
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(libzfs_errno(__pyx_v_self->handle)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0373:
0374: property errstr:
+0375: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_6errstr_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_6errstr_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_6errstr___get__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_6errstr___get__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFS.errstr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_5pools_2generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+0376: return libzfs.libzfs_error_description(self.handle)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(libzfs_error_description(__pyx_v_self->handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0377:
0378: property pools:
+0379: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_5pools_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_5pools_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_5pools___get__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_5pools___get__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_2___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_2___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_2___get__(__pyx_ptype_6libzfs___pyx_scope_struct_2___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_3ZFS_5pools_2generator2, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFS___get); if (unlikely(!gen)) __PYX_ERR(1, 379, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFS.pools.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_5pools_2generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 379, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_8datasets_2generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_2___get__ { PyObject_HEAD PyObject *__pyx_v_h; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool; PyObject *__pyx_v_pools; struct __pyx_obj_6libzfs_ZFS *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; };
0380: cdef ZFSPool pool
+0381: pools = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_pools = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0382:
+0383: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+0384: libzfs.zpool_iter(self.handle, self.__iterate_pools, <void*>pools)
zpool_iter(__pyx_cur_scope->__pyx_v_self->handle, ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___iterate_pools, ((void *)__pyx_cur_scope->__pyx_v_pools)); }
0385:
+0386: for h in pools:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_pools; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 386, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_h); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_h, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_L7_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0387: pool = ZFSPool.__new__(ZFSPool)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSPool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSPool)))) __PYX_ERR(1, 387, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_pool, ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+0388: pool.root = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_pool->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool->root)); __pyx_cur_scope->__pyx_v_pool->root = __pyx_cur_scope->__pyx_v_self;
+0389: pool.handle = <libzfs.zpool_handle_t*><uintptr_t>h
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 389, __pyx_L1_error) __pyx_cur_scope->__pyx_v_pool->handle = ((zpool_handle_t *)((uintptr_t)__pyx_t_4));
+0390: if pool.name == '$import':
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_pool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s_import, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 390, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ }
+0391: continue
goto __pyx_L7_continue;
0392:
+0393: yield pool
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_pool); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 393, __pyx_L1_error)
0394:
0395: property datasets:
+0396: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_8datasets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_8datasets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_8datasets___get__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_8datasets___get__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_3___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_3___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_3___get__(__pyx_ptype_6libzfs___pyx_scope_struct_3___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_3ZFS_8datasets_2generator3, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFS___get); if (unlikely(!gen)) __PYX_ERR(1, 396, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFS.datasets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_8datasets_2generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 396, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_9snapshots_2generator4(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_3___get__ { PyObject_HEAD PyObject *__pyx_v_c; PyObject *__pyx_v_p; struct __pyx_obj_6libzfs_ZFS *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); };
+0397: for p in self.pools:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_pools); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 397, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_L4_continue:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0398: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L13_try_end; __pyx_L6_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L1_error; __pyx_L12_try_continue:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L4_continue; __pyx_L13_try_end:; }
+0399: yield p.root_dataset
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_p, __pyx_n_s_root_dataset); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 399, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_3 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_4 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_5 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L14_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_t_5 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 399, __pyx_L6_error)
+0400: for c in p.root_dataset.children_recursive:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_p, __pyx_n_s_root_dataset); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 400, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_children_recursive); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 400, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 400, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 400, __pyx_L6_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 400, __pyx_L6_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 400, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 400, __pyx_L6_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 400, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); #endif } } else { __pyx_t_8 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 400, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_8); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0401: yield c
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_c); __pyx_r = __pyx_cur_scope->__pyx_v_c; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_3 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_4 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_5 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_6 = __pyx_t_7; __pyx_cur_scope->__pyx_t_7 = __pyx_t_9; __pyx_cur_scope->__pyx_t_8 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L17_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_t_5 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_9 = __pyx_cur_scope->__pyx_t_7; __pyx_t_10 = __pyx_cur_scope->__pyx_t_8; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 401, __pyx_L6_error)
+0402: except ZFSException:
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 402, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { __Pyx_AddTraceback("libzfs.ZFS.datasets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_12) < 0) __PYX_ERR(1, 402, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_12);
+0403: continue
goto __pyx_L19_except_continue; __pyx_L19_except_continue:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L12_try_continue; } goto __pyx_L8_except_error; __pyx_L8_except_error:;
0404:
0405: property snapshots:
+0406: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_9snapshots_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_9snapshots_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_9snapshots___get__(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_9snapshots___get__(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_4___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_4___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_4___get__(__pyx_ptype_6libzfs___pyx_scope_struct_4___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_3ZFS_9snapshots_2generator4, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFS___get); if (unlikely(!gen)) __PYX_ERR(1, 406, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFS.snapshots.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_9snapshots_2generator4(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 406, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_4___get__ { PyObject_HEAD PyObject *__pyx_v_c; PyObject *__pyx_v_p; struct __pyx_obj_6libzfs_ZFS *__pyx_v_self; PyObject *__pyx_t_0; PyObject *__pyx_t_1; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *__pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); };
+0407: for p in self.pools:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_pools); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 407, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 407, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 407, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 407, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_L4_continue:; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0408: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L13_try_end; __pyx_L6_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L1_error; __pyx_L12_try_continue:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L4_continue; __pyx_L13_try_end:; }
+0409: for c in p.root_dataset.snapshots_recursive:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_p, __pyx_n_s_root_dataset); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 409, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_snapshots_recursive); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 409, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 409, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 409, __pyx_L6_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 409, __pyx_L6_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 409, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 409, __pyx_L6_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 409, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); #endif } } else { __pyx_t_8 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 409, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_8); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0410: yield c
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_c); __pyx_r = __pyx_cur_scope->__pyx_v_c; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __pyx_cur_scope->__pyx_t_3 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_4 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_t_6); __pyx_cur_scope->__pyx_t_5 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_t_7); __pyx_cur_scope->__pyx_t_6 = __pyx_t_7; __pyx_cur_scope->__pyx_t_7 = __pyx_t_9; __pyx_cur_scope->__pyx_t_8 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L16_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_cur_scope->__pyx_t_1 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; __pyx_t_4 = __pyx_cur_scope->__pyx_t_3; __pyx_t_5 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_6); __pyx_t_7 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_7); __pyx_t_9 = __pyx_cur_scope->__pyx_t_7; __pyx_t_10 = __pyx_cur_scope->__pyx_t_8; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 410, __pyx_L6_error)
+0411: except ZFSException:
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 411, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { __Pyx_AddTraceback("libzfs.ZFS.snapshots.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_12) < 0) __PYX_ERR(1, 411, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_12);
+0412: continue
goto __pyx_L18_except_continue; __pyx_L18_except_continue:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L12_try_continue; } goto __pyx_L8_except_error; __pyx_L8_except_error:;
0413:
+0414: def get(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_7get(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_7get(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_6get(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_6get(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name) { char const *__pyx_v_c_name; zpool_handle_t *__pyx_v_handle; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.get", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pool); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_10generator5(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+0415: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 415, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
+0416: cdef libzfs.zpool_handle_t* handle = NULL
__pyx_v_handle = NULL;
0417: cdef ZFSPool pool
0418:
+0419: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0420: handle = libzfs.zpool_open_canfail(self.handle, c_name)
__pyx_v_handle = zpool_open_canfail(__pyx_v_self->handle, __pyx_v_c_name); }
0421:
+0422: if handle == NULL:
__pyx_t_2 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_2) { /* … */ }
+0423: raise ZFSException(Error.NOENT, 'Pool {0} not found'.format(name))
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Pool_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 423, __pyx_L1_error)
0424:
+0425: pool = ZFSPool.__new__(ZFSPool)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSPool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSPool)))) __PYX_ERR(1, 425, __pyx_L1_error) __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+0426: pool.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_pool->root); __Pyx_DECREF(((PyObject *)__pyx_v_pool->root)); __pyx_v_pool->root = __pyx_v_self;
+0427: pool.handle = handle
__pyx_v_pool->handle = __pyx_v_handle;
+0428: return pool
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_pool)); __pyx_r = ((PyObject *)__pyx_v_pool); goto __pyx_L0;
0429:
+0430: def find_import(self, cachefile=None, name=None, destroyed=False, search_paths=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_9find_import(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_9find_import(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_cachefile = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_destroyed = 0; PyObject *__pyx_v_search_paths = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("find_import (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cachefile,&__pyx_n_s_name_2,&__pyx_n_s_destroyed,&__pyx_n_s_search_paths,0}; PyObject* values[4] = {0,0,0,0}; values[0] = ((PyObject *)Py_None); values[1] = ((PyObject *)Py_None); values[2] = ((PyObject *)Py_False); values[3] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cachefile); if (value) { values[0] = value; kw_args--; } } case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_destroyed); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_search_paths); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_import") < 0)) __PYX_ERR(1, 430, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_cachefile = values[0]; __pyx_v_name = values[1]; __pyx_v_destroyed = values[2]; __pyx_v_search_paths = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("find_import", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 430, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.find_import", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS_8find_import(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_cachefile, __pyx_v_name, __pyx_v_destroyed, __pyx_v_search_paths); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_8find_import(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_cachefile, PyObject *__pyx_v_name, PyObject *__pyx_v_destroyed, PyObject *__pyx_v_search_paths) { struct __pyx_obj_6libzfs___pyx_scope_struct_5_find_import *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("find_import", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_5_find_import *)__pyx_tp_new_6libzfs___pyx_scope_struct_5_find_import(__pyx_ptype_6libzfs___pyx_scope_struct_5_find_import, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_cachefile = __pyx_v_cachefile; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cachefile); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_cachefile); __pyx_cur_scope->__pyx_v_name = __pyx_v_name; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __pyx_cur_scope->__pyx_v_destroyed = __pyx_v_destroyed; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_destroyed); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_destroyed); __pyx_cur_scope->__pyx_v_search_paths = __pyx_v_search_paths; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_search_paths); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_search_paths); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_3ZFS_10generator5, (PyObject *) __pyx_cur_scope, __pyx_n_s_find_import, __pyx_n_s_ZFS_find_import); if (unlikely(!gen)) __PYX_ERR(1, 430, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFS.find_import", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_3ZFS_10generator5(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 430, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("find_import", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_5_find_import { PyObject_HEAD char *__pyx_v_c_name; PyObject *__pyx_v_cachefile; PyObject *__pyx_v_config; PyObject *__pyx_v_destroyed; PyObject *__pyx_v_encoded; PyObject *__pyx_v_i; importargs_t __pyx_v_iargs; PyObject *__pyx_v_name; struct __pyx_obj_6libzfs_NVList *__pyx_v_nv; PyObject *__pyx_v_p; char *__pyx_v_paths; struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_pool; nvlist_t *__pyx_v_result; PyObject *__pyx_v_search_paths; struct __pyx_obj_6libzfs_ZFS *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
0431: cdef ZFSImportablePool pool
0432: cdef libzfs.importargs_t iargs
+0433: cdef char* paths = "/dev"
__pyx_cur_scope->__pyx_v_paths = ((char *)"/dev");
0434: cdef char* c_name
0435: cdef nvpair.nvlist_t* result
0436:
+0437: iargs.path = &paths
__pyx_cur_scope->__pyx_v_iargs.path = (&__pyx_cur_scope->__pyx_v_paths);
+0438: iargs.paths = 1
__pyx_cur_scope->__pyx_v_iargs.paths = 1;
+0439: iargs.poolname = NULL
__pyx_cur_scope->__pyx_v_iargs.poolname = NULL;
+0440: iargs.guid = 0
__pyx_cur_scope->__pyx_v_iargs.guid = 0;
+0441: iargs.cachefile = NULL
__pyx_cur_scope->__pyx_v_iargs.cachefile = NULL;
0442:
+0443: if name:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_name); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 443, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+0444: encoded = name.encode('utf-8')
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_name, __pyx_n_s_encode); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_encoded = __pyx_t_3; __pyx_t_3 = 0; /* … */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_utf_8); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12);
+0445: c_name = encoded
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_cur_scope->__pyx_v_encoded); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 445, __pyx_L1_error) __pyx_cur_scope->__pyx_v_c_name = __pyx_t_4;
+0446: iargs.poolname = c_name
__pyx_cur_scope->__pyx_v_iargs.poolname = __pyx_cur_scope->__pyx_v_c_name;
0447:
+0448: if search_paths:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_search_paths); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 448, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+0449: iargs.path = <char **>malloc(len(search_paths) * sizeof(char *))
__pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_search_paths); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(1, 449, __pyx_L1_error)
__pyx_cur_scope->__pyx_v_iargs.path = ((char **)malloc((__pyx_t_5 * (sizeof(char *)))));
+0450: iargs.paths = len(search_paths)
__pyx_t_5 = PyObject_Length(__pyx_cur_scope->__pyx_v_search_paths); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(1, 450, __pyx_L1_error)
__pyx_cur_scope->__pyx_v_iargs.paths = __pyx_t_5;
+0451: for i, p in enumerate(search_paths):
__Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_search_paths)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_search_paths)) { __pyx_t_2 = __pyx_cur_scope->__pyx_v_search_paths; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_search_paths); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 451, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 451, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 451, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 451, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_p); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_p, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0452: iargs.path[i] = <char *>p
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_cur_scope->__pyx_v_p); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 452, __pyx_L1_error) __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_cur_scope->__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 452, __pyx_L1_error) (__pyx_cur_scope->__pyx_v_iargs.path[__pyx_t_8]) = ((char *)__pyx_t_4);
0453:
+0454: if cachefile:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_cachefile); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 454, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+0455: iargs.cachefile = cachefile
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_cur_scope->__pyx_v_cachefile); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 455, __pyx_L1_error) __pyx_cur_scope->__pyx_v_iargs.cachefile = __pyx_t_4;
0456:
+0457: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L11; } __pyx_L11:; } }
+0458: result = libzfs.zpool_search_import(self.handle, &iargs)
__pyx_cur_scope->__pyx_v_result = zpool_search_import(__pyx_cur_scope->__pyx_v_self->handle, (&__pyx_cur_scope->__pyx_v_iargs)); }
0459:
+0460: if result is NULL:
__pyx_t_1 = ((__pyx_cur_scope->__pyx_v_result == NULL) != 0); if (__pyx_t_1) { /* … */ }
+0461: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
0462:
+0463: nv = NVList(nvlist=<uintptr_t>result)
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_cur_scope->__pyx_v_result)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_nvlist, __pyx_t_2) < 0) __PYX_ERR(1, 463, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_nv = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+0464: for name, config in nv.items(raw=True):
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_nv), __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_raw, Py_True) < 0) __PYX_ERR(1, 464, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) { __pyx_t_3 = __pyx_t_7; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 464, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 464, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 464, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 464, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { PyObject* sequence = __pyx_t_7; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 464, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { Py_ssize_t index = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_2)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(1, 464, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 464, __pyx_L1_error) __pyx_L16_unpacking_done:; } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_name); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_name, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_config); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_config, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_L13_continue:; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0465: pool = ZFSImportablePool.__new__(ZFSImportablePool)
__pyx_t_7 = __pyx_tp_new_6libzfs_ZFSImportablePool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSImportablePool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (!(likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_6libzfs_ZFSImportablePool)))) __PYX_ERR(1, 465, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_pool, ((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_t_7)); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0;
+0466: pool.name = name
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_pool->name); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_pool->name); __pyx_cur_scope->__pyx_v_pool->name = __pyx_cur_scope->__pyx_v_name;
+0467: pool.free = False
__pyx_cur_scope->__pyx_v_pool->__pyx_base.free = 0;
+0468: pool.nvlist = config
if (!(likely(((__pyx_cur_scope->__pyx_v_config) == Py_None) || likely(__Pyx_TypeTest(__pyx_cur_scope->__pyx_v_config, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 468, __pyx_L1_error) __pyx_t_7 = __pyx_cur_scope->__pyx_v_config; __Pyx_INCREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_pool->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool->nvlist)); __pyx_cur_scope->__pyx_v_pool->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_7); __pyx_t_7 = 0;
0469:
0470: # Skip destroyed pools
+0471: if config['state'] == PoolState.DESTROYED and not destroyed:
__pyx_t_7 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_config, __pyx_n_s_state); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_PoolState); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_DESTROYED); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_12) { } else { __pyx_t_1 = __pyx_t_12; goto __pyx_L18_bool_binop_done; } __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_destroyed); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(1, 471, __pyx_L1_error) __pyx_t_13 = ((!__pyx_t_12) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L18_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0472: continue
goto __pyx_L13_continue;
0473:
+0474: yield pool
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_pool)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_pool); __Pyx_XGIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_t_0 = __pyx_t_3; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L20_resume_from_yield:; __pyx_t_3 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_3); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 474, __pyx_L1_error)
0475:
+0476: def import_pool(self, ZFSImportablePool pool, newname, opts):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_12import_pool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_12import_pool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_pool = 0; PyObject *__pyx_v_newname = 0; PyObject *__pyx_v_opts = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("import_pool (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool,&__pyx_n_s_newname,&__pyx_n_s_opts,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_newname)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("import_pool", 1, 3, 3, 1); __PYX_ERR(1, 476, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_opts)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("import_pool", 1, 3, 3, 2); __PYX_ERR(1, 476, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "import_pool") < 0)) __PYX_ERR(1, 476, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSImportablePool *)values[0]); __pyx_v_newname = values[1]; __pyx_v_opts = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("import_pool", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 476, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.import_pool", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_6libzfs_ZFSImportablePool, 1, "pool", 0))) __PYX_ERR(1, 476, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_3ZFS_11import_pool(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_pool, __pyx_v_newname, __pyx_v_opts); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_11import_pool(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_pool, PyObject *__pyx_v_newname, PyObject *__pyx_v_opts) { char const *__pyx_v_c_newname; struct __pyx_obj_6libzfs_NVList *__pyx_v_copts = 0; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("import_pool", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.import_pool", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_copts); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0477: cdef const char *c_newname = newname
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_newname); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 477, __pyx_L1_error) __pyx_v_c_newname = __pyx_t_1;
+0478: cdef NVList copts = NVList(otherdict=opts)
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_otherdict, __pyx_v_opts) < 0) __PYX_ERR(1, 478, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copts = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_3); __pyx_t_3 = 0;
0479: cdef int ret
0480:
+0481: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0482: ret = libzfs.zpool_import_props(
__pyx_v_ret = zpool_import_props(__pyx_v_self->handle, __pyx_v_pool->nvlist->handle, __pyx_v_c_newname, __pyx_v_copts->handle, 0); }
0483: self.handle,
0484: pool.nvlist.handle,
0485: c_newname,
0486: copts.handle,
0487: False
0488: )
0489:
+0490: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+0491: raise self.get_error()
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_vtab)->get_error(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 491, __pyx_L1_error)
0492:
+0493: self.write_history('zpool import', str(pool.guid), newname if newname else pool.name)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_write_history); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pool), __pyx_n_s_guid); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_newname); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 493, __pyx_L1_error) if (__pyx_t_4) { __Pyx_INCREF(__pyx_v_newname); __pyx_t_6 = __pyx_v_newname; } else { __Pyx_INCREF(__pyx_v_pool->name); __pyx_t_6 = __pyx_v_pool->name; } __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_import); __Pyx_GIVEREF(__pyx_kp_s_zpool_import); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_kp_s_zpool_import); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0494:
+0495: def export_pool(self, ZFSPool pool):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_14export_pool(PyObject *__pyx_v_self, PyObject *__pyx_v_pool); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_14export_pool(PyObject *__pyx_v_self, PyObject *__pyx_v_pool) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("export_pool (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_6libzfs_ZFSPool, 1, "pool", 0))) __PYX_ERR(1, 495, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_3ZFS_13export_pool(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_pool)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13export_pool(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("export_pool", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFS.export_pool", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0496: cdef int ret
0497:
+0498: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0499: ret = libzfs.zpool_disable_datasets(pool.handle, True)
__pyx_v_ret = zpool_disable_datasets(__pyx_v_pool->handle, 1); }
0500:
+0501: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+0502: raise self.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_vtab)->get_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 502, __pyx_L1_error)
0503:
+0504: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L9; } __pyx_L9:; } }
+0505: ret = libzfs.zpool_export(pool.handle, True, "export")
__pyx_v_ret = zpool_export(__pyx_v_pool->handle, 1, ((char const *)"export")); }
0506:
+0507: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+0508: raise self.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_vtab)->get_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 508, __pyx_L1_error)
0509:
+0510: self.write_history('zpool export', str(pool.name))
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_export); __Pyx_GIVEREF(__pyx_kp_s_zpool_export); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zpool_export); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0511:
+0512: def get_dataset(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_16get_dataset(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_16get_dataset(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_dataset (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_15get_dataset(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_15get_dataset(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name) { char const *__pyx_v_c_name; zfs_handle_t *__pyx_v_handle; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_dataset = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_dataset", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.get_dataset", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pool); __Pyx_XDECREF((PyObject *)__pyx_v_dataset); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0513: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 513, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
+0514: cdef libzfs.zfs_handle_t* handle = NULL
__pyx_v_handle = NULL;
0515: cdef ZFSPool pool
0516: cdef ZFSDataset dataset
0517:
+0518: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0519: handle = libzfs.zfs_open(self.handle, c_name, zfs.ZFS_TYPE_FILESYSTEM|zfs.ZFS_TYPE_VOLUME)
__pyx_v_handle = zfs_open(__pyx_v_self->handle, __pyx_v_c_name, (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME)); }
0520:
+0521: if handle == NULL:
__pyx_t_2 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_2) { /* … */ }
+0522: raise ZFSException(Error.NOENT, 'Dataset {0} not found'.format(name))
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Dataset_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 522, __pyx_L1_error)
0523:
+0524: pool = ZFSPool.__new__(ZFSPool)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSPool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSPool)))) __PYX_ERR(1, 524, __pyx_L1_error) __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+0525: pool.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_pool->root); __Pyx_DECREF(((PyObject *)__pyx_v_pool->root)); __pyx_v_pool->root = __pyx_v_self;
+0526: pool.free = False
__pyx_v_pool->free = 0;
+0527: pool.handle = libzfs.zfs_get_pool_handle(handle)
__pyx_v_pool->handle = zfs_get_pool_handle(__pyx_v_handle);
+0528: dataset = ZFSDataset.__new__(ZFSDataset)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSDataset(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSDataset), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSDataset)))) __PYX_ERR(1, 528, __pyx_L1_error) __pyx_v_dataset = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_3); __pyx_t_3 = 0;
+0529: dataset.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.root)); __pyx_v_dataset->__pyx_base.root = __pyx_v_self;
+0530: dataset.pool = pool
__Pyx_INCREF(((PyObject *)__pyx_v_pool)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pool)); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.pool)); __pyx_v_dataset->__pyx_base.pool = __pyx_v_pool;
+0531: dataset.handle = handle
__pyx_v_dataset->__pyx_base.handle = __pyx_v_handle;
+0532: return dataset
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_dataset)); __pyx_r = ((PyObject *)__pyx_v_dataset); goto __pyx_L0;
0533:
+0534: def get_snapshot(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_18get_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_18get_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_snapshot (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_17get_snapshot(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_17get_snapshot(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name) { zfs_handle_t *__pyx_v_handle; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_snap = 0; char const *__pyx_v_c_name; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_snapshot", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.get_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pool); __Pyx_XDECREF((PyObject *)__pyx_v_snap); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0535: cdef libzfs.zfs_handle_t* handle = NULL
__pyx_v_handle = NULL;
0536: cdef ZFSPool pool
0537: cdef ZFSSnapshot snap
+0538: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 538, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
0539:
+0540: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0541: handle = libzfs.zfs_open(self.handle, c_name, zfs.ZFS_TYPE_SNAPSHOT)
__pyx_v_handle = zfs_open(__pyx_v_self->handle, __pyx_v_c_name, ZFS_TYPE_SNAPSHOT); }
0542:
+0543: if handle == NULL:
__pyx_t_2 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_2) { /* … */ }
+0544: raise ZFSException(Error.NOENT, 'Snapshot {0} not found'.format(name))
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Snapshot_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 544, __pyx_L1_error)
0545:
+0546: pool = ZFSPool.__new__(ZFSPool)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSPool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSPool)))) __PYX_ERR(1, 546, __pyx_L1_error) __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+0547: pool.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_pool->root); __Pyx_DECREF(((PyObject *)__pyx_v_pool->root)); __pyx_v_pool->root = __pyx_v_self;
+0548: pool.free = False
__pyx_v_pool->free = 0;
+0549: pool.handle = libzfs.zfs_get_pool_handle(handle)
__pyx_v_pool->handle = zfs_get_pool_handle(__pyx_v_handle);
+0550: snap = ZFSSnapshot.__new__(ZFSSnapshot)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSSnapshot(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSSnapshot), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSSnapshot)))) __PYX_ERR(1, 550, __pyx_L1_error) __pyx_v_snap = ((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_t_3); __pyx_t_3 = 0;
+0551: snap.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_snap->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_v_snap->__pyx_base.root)); __pyx_v_snap->__pyx_base.root = __pyx_v_self;
+0552: snap.pool = pool
__Pyx_INCREF(((PyObject *)__pyx_v_pool)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pool)); __Pyx_GOTREF(__pyx_v_snap->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_v_snap->__pyx_base.pool)); __pyx_v_snap->__pyx_base.pool = __pyx_v_pool;
+0553: snap.handle = handle
__pyx_v_snap->__pyx_base.handle = __pyx_v_handle;
+0554: return snap
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_snap)); __pyx_r = ((PyObject *)__pyx_v_snap); goto __pyx_L0;
0555:
+0556: def get_object(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_20get_object(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_20get_object(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_object (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_19get_object(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_19get_object(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_v_err = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_object", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("libzfs.ZFS.get_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_err); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0557: try:
{ /*try:*/ { /* … */ } __pyx_L3_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; __pyx_L6_except_return:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; }
+0558: return self.get_dataset(name)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_dataset); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 558, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (!__pyx_t_6) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 558, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 558, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_name); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 558, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L7_try_return;
+0559: except ZFSException as err:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 559, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("libzfs.ZFS.get_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(1, 559, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_v_err = __pyx_t_5;
+0560: if err.code == Error.NOENT:
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_err, __pyx_n_s_code); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 560, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 560, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 560, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_RichCompare(__pyx_t_6, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 560, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(1, 560, __pyx_L5_except_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_11) { /* … */ }
+0561: return self.get_snapshot(name)
__Pyx_XDECREF(__pyx_r); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_snapshot); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 561, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } if (!__pyx_t_6) { __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 561, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); } else { __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 561, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_v_name); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 561, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_except_return;
0562:
+0563: raise err
__Pyx_Raise(__pyx_v_err, 0, 0, 0);
__PYX_ERR(1, 563, __pyx_L5_except_error)
}
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
0564:
+0565: def get_dataset_by_path(self, path):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_22get_dataset_by_path(PyObject *__pyx_v_self, PyObject *__pyx_v_path); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_22get_dataset_by_path(PyObject *__pyx_v_self, PyObject *__pyx_v_path) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_dataset_by_path (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_21get_dataset_by_path(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_path)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_21get_dataset_by_path(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_path) { zfs_handle_t *__pyx_v_handle; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_dataset = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_dataset_by_path", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.get_dataset_by_path", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_pool); __Pyx_XDECREF((PyObject *)__pyx_v_dataset); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0566: cdef libzfs.zfs_handle_t* handle = libzfs.zfs_path_to_zhandle(self.handle, path, zfs.ZFS_TYPE_DATASET)
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_path); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 566, __pyx_L1_error) __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_zfs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ZFS_TYPE_DATASET); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_handle = zfs_path_to_zhandle(__pyx_v_self->handle, __pyx_t_1, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0567: cdef ZFSPool pool
0568: cdef ZFSDataset dataset
+0569: if handle == NULL:
__pyx_t_4 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_4) { /* … */ }
+0570: raise ZFSException(Error.NOENT, 'Dataset with path {0} not found'.format(path))
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Dataset_with_path_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_path); __Pyx_GIVEREF(__pyx_v_path); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_path); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 570, __pyx_L1_error)
0571:
+0572: pool = ZFSPool.__new__(ZFSPool)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSPool(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPool), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSPool)))) __PYX_ERR(1, 572, __pyx_L1_error) __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+0573: pool.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_pool->root); __Pyx_DECREF(((PyObject *)__pyx_v_pool->root)); __pyx_v_pool->root = __pyx_v_self;
+0574: pool.free = False
__pyx_v_pool->free = 0;
+0575: pool.handle = libzfs.zfs_get_pool_handle(handle)
__pyx_v_pool->handle = zfs_get_pool_handle(__pyx_v_handle);
+0576: dataset = ZFSDataset.__new__(ZFSDataset)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSDataset(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSDataset), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSDataset)))) __PYX_ERR(1, 576, __pyx_L1_error) __pyx_v_dataset = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_3); __pyx_t_3 = 0;
+0577: dataset.root = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.root)); __pyx_v_dataset->__pyx_base.root = __pyx_v_self;
+0578: dataset.pool = pool
__Pyx_INCREF(((PyObject *)__pyx_v_pool)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pool)); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.pool)); __pyx_v_dataset->__pyx_base.pool = __pyx_v_pool;
+0579: dataset.handle = handle
__pyx_v_dataset->__pyx_base.handle = __pyx_v_handle;
+0580: return dataset
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_dataset)); __pyx_r = ((PyObject *)__pyx_v_dataset); goto __pyx_L0;
0581:
+0582: def create(self, name, topology, opts, fsopts):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_24create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_24create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_topology = 0; PyObject *__pyx_v_opts = 0; PyObject *__pyx_v_fsopts = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_topology,&__pyx_n_s_opts,&__pyx_n_s_fsopts,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_topology)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 1); __PYX_ERR(1, 582, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_opts)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 2); __PYX_ERR(1, 582, __pyx_L3_error) } case 3: if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fsopts)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 3); __PYX_ERR(1, 582, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(1, 582, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_name = values[0]; __pyx_v_topology = values[1]; __pyx_v_opts = values[2]; __pyx_v_fsopts = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 582, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS_23create(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_name, __pyx_v_topology, __pyx_v_opts, __pyx_v_fsopts); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_23create(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_topology, PyObject *__pyx_v_opts, PyObject *__pyx_v_fsopts) { struct __pyx_obj_6libzfs_NVList *__pyx_v_root = 0; struct __pyx_obj_6libzfs_NVList *__pyx_v_copts = 0; struct __pyx_obj_6libzfs_NVList *__pyx_v_cfsopts = 0; char const *__pyx_v_c_name; int __pyx_v_ret; PyObject *__pyx_v_hopts = NULL; PyObject *__pyx_v_hfsopts = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_root); __Pyx_XDECREF((PyObject *)__pyx_v_copts); __Pyx_XDECREF((PyObject *)__pyx_v_cfsopts); __Pyx_XDECREF(__pyx_v_hopts); __Pyx_XDECREF(__pyx_v_hfsopts); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0583: cdef NVList root = self.make_vdev_tree(topology).nvlist
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_vtab)->make_vdev_tree(__pyx_v_self, __pyx_v_topology)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_1)->nvlist); __Pyx_INCREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_root = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+0584: cdef NVList copts = NVList(otherdict=opts)
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_otherdict, __pyx_v_opts) < 0) __PYX_ERR(1, 584, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_copts = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
+0585: cdef NVList cfsopts = NVList(otherdict=fsopts)
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_otherdict, __pyx_v_fsopts) < 0) __PYX_ERR(1, 585, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cfsopts = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+0586: cdef const char *c_name = name
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(1, 586, __pyx_L1_error) __pyx_v_c_name = __pyx_t_3;
0587: cdef int ret
0588:
+0589: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0590: ret = libzfs.zpool_create(
__pyx_v_ret = zpool_create(__pyx_v_self->handle, __pyx_v_c_name, __pyx_v_root->handle, __pyx_v_copts->handle, __pyx_v_cfsopts->handle); }
0591: self.handle,
0592: c_name,
0593: root.handle,
0594: copts.handle,
0595: cfsopts.handle
0596: )
0597:
+0598: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+0599: raise ZFSException(self.errno, self.errstr)
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errstr); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 599, __pyx_L1_error)
0600:
+0601: if self.history:
__pyx_t_4 = (__pyx_v_self->history != 0); if (__pyx_t_4) { /* … */ }
+0602: hopts = self.generate_history_opts(opts, '-o')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_generate_history_opts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_opts); __Pyx_GIVEREF(__pyx_v_opts); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_opts); __Pyx_INCREF(__pyx_kp_s_o); __Pyx_GIVEREF(__pyx_kp_s_o); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_kp_s_o); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_hopts = __pyx_t_2; __pyx_t_2 = 0;
+0603: hfsopts = self.generate_history_opts(fsopts, '-O')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_generate_history_opts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_fsopts); __Pyx_GIVEREF(__pyx_v_fsopts); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_fsopts); __Pyx_INCREF(__pyx_kp_s_O); __Pyx_GIVEREF(__pyx_kp_s_O); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_s_O); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_hfsopts = __pyx_t_2; __pyx_t_2 = 0;
+0604: self.write_history(
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_write_history); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
0605: 'zpool create',
0606: hopts,
0607: hfsopts,
0608: name,
+0609: self.history_vdevs_list(topology)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_history_vdevs_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } if (!__pyx_t_5) { __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_topology); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_topology); __Pyx_GIVEREF(__pyx_v_topology); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_topology); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_7 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_create); __Pyx_GIVEREF(__pyx_kp_s_zpool_create); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_kp_s_zpool_create); __Pyx_INCREF(__pyx_v_hopts); __Pyx_GIVEREF(__pyx_v_hopts); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_hopts); __Pyx_INCREF(__pyx_v_hfsopts); __Pyx_GIVEREF(__pyx_v_hfsopts); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_v_hfsopts); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_name); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0610: )
0611:
+0612: return self.get(name)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_7) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0613:
+0614: def destroy(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_26destroy(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_26destroy(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_25destroy(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_25destroy(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name) { zpool_handle_t *__pyx_v_handle; char const *__pyx_v_c_name; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0615: cdef libzfs.zpool_handle_t* handle
+0616: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 616, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
0617:
+0618: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0619: handle = libzfs.zpool_open(self.handle, c_name)
__pyx_v_handle = zpool_open(__pyx_v_self->handle, __pyx_v_c_name); }
0620:
+0621: if handle == NULL:
__pyx_t_2 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_2) { /* … */ }
+0622: raise ZFSException(Error.NOENT, 'Pool {0} not found'.format(name))
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOENT); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Pool_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_name); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 622, __pyx_L1_error)
0623:
+0624: if libzfs.zpool_destroy(handle, "destroy") != 0:
__pyx_t_2 = ((zpool_destroy(__pyx_v_handle, ((char const *)"destroy")) != 0) != 0); if (__pyx_t_2) { /* … */ }
+0625: raise ZFSException(self.errno, self.errstr)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errstr); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_10, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_10, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 625, __pyx_L1_error)
0626:
+0627: def receive(self, name, fd, force=False, nomount=False, resumable=False, props=None, limitds=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_28receive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_28receive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_fd = 0; PyObject *__pyx_v_force = 0; PyObject *__pyx_v_nomount = 0; PyObject *__pyx_v_resumable = 0; PyObject *__pyx_v_props = 0; PyObject *__pyx_v_limitds = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("receive (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_fd,&__pyx_n_s_force,&__pyx_n_s_nomount,&__pyx_n_s_resumable,&__pyx_n_s_props,&__pyx_n_s_limitds,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; values[2] = ((PyObject *)Py_False); values[3] = ((PyObject *)Py_False); values[4] = ((PyObject *)Py_False); values[5] = ((PyObject *)Py_None); values[6] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("receive", 0, 2, 7, 1); __PYX_ERR(1, 627, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nomount); if (value) { values[3] = value; kw_args--; } } case 4: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_resumable); if (value) { values[4] = value; kw_args--; } } case 5: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_props); if (value) { values[5] = value; kw_args--; } } case 6: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_limitds); if (value) { values[6] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "receive") < 0)) __PYX_ERR(1, 627, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_fd = values[1]; __pyx_v_force = values[2]; __pyx_v_nomount = values[3]; __pyx_v_resumable = values[4]; __pyx_v_props = values[5]; __pyx_v_limitds = values[6]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("receive", 0, 2, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 627, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.receive", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS_27receive(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_name, __pyx_v_fd, __pyx_v_force, __pyx_v_nomount, __pyx_v_resumable, __pyx_v_props, __pyx_v_limitds); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_27receive(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_fd, PyObject *__pyx_v_force, PyObject *__pyx_v_nomount, PyObject *__pyx_v_resumable, PyObject *__pyx_v_props, PyObject *__pyx_v_limitds) { libzfs_handle_t *__pyx_v_handle; recvflags_t __pyx_v_flags; struct __pyx_obj_6libzfs_NVList *__pyx_v_props_nvl = 0; struct __pyx_obj_6libzfs_NVList *__pyx_v_limitds_nvl = 0; nvlist_t *__pyx_v_c_props_nvl; nvlist_t *__pyx_v_c_limitds_nvl; char const *__pyx_v_c_name; int __pyx_v_c_fd; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("receive", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFS.receive", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_props_nvl); __Pyx_XDECREF((PyObject *)__pyx_v_limitds_nvl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0628: cdef libzfs.libzfs_handle_t *handle = self.handle,
__pyx_t_1 = __pyx_v_self->handle; __pyx_v_handle = __pyx_t_1;
0629: cdef libzfs.recvflags_t flags;
+0630: cdef NVList props_nvl = None
__Pyx_INCREF(Py_None);
__pyx_v_props_nvl = ((struct __pyx_obj_6libzfs_NVList *)Py_None);
+0631: cdef NVList limitds_nvl = None
__Pyx_INCREF(Py_None);
__pyx_v_limitds_nvl = ((struct __pyx_obj_6libzfs_NVList *)Py_None);
+0632: cdef nvpair.nvlist_t *c_props_nvl = NULL
__pyx_v_c_props_nvl = NULL;
+0633: cdef nvpair.nvlist_t *c_limitds_nvl = NULL
__pyx_v_c_limitds_nvl = NULL;
+0634: cdef const char *c_name = name
__pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(1, 634, __pyx_L1_error) __pyx_v_c_name = __pyx_t_2;
+0635: cdef int c_fd = fd
__pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 635, __pyx_L1_error) __pyx_v_c_fd = __pyx_t_3;
0636: cdef int ret
0637:
+0638: memset(&flags, 0, sizeof(libzfs.recvflags_t))
memset((&__pyx_v_flags), 0, (sizeof(recvflags_t)));
0639:
+0640: if force:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 640, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+0641: flags.force = True
__pyx_v_flags.force = 1;
0642:
+0643: if nomount:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_nomount); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 643, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+0644: flags.nomount = True
__pyx_v_flags.nomount = 1;
0645:
0646: IF FREEBSD_VERSION >= 1003000:
+0647: if resumable:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_resumable); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 647, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+0648: flags.resumable = True
__pyx_v_flags.resumable = 1;
0649:
0650: IF TRUEOS:
+0651: if props:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_props); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 651, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+0652: props_nvl = NVList(otherdict=props)
__pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_otherdict, __pyx_v_props) < 0) __PYX_ERR(1, 652, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_props_nvl, ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_6)); __pyx_t_6 = 0;
+0653: c_props_nvl = props_nvl.handle
__pyx_t_7 = __pyx_v_props_nvl->handle; __pyx_v_c_props_nvl = __pyx_t_7;
0654:
+0655: if limitds:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_limitds); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 655, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+0656: limitds_nvl = NVList(otherdict=limitds)
__pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_otherdict, __pyx_v_limitds) < 0) __PYX_ERR(1, 656, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_limitds_nvl, ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_5)); __pyx_t_5 = 0;
+0657: c_limitds_nvl = limitds_nvl.handle
__pyx_t_7 = __pyx_v_limitds_nvl->handle; __pyx_v_c_limitds_nvl = __pyx_t_7;
0658:
+0659: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } }
+0660: ret = libzfs.zfs_receive(
__pyx_v_ret = zfs_receive(__pyx_v_handle, __pyx_v_c_name, (&__pyx_v_flags), __pyx_v_c_fd, __pyx_v_c_props_nvl, __pyx_v_c_limitds_nvl, NULL); }
0661: handle,
0662: c_name,
0663: &flags,
0664: c_fd,
0665: c_props_nvl,
0666: c_limitds_nvl,
0667: NULL
0668: )
0669: ELSE:
0670: if props:
0671: props_nvl = NVList(otherdict=props)
0672: c_props_nvl = props_nvl.handle
0673:
0674: with nogil:
0675: IF FREEBSD_VERSION > 1002000:
0676: ret = libzfs.zfs_receive(handle, c_name, c_props_nvl, &flags, c_fd, NULL)
0677: ELSE:
0678: ret = libzfs.zfs_receive(handle, c_name, c_props_nvl, &flags, c_fd)
0679:
+0680: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+0681: raise self.get_error()
__pyx_t_5 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_vtab)->get_error(__pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 681, __pyx_L1_error)
0682:
+0683: def write_history(self, *args):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_30write_history(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_30write_history(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_args = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("write_history (wrapper)", 0); if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "write_history", 0))) return NULL; __Pyx_INCREF(__pyx_args); __pyx_v_args = __pyx_args; __pyx_r = __pyx_pf_6libzfs_3ZFS_29write_history(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_args); /* function exit code */ __Pyx_XDECREF(__pyx_v_args); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ static PyObject *__pyx_pf_6libzfs_3ZFS_29write_history(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_args) { struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_cur_scope; char const *__pyx_v_c_message; PyObject *__pyx_v_history_message = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("write_history", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *)__pyx_tp_new_6libzfs___pyx_scope_struct_6_write_history(__pyx_ptype_6libzfs___pyx_scope_struct_6_write_history, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFS.write_history", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_history_message); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history { PyObject_HEAD PyObject *__pyx_v_arg; PyObject *__pyx_v_eval_arg; PyObject *__pyx_v_eval_dict; PyObject *__pyx_v_eval_list; PyObject *__pyx_v_eval_str; PyObject *__pyx_v_eval_tuple; PyObject *__pyx_v_eval_zfsvdev; };
0684: cdef const char *c_message
0685:
+0686: history_message = ""
__Pyx_INCREF(__pyx_kp_s__11);
__pyx_v_history_message = __pyx_kp_s__11;
0687:
+0688: def eval_arg(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_1eval_arg(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_1eval_arg = {"eval_arg", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_1eval_arg, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_1eval_arg(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_arg (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(PyObject *__pyx_self, PyObject *__pyx_v_argument) { struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_outer_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_arg", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_arg", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_argument); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_1eval_arg, 0, __pyx_n_s_write_history_locals_eval_arg, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_arg = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_arg, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(1, 688, __pyx_L1_error)
+0689: if isinstance(argument, str):
__pyx_t_1 = PyString_Check(__pyx_v_argument);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0690: return eval_str(argument)
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_eval_str)) { __Pyx_RaiseClosureNameError("eval_str"); __PYX_ERR(1, 690, __pyx_L1_error) } __pyx_t_3 = __pyx_pf_6libzfs_3ZFS_13write_history_2eval_str(__pyx_cur_scope->__pyx_v_eval_str, __pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+0691: if isinstance(argument, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_argument);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+0692: return eval_dict(argument)
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_eval_dict)) { __Pyx_RaiseClosureNameError("eval_dict"); __PYX_ERR(1, 692, __pyx_L1_error) } __pyx_t_3 = __pyx_pf_6libzfs_3ZFS_13write_history_4eval_dict(__pyx_cur_scope->__pyx_v_eval_dict, __pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+0693: if isinstance(argument, tuple):
__pyx_t_1 = PyTuple_Check(__pyx_v_argument);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0694: return eval_tuple(argument)
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_eval_tuple)) { __Pyx_RaiseClosureNameError("eval_tuple"); __PYX_ERR(1, 694, __pyx_L1_error) } __pyx_t_3 = __pyx_pf_6libzfs_3ZFS_13write_history_6eval_tuple(__pyx_cur_scope->__pyx_v_eval_tuple, __pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+0695: if isinstance(argument, list):
__pyx_t_2 = PyList_Check(__pyx_v_argument);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+0696: return eval_list(argument)
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_eval_list)) { __Pyx_RaiseClosureNameError("eval_list"); __PYX_ERR(1, 696, __pyx_L1_error) } __pyx_t_3 = __pyx_pf_6libzfs_3ZFS_13write_history_8eval_list(__pyx_cur_scope->__pyx_v_eval_list, __pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+0697: if isinstance(argument, ZFSVdev):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_argument, __pyx_ptype_6libzfs_ZFSVdev);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0698: return eval_zfsvdev(argument)
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_eval_zfsvdev)) { __Pyx_RaiseClosureNameError("eval_zfsvdev"); __PYX_ERR(1, 698, __pyx_L1_error) } __pyx_t_3 = __pyx_pf_6libzfs_3ZFS_13write_history_10eval_zfsvdev(__pyx_cur_scope->__pyx_v_eval_zfsvdev, __pyx_v_argument); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0699:
+0700: def eval_str(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_3eval_str(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_3eval_str = {"eval_str", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_3eval_str, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_3eval_str(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_str (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_2eval_str(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_2eval_str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_str", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_str", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_n_s_argument); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_3eval_str, 0, __pyx_n_s_write_history_locals_eval_str, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_str = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_str, 700, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 700, __pyx_L1_error)
+0701: return " " + argument
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyNumber_Add(__pyx_kp_s__13, __pyx_v_argument); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0702:
+0703: def eval_dict(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_5eval_dict(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_5eval_dict = {"eval_dict", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_5eval_dict, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_5eval_dict(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_dict (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_4eval_dict(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_4eval_dict(PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_argument) { struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_outer_scope; PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_tup = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_dict", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_dict", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_tup); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__19 = PyTuple_Pack(3, __pyx_n_s_argument, __pyx_n_s_out, __pyx_n_s_tup); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_5eval_dict, 0, __pyx_n_s_write_history_locals_eval_dict, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_dict = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_dict, 703, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(1, 703, __pyx_L1_error)
+0704: out = ""
__Pyx_INCREF(__pyx_kp_s__11);
__pyx_v_out = __pyx_kp_s__11;
+0705: for tup in arg.items():
if (unlikely(!__pyx_cur_scope->__pyx_v_arg)) { __Pyx_RaiseClosureNameError("arg"); __PYX_ERR(1, 705, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_arg, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 705, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 705, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 705, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 705, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_5(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 705, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_tup, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0706: out += eval_arg(tup)
if (unlikely(!__pyx_cur_scope->__pyx_v_eval_arg)) { __Pyx_RaiseClosureNameError("eval_arg"); __PYX_ERR(1, 706, __pyx_L1_error) } __pyx_t_1 = __pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(__pyx_cur_scope->__pyx_v_eval_arg, __pyx_v_tup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_out, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_out, __pyx_t_3); __pyx_t_3 = 0;
+0707: return out
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out); __pyx_r = __pyx_v_out; goto __pyx_L0;
0708:
+0709: def eval_tuple(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_7eval_tuple(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_7eval_tuple = {"eval_tuple", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_7eval_tuple, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_7eval_tuple(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_tuple (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_6eval_tuple(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_6eval_tuple(PyObject *__pyx_self, PyObject *__pyx_v_argument) { struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_outer_scope; PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_tuple", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_tuple", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__21 = PyTuple_Pack(3, __pyx_n_s_argument, __pyx_n_s_out, __pyx_n_s_i); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_7eval_tuple, 0, __pyx_n_s_write_history_locals_eval_tuple, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_tuple = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_tuple, 709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(1, 709, __pyx_L1_error)
+0710: if len(argument) == 2:
__pyx_t_1 = PyObject_Length(__pyx_v_argument); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(1, 710, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_1 == 2) != 0);
if (__pyx_t_2) {
/* … */
}
+0711: if isinstance(argument[1], str):
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_argument, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyString_Check(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = (__pyx_t_2 != 0); if (__pyx_t_4) { /* … */ }
+0712: return " " + str(argument[0]) + '=' + str(argument[1])
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_argument, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_kp_s__13, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_5, __pyx_kp_s__14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_argument, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
0713:
+0714: out = ""
__Pyx_INCREF(__pyx_kp_s__11);
__pyx_v_out = __pyx_kp_s__11;
+0715: for i in argument:
if (likely(PyList_CheckExact(__pyx_v_argument)) || PyTuple_CheckExact(__pyx_v_argument)) { __pyx_t_6 = __pyx_v_argument; __Pyx_INCREF(__pyx_t_6); __pyx_t_1 = 0; __pyx_t_7 = NULL; } else { __pyx_t_1 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_argument); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 715, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(1, 715, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(1, 715, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 715, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0716: out += eval_arg(i)
if (unlikely(!__pyx_cur_scope->__pyx_v_eval_arg)) { __Pyx_RaiseClosureNameError("eval_arg"); __PYX_ERR(1, 716, __pyx_L1_error) } __pyx_t_5 = __pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(__pyx_cur_scope->__pyx_v_eval_arg, __pyx_v_i); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_out, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_out, __pyx_t_3); __pyx_t_3 = 0;
+0717: return out
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out); __pyx_r = __pyx_v_out; goto __pyx_L0;
0718:
+0719: def eval_list(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_9eval_list(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_9eval_list = {"eval_list", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_9eval_list, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_9eval_list(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_list (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_8eval_list(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_8eval_list(PyObject *__pyx_self, PyObject *__pyx_v_argument) { struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *__pyx_outer_scope; PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_list", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_6_write_history *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__23 = PyTuple_Pack(3, __pyx_n_s_argument, __pyx_n_s_out, __pyx_n_s_i); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_9eval_list, 0, __pyx_n_s_write_history_locals_eval_list, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_list = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_list, 719, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(1, 719, __pyx_L1_error)
+0720: out = ""
__Pyx_INCREF(__pyx_kp_s__11);
__pyx_v_out = __pyx_kp_s__11;
+0721: for i in argument:
if (likely(PyList_CheckExact(__pyx_v_argument)) || PyTuple_CheckExact(__pyx_v_argument)) { __pyx_t_1 = __pyx_v_argument; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_argument); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 721, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 721, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 721, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 721, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0722: out += eval_arg(i)
if (unlikely(!__pyx_cur_scope->__pyx_v_eval_arg)) { __Pyx_RaiseClosureNameError("eval_arg"); __PYX_ERR(1, 722, __pyx_L1_error) } __pyx_t_4 = __pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(__pyx_cur_scope->__pyx_v_eval_arg, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_out, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_out, __pyx_t_5); __pyx_t_5 = 0;
+0723: return out
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out); __pyx_r = __pyx_v_out; goto __pyx_L0;
0724:
+0725: def eval_zfsvdev(argument):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_11eval_zfsvdev(PyObject *__pyx_self, PyObject *__pyx_v_argument); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_3ZFS_13write_history_11eval_zfsvdev = {"eval_zfsvdev", (PyCFunction)__pyx_pw_6libzfs_3ZFS_13write_history_11eval_zfsvdev, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_3ZFS_13write_history_11eval_zfsvdev(PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_zfsvdev (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_13write_history_10eval_zfsvdev(__pyx_self, ((PyObject *)__pyx_v_argument)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_13write_history_10eval_zfsvdev(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_argument) { PyObject *__pyx_v_disks = NULL; PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_disk = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("eval_zfsvdev", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFS.write_history.eval_zfsvdev", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_disks); __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_disk); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_argument, __pyx_n_s_disks, __pyx_n_s_out, __pyx_n_s_disk); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_3ZFS_13write_history_11eval_zfsvdev, 0, __pyx_n_s_write_history_locals_eval_zfsvde, NULL, __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_eval_zfsvdev = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_eval_zfsvdev, 725, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(1, 725, __pyx_L1_error)
+0726: disks = argument.disks
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_argument, __pyx_n_s_disks); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_disks = __pyx_t_1; __pyx_t_1 = 0;
+0727: if len(disks):
__pyx_t_2 = PyObject_Length(__pyx_v_disks); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 727, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+0728: out = " " + str(argument.type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_argument, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_kp_s__13, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_out = __pyx_t_4; __pyx_t_4 = 0;
+0729: for disk in disks:
if (likely(PyList_CheckExact(__pyx_v_disks)) || PyTuple_CheckExact(__pyx_v_disks)) { __pyx_t_4 = __pyx_v_disks; __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = 0; __pyx_t_5 = NULL; } else { __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_disks); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 729, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 729, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 729, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 729, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_disk, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0730: out += " " + disk
__pyx_t_1 = PyNumber_Add(__pyx_kp_s__13, __pyx_v_disk); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_out, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_out, __pyx_t_6); __pyx_t_6 = 0;
+0731: return out
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out); __pyx_r = __pyx_v_out; goto __pyx_L0;
0732: else:
+0733: return ""
/*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_s__11); __pyx_r = __pyx_kp_s__11; goto __pyx_L0; }
0734:
+0735: if self.history:
__pyx_t_2 = (__pyx_v_self->history != 0); if (__pyx_t_2) { /* … */ }
+0736: history_message = self.history_prefix
__pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_self->history_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_history_message, __pyx_t_1); __pyx_t_1 = 0;
+0737: for arg in args:
__pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0; for (;;) { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 737, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_arg); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_arg, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0738: history_message += eval_arg(arg)
__pyx_t_4 = __pyx_cur_scope->__pyx_v_arg; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = __pyx_pf_6libzfs_3ZFS_13write_history_eval_arg(__pyx_cur_scope->__pyx_v_eval_arg, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_history_message, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_history_message, __pyx_t_4); __pyx_t_4 = 0;
0739:
+0740: c_message = history_message
__pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_history_message); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(1, 740, __pyx_L1_error) __pyx_v_c_message = __pyx_t_6;
0741:
+0742: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L8; } __pyx_L8:; } }
+0743: libzfs.zpool_log_history(self.handle, c_message)
zpool_log_history(__pyx_v_self->handle, __pyx_v_c_message); }
0744:
+0745: def generate_history_opts(self, opt_dict, prefix):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_32generate_history_opts(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_32generate_history_opts(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_opt_dict = 0; PyObject *__pyx_v_prefix = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("generate_history_opts (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opt_dict,&__pyx_n_s_prefix,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_opt_dict)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("generate_history_opts", 1, 2, 2, 1); __PYX_ERR(1, 745, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "generate_history_opts") < 0)) __PYX_ERR(1, 745, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_opt_dict = values[0]; __pyx_v_prefix = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("generate_history_opts", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 745, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.generate_history_opts", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS_31generate_history_opts(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_opt_dict, __pyx_v_prefix); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_31generate_history_opts(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_opt_dict, PyObject *__pyx_v_prefix) { PyObject *__pyx_v_keys = NULL; PyObject *__pyx_v_out_dict = NULL; PyObject *__pyx_v_key = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("generate_history_opts", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.generate_history_opts", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_keys); __Pyx_XDECREF(__pyx_v_out_dict); __Pyx_XDECREF(__pyx_v_key); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0746: keys = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0747: out_dict = {}
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_out_dict = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0748: if isinstance(opt_dict, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_opt_dict);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
/* … */
}
+0749: for key in opt_dict.keys():
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_opt_dict, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (__pyx_t_5) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 749, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 749, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 749, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 749, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 749, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0750: keys.append(key)
__pyx_t_8 = __Pyx_PyList_Append(__pyx_v_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(1, 750, __pyx_L1_error)
0751:
+0752: for key in keys:
__pyx_t_4 = __pyx_v_keys; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; for (;;) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 752, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0753: out_dict[prefix + ' ' + key] = opt_dict[key]
__pyx_t_1 = PyObject_GetItem(__pyx_v_opt_dict, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Add(__pyx_v_prefix, __pyx_kp_s__13); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyNumber_Add(__pyx_t_5, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(PyDict_SetItem(__pyx_v_out_dict, __pyx_t_9, __pyx_t_1) < 0)) __PYX_ERR(1, 753, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0754:
+0755: return out_dict
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out_dict); __pyx_r = __pyx_v_out_dict; goto __pyx_L0;
0756:
+0757: def history_vdevs_list(self, topology):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_34history_vdevs_list(PyObject *__pyx_v_self, PyObject *__pyx_v_topology); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_34history_vdevs_list(PyObject *__pyx_v_self, PyObject *__pyx_v_topology) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("history_vdevs_list (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_33history_vdevs_list(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_topology)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_33history_vdevs_list(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_topology) { PyObject *__pyx_v_out = NULL; PyObject *__pyx_v_data_vdevs = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("history_vdevs_list", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFS.history_vdevs_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_out); __Pyx_XDECREF(__pyx_v_data_vdevs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0758: out = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_out = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0759: if self.history:
__pyx_t_2 = (__pyx_v_self->history != 0); if (__pyx_t_2) { /* … */ }
+0760: data_vdevs = topology.get('data', None)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_data_vdevs = __pyx_t_3; __pyx_t_3 = 0; /* … */ __pyx_tuple__27 = PyTuple_Pack(2, __pyx_n_s_data, Py_None); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27);
+0761: if data_vdevs:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_data_vdevs); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 761, __pyx_L1_error)
if (__pyx_t_2) {
/* … */
}
+0762: if data_vdevs[0].type == 'disk':
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_data_vdevs, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0763: data_vdevs = data_vdevs[0].disks[0]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_data_vdevs, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_disks); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_data_vdevs, __pyx_t_1); __pyx_t_1 = 0;
0764:
+0765: out.append(data_vdevs)
__pyx_t_4 = __Pyx_PyList_Append(__pyx_v_out, __pyx_v_data_vdevs); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 765, __pyx_L1_error)
0766:
+0767: if topology.get('cache', False):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { /* … */ __pyx_tuple__28 = PyTuple_Pack(2, __pyx_n_s_cache, Py_False); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* … */ }
+0768: out.append('cache')
__pyx_t_4 = __Pyx_PyList_Append(__pyx_v_out, __pyx_n_s_cache); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 768, __pyx_L1_error)
+0769: out.append(topology.get('cache'))
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_out, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 769, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_n_s_cache); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(1, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29);
0770:
+0771: if topology.get('log', False):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { /* … */ __pyx_tuple__30 = PyTuple_Pack(2, __pyx_n_s_log, Py_False); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(1, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* … */ }
+0772: out.append('log')
__pyx_t_4 = __Pyx_PyList_Append(__pyx_v_out, __pyx_n_s_log); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 772, __pyx_L1_error)
+0773: out.append(topology.get('log'))
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_topology, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_out, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 773, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_log); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(1, 773, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31);
0774:
+0775: return out
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_out); __pyx_r = __pyx_v_out; goto __pyx_L0;
0776:
0777: IF FREEBSD_VERSION >= 1003000:
+0778: def send_resume(self, fd, token, flags=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_36send_resume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_36send_resume(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fd = 0; PyObject *__pyx_v_token = 0; PyObject *__pyx_v_flags = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send_resume (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd,&__pyx_n_s_token,&__pyx_n_s_flags,0}; PyObject* values[3] = {0,0,0}; values[2] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_token)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("send_resume", 0, 2, 3, 1); __PYX_ERR(1, 778, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "send_resume") < 0)) __PYX_ERR(1, 778, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_fd = values[0]; __pyx_v_token = values[1]; __pyx_v_flags = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("send_resume", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 778, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFS.send_resume", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_3ZFS_35send_resume(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), __pyx_v_fd, __pyx_v_token, __pyx_v_flags); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_35send_resume(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_fd, PyObject *__pyx_v_token, PyObject *__pyx_v_flags) { sendflags_t __pyx_v_cflags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send_resume", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.ZFS.send_resume", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0779: cdef libzfs.sendflags_t cflags
0780:
+0781: memset(&cflags, 0, cython.sizeof(libzfs.sendflags_t))
memset((&__pyx_v_cflags), 0, (sizeof(sendflags_t)));
0782:
+0783: if flags:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flags); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 783, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+0784: convert_sendflags(flags, &cflags)
__pyx_t_2 = __pyx_f_6libzfs_convert_sendflags(__pyx_v_flags, (&__pyx_v_cflags)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0785:
+0786: if libzfs.zfs_send_resume(self.handle, &cflags, fd, token) != 0:
__pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 786, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_token); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 786, __pyx_L1_error) __pyx_t_1 = ((zfs_send_resume(__pyx_v_self->handle, (&__pyx_v_cflags), __pyx_t_3, __pyx_t_4) != 0) != 0); if (__pyx_t_1) { /* … */ }
+0787: raise ZFSException(self.errno, self.errstr)
__pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errstr); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 787, __pyx_L1_error)
0788:
+0789: def describe_resume_token(self, token):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_3ZFS_38describe_resume_token(PyObject *__pyx_v_self, PyObject *__pyx_v_token); /*proto*/ static PyObject *__pyx_pw_6libzfs_3ZFS_38describe_resume_token(PyObject *__pyx_v_self, PyObject *__pyx_v_token) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("describe_resume_token (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_3ZFS_37describe_resume_token(((struct __pyx_obj_6libzfs_ZFS *)__pyx_v_self), ((PyObject *)__pyx_v_token)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_3ZFS_37describe_resume_token(struct __pyx_obj_6libzfs_ZFS *__pyx_v_self, PyObject *__pyx_v_token) { nvlist_t *__pyx_v_nvl; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("describe_resume_token", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFS.describe_resume_token", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0790: cdef nvpair.nvlist_t *nvl
0791:
+0792: nvl = libzfs.zfs_send_resume_token_to_nvlist(self.handle, token)
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_token); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 792, __pyx_L1_error) __pyx_v_nvl = zfs_send_resume_token_to_nvlist(__pyx_v_self->handle, __pyx_t_1);
+0793: if nvl == NULL:
__pyx_t_2 = ((__pyx_v_nvl == NULL) != 0); if (__pyx_t_2) { /* … */ }
+0794: raise ZFSException(self.errno, self.errstr)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errno); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errstr); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 794, __pyx_L1_error)
0795:
+0796: return dict(NVList(<uintptr_t>nvl))
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_nvl)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0797:
0798:
+0799: cdef class ZPoolProperty(object):
struct __pyx_obj_6libzfs_ZPoolProperty { PyObject_HEAD int propid; struct __pyx_obj_6libzfs_ZFSPool *pool; };
0800: cdef int propid
+0801: cdef readonly ZFSPool pool
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_4pool_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_4pool_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_4pool___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_4pool___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->pool)); __pyx_r = ((PyObject *)__pyx_v_self->pool); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0802:
+0803: def __init__(self):
/* Python wrapper */ static int __pyx_pw_6libzfs_13ZPoolProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_13ZPoolProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty___init__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_13ZPoolProperty___init__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolProperty.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0804: raise RuntimeError('ZPoolProperty cannot be instantiated by the user')
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 804, __pyx_L1_error) /* … */ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_ZPoolProperty_cannot_be_instanti); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(1, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32);
0805:
+0806: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_2__getstate__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_2__getstate__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolProperty.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0807: return {
__Pyx_XDECREF(__pyx_r);
+0808: 'value': self.value,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_t_2) < 0) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0809: 'rawvalue': self.rawvalue,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rawvalue); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rawvalue, __pyx_t_2) < 0) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0810: 'parsed': self.parsed,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parsed); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parsed, __pyx_t_2) < 0) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0811: 'source': self.source.name
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_source, __pyx_t_3) < 0) __PYX_ERR(1, 808, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0812: }
0813:
+0814: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_5__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_5__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_4__str__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_4__str__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolProperty.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0815: return "<libzfs.ZPoolProperty name '{0}' value '{1}'>".format(self.name, self.value)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZPoolProperty_name_0_val, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0816:
+0817: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_7__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_7__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_6__repr__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_6__repr__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZPoolProperty.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0818: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0819:
0820: property name:
+0821: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_4name___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_4name___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolProperty.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0822: return libzfs.zpool_prop_to_name(self.propid)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(zpool_prop_to_name(__pyx_v_self->propid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0823:
0824: property value:
+0825: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_5value_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_5value___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_5value___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { char __pyx_v_cstr[ZPOOL_MAXPROPLEN]; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZPoolProperty.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0826: cdef char cstr[libzfs.ZPOOL_MAXPROPLEN]
0827: cdef int ret
0828:
+0829: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0830: ret = libzfs.zpool_get_prop(self.pool.handle, self.propid, cstr, sizeof(cstr), NULL, False)
__pyx_v_ret = zpool_get_prop(__pyx_v_self->pool->handle, __pyx_v_self->propid, __pyx_v_cstr, (sizeof(__pyx_v_cstr)), NULL, 0); }
0831:
+0832: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+0833: return '-'
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_s__3); __pyx_r = __pyx_kp_s__3; goto __pyx_L0;
0834:
+0835: return cstr
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_FromString(__pyx_v_cstr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0836:
+0837: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_13ZPoolProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_13ZPoolProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_5value_2__set__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_13ZPoolProperty_5value_2__set__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self, PyObject *__pyx_v_value) { char const *__pyx_v_c_name; char const *__pyx_v_c_value; int __pyx_v_ret; PyObject *__pyx_v_name = NULL; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.ZPoolProperty.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_name); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0838: cdef const char *c_name
+0839: cdef const char *c_value = value
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 839, __pyx_L1_error) __pyx_v_c_value = __pyx_t_1;
0840: cdef int ret
0841:
+0842: name = self.name
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_name = __pyx_t_2; __pyx_t_2 = 0;
+0843: c_name = name
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(1, 843, __pyx_L1_error) __pyx_v_c_name = __pyx_t_3;
0844:
+0845: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0846: ret = libzfs.zpool_set_prop(self.pool.handle, c_name, c_value)
__pyx_v_ret = zpool_set_prop(__pyx_v_self->pool->handle, __pyx_v_c_name, __pyx_v_c_value); }
0847:
+0848: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+0849: raise self.pool.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->pool->root->__pyx_vtab)->get_error(__pyx_v_self->pool->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 849, __pyx_L1_error)
0850:
+0851: self.pool.root.write_history('zpool set', (self.name, str(value)), self.pool.name)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pool->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_value); __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = NULL; __pyx_t_9 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_9 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_set); __Pyx_GIVEREF(__pyx_kp_s_zpool_set); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_kp_s_zpool_set); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0852:
0853: property rawvalue:
+0854: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_8rawvalue_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_8rawvalue_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_8rawvalue___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_8rawvalue___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { char __pyx_v_cstr[ZPOOL_MAXPROPLEN]; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZPoolProperty.rawvalue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0855: cdef char cstr[libzfs.ZPOOL_MAXPROPLEN]
0856: cdef int ret
0857:
+0858: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0859: ret = libzfs.zpool_get_prop(self.pool.handle, self.propid, cstr, sizeof(cstr), NULL, True)
__pyx_v_ret = zpool_get_prop(__pyx_v_self->pool->handle, __pyx_v_self->propid, __pyx_v_cstr, (sizeof(__pyx_v_cstr)), NULL, 1); }
0860:
+0861: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+0862: return '-'
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_s__3); __pyx_r = __pyx_kp_s__3; goto __pyx_L0;
0863:
+0864: return cstr
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_FromString(__pyx_v_cstr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0865:
0866: property source:
+0867: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_6source_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_6source_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_6source___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_6source___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { zprop_source_t __pyx_v_src; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZPoolProperty.source.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0868: cdef zfs.zprop_source_t src
0869:
+0870: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0871: libzfs.zpool_get_prop(self.pool.handle, self.propid, NULL, 0, &src, True)
zpool_get_prop(__pyx_v_self->pool->handle, __pyx_v_self->propid, NULL, 0, (&__pyx_v_src), 1); }
0872:
+0873: return PropertySource(src)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PropertySource); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_zprop_source_t(__pyx_v_src); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0874:
0875: property parsed:
+0876: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_6parsed_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_6parsed_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_6parsed___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_6parsed___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolProperty.parsed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0877: return parse_zpool_prop(self.name, self.rawvalue)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_parse_zpool_prop); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rawvalue); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0878:
+0879: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_13ZPoolProperty_6parsed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_13ZPoolProperty_6parsed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_6parsed_2__set__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_13ZPoolProperty_6parsed_2__set__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZPoolProperty.parsed.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0880: self.value = serialize_zpool_prop(self.name, value)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_serialize_zpool_prop); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_value); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value, __pyx_t_1) < 0) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0881:
0882: property allowed_values:
+0883: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_14allowed_values_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_14allowed_values_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_14allowed_values___get__(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_14allowed_values___get__(struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolProperty.allowed_values.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0884: return libzfs.zfs_prop_values(self.propid)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(zfs_prop_values(__pyx_v_self->propid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0885:
+0886: def reset(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_9reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_13ZPoolProperty_9reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_13ZPoolProperty_8reset(((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_13ZPoolProperty_8reset(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset", 0); /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0887: pass
0888:
0889:
+0890: cdef class ZPoolFeature(object):
struct __pyx_obj_6libzfs_ZPoolFeature { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSPool *pool; struct __pyx_obj_6libzfs_NVList *nvlist; zfeature_info_t *feature; };
+0891: cdef readonly ZFSPool pool
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4pool_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4pool_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_4pool___get__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_4pool___get__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->pool)); __pyx_r = ((PyObject *)__pyx_v_self->pool); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0892: cdef NVList nvlist
0893: cdef zfs.zfeature_info_t *feature
0894:
+0895: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature___getstate__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature___getstate__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolFeature.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0896: return {
__Pyx_XDECREF(__pyx_r);
+0897: 'name': self.name,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name_2, __pyx_t_2) < 0) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0898: 'guid': self.guid,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_guid, __pyx_t_2) < 0) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0899: 'description': self.description,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_description); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_description, __pyx_t_2) < 0) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0900: 'state': self.state.name
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_state, __pyx_t_3) < 0) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0901: }
0902:
0903: property name:
+0904: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_4name___get__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_4name___get__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolFeature.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0905: return self.feature.fi_uname
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_self->feature->fi_uname); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0906:
0907: property guid:
+0908: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4guid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_4guid_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_4guid___get__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_4guid___get__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolFeature.guid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0909: return self.feature.fi_guid
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_self->feature->fi_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0910:
0911: property description:
+0912: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_11description_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_11description_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_11description___get__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_11description___get__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZPoolFeature.description.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0913: return self.feature.fi_desc
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_self->feature->fi_desc); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0914:
0915: property state:
+0916: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_5state_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_5state_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_5state___get__(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_5state___get__(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZPoolFeature.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0917: if self.guid not in self.nvlist:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, ((PyObject *)__pyx_v_self->nvlist), Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 917, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+0918: return FeatureState.DISABLED
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureState); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_DISABLED); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0919:
+0920: if self.nvlist[self.guid] == 0:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 920, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_3) { /* … */ }
+0921: return FeatureState.ENABLED
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureState); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ENABLED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0922:
+0923: if self.nvlist[self.guid] > 0:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+0924: return FeatureState.ACTIVE
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureState); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ACTIVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0925:
+0926: def enable(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_3enable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZPoolFeature_3enable(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("enable (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZPoolFeature_2enable(((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZPoolFeature_2enable(struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_self) { char const *__pyx_v_c_name; int __pyx_v_ret; PyObject *__pyx_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("enable", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZPoolFeature.enable", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0927: cdef const char *c_name
0928: cdef int ret
0929:
+0930: name = "feature@{0}".format(self.name)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_feature_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_name = __pyx_t_1; __pyx_t_1 = 0;
+0931: c_name = name
__pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(1, 931, __pyx_L1_error) __pyx_v_c_name = __pyx_t_6;
0932:
+0933: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0934: ret = libzfs.zpool_set_prop(self.pool.handle, c_name, "enabled")
__pyx_v_ret = zpool_set_prop(__pyx_v_self->pool->handle, __pyx_v_c_name, ((char const *)"enabled")); }
0935:
+0936: if ret != 0:
__pyx_t_7 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_7) { /* … */ }
+0937: raise self.pool.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->pool->root->__pyx_vtab)->get_error(__pyx_v_self->pool->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 937, __pyx_L1_error)
0938:
+0939: self.pool.root.write_history('zpool set', (self.name, 'enabled'), self.pool.name)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pool->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __Pyx_INCREF(__pyx_n_s_enabled); __Pyx_GIVEREF(__pyx_n_s_enabled); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_enabled); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_set); __Pyx_GIVEREF(__pyx_kp_s_zpool_set); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_kp_s_zpool_set); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0940:
0941:
+0942: cdef class ZFSProperty(object):
struct __pyx_obj_6libzfs_ZFSProperty { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSObject *dataset; int propid; char const *cname; char cvalue[(ZFS_MAXPROPLEN + 1)]; char crawvalue[(ZFS_MAXPROPLEN + 1)]; char csrcstr[(__pyx_e_6libzfs_MAX_DATASET_NAME_LEN + 1)]; zprop_source_t csource; };
+0943: cdef readonly ZFSObject dataset
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_7dataset_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_7dataset_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_7dataset___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_7dataset___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->dataset)); __pyx_r = ((PyObject *)__pyx_v_self->dataset); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0944: cdef int propid
0945: cdef const char *cname
0946: cdef char cvalue[libzfs.ZFS_MAXPROPLEN + 1]
0947: cdef char crawvalue[libzfs.ZFS_MAXPROPLEN + 1]
0948: cdef char csrcstr[MAX_DATASET_NAME_LEN + 1]
0949: cdef zfs.zprop_source_t csource
0950:
+0951: def __init__(self):
/* Python wrapper */ static int __pyx_pw_6libzfs_11ZFSProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_11ZFSProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_6libzfs_11ZFSProperty___init__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_11ZFSProperty___init__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSProperty.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0952: raise RuntimeError('ZFSProperty cannot be instantiated by the user')
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 952, __pyx_L1_error) /* … */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_ZFSProperty_cannot_be_instantiat); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33);
0953:
+0954: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_2__getstate__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_2__getstate__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSProperty.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0955: return {
__Pyx_XDECREF(__pyx_r);
+0956: 'value': self.value,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_t_2) < 0) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0957: 'rawvalue': self.rawvalue,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rawvalue); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_rawvalue, __pyx_t_2) < 0) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0958: 'parsed': self.parsed,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parsed); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parsed, __pyx_t_2) < 0) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0959: 'source': self.source.name if self.source else None
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_source); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_5; __pyx_t_5 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_2 = Py_None; } if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_source, __pyx_t_2) < 0) __PYX_ERR(1, 956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0960: }
0961:
+0962: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_5__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_5__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_4__str__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_4__str__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSProperty.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0963: return "<libzfs.ZFSProperty name '{0}' value '{1}'>".format(self.name, self.value)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSProperty_name_0_value, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0964:
+0965: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_7__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_7__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_6__repr__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_6__repr__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSProperty.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0966: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0967:
+0968: def refresh(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_9refresh(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_9refresh(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("refresh (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_8refresh(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_8refresh(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("refresh", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0969: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0970: self.cname = libzfs.zfs_prop_to_name(self.propid)
__pyx_v_self->cname = zfs_prop_to_name(__pyx_v_self->propid);
+0971: libzfs.zfs_prop_get(
zfs_prop_get(__pyx_v_self->dataset->handle, __pyx_v_self->propid, __pyx_v_self->cvalue, ZFS_MAXPROPLEN, (&__pyx_v_self->csource), __pyx_v_self->csrcstr, __pyx_e_6libzfs_MAX_DATASET_NAME_LEN, 0);
0972: self.dataset.handle, self.propid, self.cvalue, libzfs.ZFS_MAXPROPLEN,
0973: &self.csource, self.csrcstr, MAX_DATASET_NAME_LEN,
0974: False
0975: )
0976:
+0977: libzfs.zfs_prop_get(
zfs_prop_get(__pyx_v_self->dataset->handle, __pyx_v_self->propid, __pyx_v_self->crawvalue, ZFS_MAXPROPLEN, NULL, NULL, 0, 1); }
0978: self.dataset.handle, self.propid, self.crawvalue, libzfs.ZFS_MAXPROPLEN,
0979: NULL, NULL, 0,
0980: True
0981: )
0982:
0983: property name:
+0984: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_4name___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_4name___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSProperty.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0985: return self.cname
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_self->cname); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0986:
0987: property value:
+0988: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_5value_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_5value___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_5value___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSProperty.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+0989: return self.cvalue
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_FromString(__pyx_v_self->cvalue); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
0990:
+0991: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_11ZFSProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_11ZFSProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_5value_2__set__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_11ZFSProperty_5value_2__set__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self, PyObject *__pyx_v_value) { char const *__pyx_v_c_value; int __pyx_v_ret; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); __Pyx_INCREF(__pyx_v_value); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSProperty.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_value); __Pyx_RefNannyFinishContext(); return __pyx_r; }
0992: cdef const char *c_value
0993: cdef int ret
0994:
+0995: value = str(value)
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_value); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2); __pyx_t_2 = 0;
+0996: c_value = value
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(1, 996, __pyx_L1_error) __pyx_v_c_value = __pyx_t_3;
0997:
+0998: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+0999: ret = libzfs.zfs_prop_set(self.dataset.handle, self.cname, c_value)
__pyx_v_ret = zfs_prop_set(__pyx_v_self->dataset->handle, __pyx_v_self->cname, __pyx_v_c_value); }
1000:
+1001: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+1002: raise self.dataset.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->dataset->root->__pyx_vtab)->get_error(__pyx_v_self->dataset->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1002, __pyx_L1_error)
1003:
+1004: self.dataset.root.write_history('zfs set', (self.name, str(value)), self.dataset.name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dataset->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_value); __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dataset), __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_set); __Pyx_GIVEREF(__pyx_kp_s_zfs_set); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_kp_s_zfs_set); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1005:
1006: property rawvalue:
+1007: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_8rawvalue_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_8rawvalue_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_8rawvalue___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_8rawvalue___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSProperty.rawvalue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1008: return self.crawvalue
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_FromString(__pyx_v_self->crawvalue); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1009:
1010: property source:
+1011: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_6source_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_6source_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_6source___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_6source___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSProperty.source.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1012: return PropertySource(<int>self.csource)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PropertySource); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_self->csource)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1013:
1014: property parsed:
+1015: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_6parsed_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_6parsed_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_6parsed___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_6parsed___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSProperty.parsed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1016: return parse_zfs_prop(self.name, self.rawvalue)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_parse_zfs_prop); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rawvalue); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1017:
+1018: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_11ZFSProperty_6parsed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_11ZFSProperty_6parsed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_6parsed_2__set__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_11ZFSProperty_6parsed_2__set__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSProperty.parsed.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1019: self.value = serialize_zfs_prop(self.name, value)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_serialize_zfs_prop); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_value); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value, __pyx_t_1) < 0) __PYX_ERR(1, 1019, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1020:
1021: property allowed_values:
+1022: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_14allowed_values_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_14allowed_values_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_14allowed_values___get__(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_14allowed_values___get__(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSProperty.allowed_values.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1023: return libzfs.zfs_prop_values(self.propid)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(zfs_prop_values(__pyx_v_self->propid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1024:
+1025: def inherit(self, recursive=False, bint received=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_11inherit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSProperty_11inherit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_recursive = 0; int __pyx_v_received; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inherit (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_recursive,&__pyx_n_s_received,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[0] = value; kw_args--; } } case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_received); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inherit") < 0)) __PYX_ERR(1, 1025, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_recursive = values[0]; if (values[1]) { __pyx_v_received = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_received == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1025, __pyx_L3_error) } else { __pyx_v_received = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("inherit", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1025, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSProperty.inherit", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSProperty_10inherit(((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_v_self), __pyx_v_recursive, __pyx_v_received); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSProperty_10inherit(struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_self, PyObject *__pyx_v_recursive, int __pyx_v_received) { struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_dset = 0; int __pyx_v_ret; PyObject *__pyx_v_dsets = NULL; PyObject *__pyx_v_d = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inherit", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.ZFSProperty.inherit", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_dset); __Pyx_XDECREF(__pyx_v_dsets); __Pyx_XDECREF(__pyx_v_d); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1026: cdef ZFSObject dset
1027: cdef int ret
1028:
+1029: dsets = [self.dataset]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->dataset)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->dataset)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->dataset)); __pyx_v_dsets = __pyx_t_1; __pyx_t_1 = 0;
+1030: if recursive:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1030, __pyx_L1_error)
if (__pyx_t_2) {
/* … */
}
+1031: dsets = dsets.extend(list(self.dataset.children_recursive))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dataset), __pyx_n_s_children_recursive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyList_Extend(__pyx_v_dsets, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_Owned_Py_None(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_dsets, __pyx_t_3); __pyx_t_3 = 0;
1032:
+1033: for d in dsets:
if (likely(PyList_CheckExact(__pyx_v_dsets)) || PyTuple_CheckExact(__pyx_v_dsets)) { __pyx_t_3 = __pyx_v_dsets; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_dsets); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1033, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1033, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1033, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1033, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1034: dset = <ZFSObject>d
__pyx_t_1 = __pyx_v_d; __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dset, ((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_t_1)); __pyx_t_1 = 0;
+1035: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } }
+1036: ret = libzfs.zfs_prop_inherit(dset.handle, self.cname, received)
__pyx_v_ret = zfs_prop_inherit(__pyx_v_dset->handle, __pyx_v_self->cname, __pyx_v_received); }
1037:
+1038: if ret != 0:
__pyx_t_2 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_2) { /* … */ }
+1039: raise self.dataset.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->dataset->root->__pyx_vtab)->get_error(__pyx_v_self->dataset->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1039, __pyx_L1_error)
1040:
+1041: self.dataset.root.write_history('zfs inherit', '-r' if recursive else '', self.dataset.name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dataset->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1041, __pyx_L1_error) if (__pyx_t_2) { __Pyx_INCREF(__pyx_kp_s_r); __pyx_t_7 = __pyx_kp_s_r; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_7 = __pyx_kp_s__11; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->dataset), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_5 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_inherit); __Pyx_GIVEREF(__pyx_kp_s_zfs_inherit); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, __pyx_kp_s_zfs_inherit); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_5, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1042:
1043:
+1044: cdef class ZFSUserProperty(ZFSProperty):
struct __pyx_obj_6libzfs_ZFSUserProperty { struct __pyx_obj_6libzfs_ZFSProperty __pyx_base; PyObject *values; PyObject *name; };
1045: cdef dict values
+1046: cdef readonly name
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_4name___get__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_4name___get__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1047:
+1048: def __init__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_15ZFSUserProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_15ZFSUserProperty_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_value = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1048, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_value = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1048, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSUserProperty.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty___init__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self), __pyx_v_value); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_15ZFSUserProperty___init__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSUserProperty.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1049: self.values = {"value": value}
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0) __PYX_ERR(1, 1049, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->values); __Pyx_DECREF(__pyx_v_self->values); __pyx_v_self->values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1050:
+1051: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_3__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_3__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_2__str__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_2__str__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSUserProperty.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1052: return "<libzfs.ZFSUserProperty name '{0}' value '{1}'>".format(self.name, self.value)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSUserProperty_name_0_v, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_self->name); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1053:
+1054: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_5__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_5__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_4__repr__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_4__repr__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSUserProperty.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1055: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1056:
1057: property value:
+1058: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_5value_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_5value___get__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_5value___get__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSUserProperty.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1059: return self.values.get('value')
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); __PYX_ERR(1, 1059, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->values, __pyx_n_s_value, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1060:
+1061: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_15ZFSUserProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_15ZFSUserProperty_5value_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_5value_2__set__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_15ZFSUserProperty_5value_2__set__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self, PyObject *__pyx_v_value) { char const *__pyx_v_c_name; char const *__pyx_v_c_value; int __pyx_v_ret; PyObject *__pyx_v_str_value = NULL; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSUserProperty.value.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_str_value); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1062: cdef const char *c_name
1063: cdef const char *c_value
1064: cdef int ret
1065:
+1066: str_value = str(value)
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_value); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_str_value = __pyx_t_2; __pyx_t_2 = 0;
+1067: c_name = self.name
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(1, 1067, __pyx_L1_error) __pyx_v_c_name = __pyx_t_3;
+1068: c_value = str_value
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_str_value); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 1068, __pyx_L1_error) __pyx_v_c_value = __pyx_t_4;
1069:
+1070: if self.dataset:
__pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->__pyx_base.dataset)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1070, __pyx_L1_error)
if (__pyx_t_5) {
/* … */
}
+1071: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+1072: ret = libzfs.zfs_prop_set(self.dataset.handle, c_name, c_value)
__pyx_v_ret = zfs_prop_set(__pyx_v_self->__pyx_base.dataset->handle, __pyx_v_c_name, __pyx_v_c_value); }
1073:
+1074: if ret != 0:
__pyx_t_5 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_5) { /* … */ }
+1075: raise self.dataset.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.dataset->root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.dataset->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1075, __pyx_L1_error)
1076:
1077: property rawvalue:
+1078: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_8rawvalue_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_8rawvalue_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_8rawvalue___get__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_8rawvalue___get__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSUserProperty.rawvalue.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1079: return self.value
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1080:
1081: property source:
+1082: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_6source_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSUserProperty_6source_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSUserProperty_6source___get__(((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSUserProperty_6source___get__(struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_self) { PyObject *__pyx_v_src = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZFSUserProperty.source.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_src); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1083: src = self.values.get('source')
if (unlikely(__pyx_v_self->values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get"); __PYX_ERR(1, 1083, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_self->values, __pyx_n_s_source, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_src = __pyx_t_1; __pyx_t_1 = 0;
+1084: if not src:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_src); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1084, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_2) != 0);
if (__pyx_t_3) {
/* … */
}
+1085: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1086:
+1087: if src == self.dataset.name:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.dataset), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyObject_RichCompare(__pyx_v_src, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_3) { /* … */ }
+1088: return PropertySource.LOCAL
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_PropertySource); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_LOCAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1089:
+1090: if src == '$recvd':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_src, __pyx_kp_s_recvd, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1090, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+1091: return PropertySource.RECEIVED
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_PropertySource); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_RECEIVED); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1092:
+1093: return PropertySource.INHERITED
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_PropertySource); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_INHERITED); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1094:
1095:
+1096: cdef class ZFSVdevStats(object):
struct __pyx_obj_6libzfs_ZFSVdevStats { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSVdev *vdev; struct __pyx_obj_6libzfs_NVList *nvlist; };
+1097: cdef readonly ZFSVdev vdev
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_4vdev_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_4vdev_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_4vdev___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_4vdev___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->vdev)); __pyx_r = ((PyObject *)__pyx_v_self->vdev); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1098: cdef NVList nvlist
1099:
+1100: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats___getstate__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats___getstate__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1101: return {
__Pyx_XDECREF(__pyx_r);
+1102: 'timestamp': self.timestamp,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_timestamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_timestamp, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1103: 'read_errors': self.read_errors,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_read_errors, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1104: 'write_errors': self.write_errors,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_write_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_write_errors, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1105: 'checksum_errors': self.checksum_errors,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_checksum_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_checksum_errors, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1106: 'ops': self.ops,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ops); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_ops, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1107: 'bytes': self.bytes,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_bytes, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1108: 'size': self.size,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_size, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1109: 'allocated': self.allocated,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_allocated); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_allocated, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1110: 'configured_ashift': self.configured_ashift,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_configured_ashift); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_configured_ashift, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1111: 'logical_ashift': self.logical_ashift,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_logical_ashift); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_logical_ashift, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1112: 'physical_ashift': self.physical_ashift,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_physical_ashift); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_physical_ashift, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1113: 'fragmentation': self.fragmentation
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_fragmentation); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_fragmentation, __pyx_t_2) < 0) __PYX_ERR(1, 1102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1114: }
1115:
1116: property timestamp:
+1117: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_9timestamp_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_9timestamp_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_9timestamp___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_9timestamp___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.timestamp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1118: return self.nvlist['vdev_stats'][0]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1119:
1120: property size:
+1121: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_4size___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_4size___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1122: return self.nvlist['vdev_stats'][4]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1123:
1124: property allocated:
+1125: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_9allocated_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_9allocated_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_9allocated___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_9allocated___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.allocated.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1126: return self.nvlist['vdev_stats'][3]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1127:
1128: property read_errors:
+1129: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_11read_errors_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_11read_errors_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_11read_errors___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_11read_errors___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.read_errors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1130: return self.nvlist['vdev_stats'][21]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 21, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1131:
1132: property write_errors:
+1133: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_12write_errors_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_12write_errors_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_12write_errors___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_12write_errors___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.write_errors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1134: return self.nvlist['vdev_stats'][22]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 22, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1135:
1136: property checksum_errors:
+1137: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_15checksum_errors_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_15checksum_errors_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_15checksum_errors___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_15checksum_errors___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.checksum_errors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1138: return self.nvlist['vdev_stats'][23]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 23, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1139:
1140: property ops:
+1141: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_3ops_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_3ops_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_3ops___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_3ops___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.ops.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1142: return self.nvlist['vdev_stats'][8:13]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 8, 13, NULL, NULL, &__pyx_slice__34, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_slice__34 = PySlice_New(__pyx_int_8, __pyx_int_13, Py_None); if (unlikely(!__pyx_slice__34)) __PYX_ERR(1, 1142, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__34); __Pyx_GIVEREF(__pyx_slice__34);
1143:
1144: property bytes:
+1145: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_5bytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_5bytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_5bytes___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_5bytes___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.bytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1146: return self.nvlist['vdev_stats'][14:19]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 14, 19, NULL, NULL, &__pyx_slice__35, 1, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_slice__35 = PySlice_New(__pyx_int_14, __pyx_int_19, Py_None); if (unlikely(!__pyx_slice__35)) __PYX_ERR(1, 1146, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__35); __Pyx_GIVEREF(__pyx_slice__35);
1147:
1148: property configured_ashift:
+1149: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_17configured_ashift_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_17configured_ashift_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_17configured_ashift___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_17configured_ashift___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.configured_ashift.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1150: return self.nvlist['vdev_stats'][26]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 26, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1151:
1152: property logical_ashift:
+1153: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_14logical_ashift_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_14logical_ashift_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_14logical_ashift___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_14logical_ashift___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.logical_ashift.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1154: return self.nvlist['vdev_stats'][27]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 27, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1155:
1156: property physical_ashift:
+1157: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_15physical_ashift_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_15physical_ashift_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_15physical_ashift___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_15physical_ashift___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.physical_ashift.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1158: return self.nvlist['vdev_stats'][28]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 28, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1159:
1160: property fragmentation:
+1161: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_13fragmentation_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_12ZFSVdevStats_13fragmentation_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12ZFSVdevStats_13fragmentation___get__(((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12ZFSVdevStats_13fragmentation___get__(struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdevStats.fragmentation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1162: return self.nvlist['vdev_stats'][29]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 29, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1163:
1164:
+1165: cdef class ZFSVdev(object):
struct __pyx_obj_6libzfs_ZFSVdev { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSPool *zpool; struct __pyx_obj_6libzfs_ZFS *root; struct __pyx_obj_6libzfs_ZFSVdev *parent; PyObject *group; struct __pyx_obj_6libzfs_NVList *nvlist; };
+1166: cdef readonly ZFSPool zpool
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5zpool_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5zpool_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_5zpool___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_5zpool___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->zpool)); __pyx_r = ((PyObject *)__pyx_v_self->zpool); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1167: cdef readonly ZFS root
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4root_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4root___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4root___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __pyx_r = ((PyObject *)__pyx_v_self->root); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1168: cdef readonly ZFSVdev parent
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_6parent_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_6parent___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_6parent___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->parent)); __pyx_r = ((PyObject *)__pyx_v_self->parent); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1169: cdef readonly object group
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5group_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5group_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_5group___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_5group___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->group); __pyx_r = __pyx_v_self->group; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1170: cdef NVList nvlist
1171:
+1172: def __init__(self, ZFS root, typ, ZFSPool pool=None):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSVdev_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_7ZFSVdev_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_6libzfs_ZFS *__pyx_v_root = 0; PyObject *__pyx_v_typ = 0; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_root,&__pyx_n_s_typ,&__pyx_n_s_pool,0}; PyObject* values[3] = {0,0,0}; values[2] = (PyObject *)((struct __pyx_obj_6libzfs_ZFSPool *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_root)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_typ)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); __PYX_ERR(1, 1172, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pool); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1172, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_root = ((struct __pyx_obj_6libzfs_ZFS *)values[0]); __pyx_v_typ = values[1]; __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)values[2]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1172, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_6libzfs_ZFS, 1, "root", 0))) __PYX_ERR(1, 1172, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_6libzfs_ZFSPool, 1, "pool", 0))) __PYX_ERR(1, 1172, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_7ZFSVdev___init__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), __pyx_v_root, __pyx_v_typ, __pyx_v_pool); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSVdev___init__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, struct __pyx_obj_6libzfs_ZFS *__pyx_v_root, PyObject *__pyx_v_typ, struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSVdev.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1173: self.root = root
__Pyx_INCREF(((PyObject *)__pyx_v_root)); __Pyx_GIVEREF(((PyObject *)__pyx_v_root)); __Pyx_GOTREF(__pyx_v_self->root); __Pyx_DECREF(((PyObject *)__pyx_v_self->root)); __pyx_v_self->root = __pyx_v_root;
+1174: self.zpool = pool
__Pyx_INCREF(((PyObject *)__pyx_v_pool)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pool)); __Pyx_GOTREF(__pyx_v_self->zpool); __Pyx_DECREF(((PyObject *)__pyx_v_self->zpool)); __pyx_v_self->zpool = __pyx_v_pool;
+1175: self.nvlist = NVList()
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->nvlist); __Pyx_DECREF(((PyObject *)__pyx_v_self->nvlist)); __pyx_v_self->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
+1176: self.type = typ
if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type, __pyx_v_typ) < 0) __PYX_ERR(1, 1176, __pyx_L1_error)
1177:
+1178: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_3__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_3__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_2__str__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_2__str__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSVdev.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1179: if self.path:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1179, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1180: return "<libzfs.ZFSVdev type '{0}', path '{1}'>".format(self.type, self.path)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSVdev_type_0_path_1, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1181:
+1182: return "<libzfs.ZFSVdev type '{0}'>".format(self.type)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSVdev_type_0, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_5) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1182, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1183:
+1184: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4__repr__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4__repr__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdev.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1185: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1186:
+1187: def __getstate__(self, recursive=True):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_7__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_7__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_recursive,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_True); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getstate__") < 0)) __PYX_ERR(1, 1187, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_recursive = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getstate__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1187, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_6__getstate__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_6__getstate__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_recursive) { PyObject *__pyx_v_ret = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSVdev.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ret); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1188: ret = {
+1189: 'type': self.type,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_2) < 0) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1190: 'path': self.path,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_path, __pyx_t_2) < 0) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1191: 'guid': str(self.guid),
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_guid, __pyx_t_2) < 0) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1192: 'status': self.status,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_status, __pyx_t_2) < 0) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1193: 'stats': self.stats.__getstate__()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_stats); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getstate); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1193, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_stats, __pyx_t_2) < 0) __PYX_ERR(1, 1189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1194: }
1195:
+1196: if recursive:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 1196, __pyx_L1_error)
if (__pyx_t_5) {
/* … */
}
+1197: ret['children'] = [i.__getstate__() for i in self.children]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1197, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 1197, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 1197, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1197, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_8) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1197, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyDict_SetItem(__pyx_v_ret, __pyx_n_s_children, __pyx_t_1) < 0)) __PYX_ERR(1, 1197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1198:
+1199: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0;
1200:
+1201: def add_child_vdev(self, ZFSVdev vdev):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_9add_child_vdev(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_9add_child_vdev(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_child_vdev (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vdev), __pyx_ptype_6libzfs_ZFSVdev, 1, "vdev", 0))) __PYX_ERR(1, 1201, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_8add_child_vdev(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_vdev)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_8add_child_vdev(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("add_child_vdev", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSVdev.add_child_vdev", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1202: if 'children' not in self.nvlist:
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_children, ((PyObject *)__pyx_v_self->nvlist), Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1202, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1203: self.nvlist.set('children', [], nvpair.DATA_TYPE_NVLIST_ARRAY)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_set); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST_ARRAY); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_n_s_children); __Pyx_GIVEREF(__pyx_n_s_children); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_n_s_children); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1204:
+1205: self.nvlist['children'] = self.nvlist.get_raw('children') + [vdev.nvlist]
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->nvlist->__pyx_vtab)->get_raw(__pyx_v_self->nvlist, __pyx_n_s_children); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_vdev->nvlist)); __Pyx_GIVEREF(((PyObject *)__pyx_v_vdev->nvlist)); PyList_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_vdev->nvlist)); __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_children, __pyx_t_9) < 0)) __PYX_ERR(1, 1205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
1206:
+1207: def attach(self, ZFSVdev vdev):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_11attach(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_11attach(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vdev), __pyx_ptype_6libzfs_ZFSVdev, 1, "vdev", 0))) __PYX_ERR(1, 1207, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_10attach(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_vdev)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_10attach(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev) { char const *__pyx_v_command; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_root = 0; PyObject *__pyx_v_first_child = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("libzfs.ZFSVdev.attach", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_root); __Pyx_XDECREF(__pyx_v_first_child); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1208: cdef const char *command = 'zpool attach'
__pyx_v_command = ((char const *)"zpool attach");
1209: cdef ZFSVdev root
1210:
+1211: if self.type not in ('mirror', 'disk', 'file'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_mirror, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1211, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1211, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1211, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+1212: raise ZFSException(Error.NOTSUP, "Can attach disks to mirrors and stripes only")
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Can_attach_disks_to_mirrors_and); __Pyx_GIVEREF(__pyx_kp_s_Can_attach_disks_to_mirrors_and); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_Can_attach_disks_to_mirrors_and); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1212, __pyx_L1_error)
1213:
+1214: if self.type == 'mirror':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_mirror, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1214, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L7; }
+1215: first_child = next(self.children)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyIter_Next(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_first_child = __pyx_t_4; __pyx_t_4 = 0;
1216: else:
+1217: first_child = self
/*else*/ {
__Pyx_INCREF(((PyObject *)__pyx_v_self));
__pyx_v_first_child = ((PyObject *)__pyx_v_self);
}
__pyx_L7:;
1218:
+1219: root = self.root.make_vdev_tree({
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->make_vdev_tree(__pyx_v_self->root, __pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_root = ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_1); __pyx_t_1 = 0;
+1220: 'data': [vdev]
__pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_vdev)); __Pyx_GIVEREF(((PyObject *)__pyx_v_vdev)); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_vdev)); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_data, __pyx_t_1) < 0) __PYX_ERR(1, 1220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1221: })
1222:
+1223: if libzfs.zpool_vdev_attach(
if (__pyx_t_3) { /* … */ }
1224: self.zpool.handle,
+1225: first_child.path,
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_first_child, __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(1, 1225, __pyx_L1_error)
+1226: vdev.path,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_vdev), __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(1, 1226, __pyx_L1_error)
1227: root.nvlist.handle,
+1228: False) != 0:
__pyx_t_3 = ((zpool_vdev_attach(__pyx_v_self->zpool->handle, __pyx_t_9, __pyx_t_10, __pyx_v_root->nvlist->handle, 0) != 0) != 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1229: raise self.root.get_error()
__pyx_t_4 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1229, __pyx_L1_error)
1230:
+1231: self.root.write_history(command, self.zpool.name, first_child.path, vdev.path)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_first_child, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_vdev), __pyx_n_s_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } __pyx_t_13 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_7, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_7, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1232:
+1233: def replace(self, ZFSVdev vdev):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_13replace(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_13replace(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("replace (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vdev), __pyx_ptype_6libzfs_ZFSVdev, 1, "vdev", 0))) __PYX_ERR(1, 1233, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_12replace(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_vdev)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_12replace(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev) { char const *__pyx_v_command; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_root = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("replace", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("libzfs.ZFSVdev.replace", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_root); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1234: cdef const char *command = 'zpool replace'
__pyx_v_command = ((char const *)"zpool replace");
1235: cdef ZFSVdev root
1236:
+1237: if self.type == 'file':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1237, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1238: raise ZFSException(Error.NOTSUP, "Can replace disks only")
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_kp_s_Can_replace_disks_only); __Pyx_GIVEREF(__pyx_kp_s_Can_replace_disks_only); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_kp_s_Can_replace_disks_only); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1238, __pyx_L1_error)
1239:
+1240: if not self.parent:
__pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->parent)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1240, __pyx_L1_error)
__pyx_t_8 = ((!__pyx_t_2) != 0);
if (__pyx_t_8) {
/* … */
}
+1241: raise ZFSException(Error.NOTSUP, "Cannot replace a top-level vdev")
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_kp_s_Cannot_replace_a_top_level_vdev); __Pyx_GIVEREF(__pyx_kp_s_Cannot_replace_a_top_level_vdev); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_kp_s_Cannot_replace_a_top_level_vdev); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1241, __pyx_L1_error)
1242:
+1243: if self.parent.type not in ('mirror', 'raidz1', 'raidz2', 'raidz3'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_mirror, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1243, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_8 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz1, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1243, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_8 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz2, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1243, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_8 = __pyx_t_2; goto __pyx_L6_bool_binop_done; } __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz3, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1243, __pyx_L1_error) __pyx_t_8 = __pyx_t_2; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_t_8 != 0); if (__pyx_t_2) { /* … */ }
+1244: raise ZFSException(Error.NOTSUP, "Can replace disks in mirror and raidz* vdevs only")
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_kp_s_Can_replace_disks_in_mirror_and); __Pyx_GIVEREF(__pyx_kp_s_Can_replace_disks_in_mirror_and); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_kp_s_Can_replace_disks_in_mirror_and); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1244, __pyx_L1_error)
1245:
+1246: root = self.root.make_vdev_tree({
__pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->make_vdev_tree(__pyx_v_self->root, __pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_root = ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_3); __pyx_t_3 = 0;
+1247: 'data': [vdev]
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_vdev)); __Pyx_GIVEREF(((PyObject *)__pyx_v_vdev)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_vdev)); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_data, __pyx_t_3) < 0) __PYX_ERR(1, 1247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1248: })
1249:
+1250: if libzfs.zpool_vdev_attach(
if (__pyx_t_2) { /* … */ }
1251: self.zpool.handle,
+1252: self.path,
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(1, 1252, __pyx_L1_error)
+1253: vdev.path,
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_vdev), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(1, 1253, __pyx_L1_error)
1254: root.nvlist.handle,
+1255: True) != 0:
__pyx_t_2 = ((zpool_vdev_attach(__pyx_v_self->zpool->handle, __pyx_t_9, __pyx_t_10, __pyx_v_root->nvlist->handle, 1) != 0) != 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1256: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1256, __pyx_L1_error)
1257:
+1258: self.root.write_history(command, self.zpool.name, self.path, vdev.path)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_vdev), __pyx_n_s_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_13 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_6, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_6, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_6, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_6, __pyx_t_11); __pyx_t_7 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1259:
+1260: def detach(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_15detach(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_15detach(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("detach (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_14detach(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_14detach(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { char const *__pyx_v_command; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("detach", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSVdev.detach", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1261: cdef const char *command = 'zpool detach'
__pyx_v_command = ((char const *)"zpool detach");
+1262: if self.type not in ('file', 'disk'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1262, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1262, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+1263: raise ZFSException(Error.NOTSUP, "Cannot detach virtual vdevs")
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Cannot_detach_virtual_vdevs); __Pyx_GIVEREF(__pyx_kp_s_Cannot_detach_virtual_vdevs); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_Cannot_detach_virtual_vdevs); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1263, __pyx_L1_error)
1264:
+1265: if self.parent.type not in ('mirror', 'spare'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_mirror, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1265, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_spare, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1265, __pyx_L1_error) __pyx_t_3 = __pyx_t_2; __pyx_L7_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* … */ }
+1266: raise ZFSException(Error.NOTSUP, "Can detach disks from mirrors and spares only")
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Can_detach_disks_from_mirrors_an); __Pyx_GIVEREF(__pyx_kp_s_Can_detach_disks_from_mirrors_an); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_kp_s_Can_detach_disks_from_mirrors_an); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1266, __pyx_L1_error)
1267:
+1268: if libzfs.zpool_vdev_detach(self.zpool.handle, self.path) != 0:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(1, 1268, __pyx_L1_error) __pyx_t_2 = ((zpool_vdev_detach(__pyx_v_self->zpool->handle, __pyx_t_9) != 0) != 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1269: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1269, __pyx_L1_error)
1270:
+1271: self.root.write_history(command, self.zpool.name, self.path)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_11 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_7, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_7, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_7, __pyx_t_8); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1272:
+1273: def remove(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_17remove(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_17remove(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("remove (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_16remove(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_16remove(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { char const *__pyx_v_command; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("remove", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.ZFSVdev.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1274: cdef const char *command = 'zpool remove'
__pyx_v_command = ((char const *)"zpool remove");
1275:
+1276: if libzfs.zpool_vdev_remove(self.zpool.handle, self.path):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(1, 1276, __pyx_L1_error) __pyx_t_3 = (zpool_vdev_remove(__pyx_v_self->zpool->handle, __pyx_t_2) != 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+1277: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1277, __pyx_L1_error)
1278:
+1279: self.root.write_history(command, self.zpool.name, self.path)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_9 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_7); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1280:
+1281: def offline(self, temporary=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_19offline(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_19offline(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_temporary = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("offline (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_temporary,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_temporary); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "offline") < 0)) __PYX_ERR(1, 1281, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_temporary = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("offline", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.offline", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_18offline(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), __pyx_v_temporary); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_18offline(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_temporary) { char const *__pyx_v_command; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("offline", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("libzfs.ZFSVdev.offline", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1282: cdef const char *command = 'zpool offline'
__pyx_v_command = ((char const *)"zpool offline");
+1283: if self.type not in ('disk', 'file'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1283, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1283, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+1284: raise ZFSException(Error.NOTSUP, "Can make disks offline only")
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Can_make_disks_offline_only); __Pyx_GIVEREF(__pyx_kp_s_Can_make_disks_offline_only); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_Can_make_disks_offline_only); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1284, __pyx_L1_error)
1285:
+1286: if libzfs.zpool_vdev_offline(self.zpool.handle, self.path, temporary) != 0:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(1, 1286, __pyx_L1_error) __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_temporary); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1286, __pyx_L1_error) __pyx_t_3 = ((zpool_vdev_offline(__pyx_v_self->zpool->handle, __pyx_t_9, __pyx_t_10) != 0) != 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+1287: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1287, __pyx_L1_error)
1288:
+1289: self.root.write_history(command, '-t' if temporary else '',self.zpool.name, self.path)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temporary); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1289, __pyx_L1_error) if (__pyx_t_3) { __Pyx_INCREF(__pyx_kp_s_t); __pyx_t_6 = __pyx_kp_s_t; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_6 = __pyx_kp_s__11; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_13 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_7, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_7, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1290:
+1291: def online(self, expand=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_21online(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_21online(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_expand = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("online (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_expand,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_expand); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "online") < 0)) __PYX_ERR(1, 1291, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_expand = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("online", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1291, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.online", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_20online(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), __pyx_v_expand); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_20online(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_expand) { char const *__pyx_v_command; int __pyx_v_flags; vdev_state_t __pyx_v_newstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("online", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("libzfs.ZFSVdev.online", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1292: cdef const char *command = 'zpool online'
__pyx_v_command = ((char const *)"zpool online");
+1293: cdef int flags = 0
__pyx_v_flags = 0;
1294: cdef zfs.vdev_state_t newstate
1295:
+1296: if self.type not in ('disk', 'file'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1296, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1296, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+1297: raise ZFSException(Error.NOTSUP, "Can make disks online only")
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_NOTSUP); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Can_make_disks_online_only); __Pyx_GIVEREF(__pyx_kp_s_Can_make_disks_online_only); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_Can_make_disks_online_only); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1297, __pyx_L1_error)
1298:
+1299: if expand:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_expand); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1299, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+1300: flags |= zfs.ZFS_ONLINE_EXPAND
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_zfs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ZFS_ONLINE_EXPAND); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceOr(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_flags = __pyx_t_9;
1301:
+1302: if libzfs.zpool_vdev_online(self.zpool.handle, self.path, flags, &newstate) != 0:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(1, 1302, __pyx_L1_error) __pyx_t_3 = ((zpool_vdev_online(__pyx_v_self->zpool->handle, __pyx_t_10, __pyx_v_flags, (&__pyx_v_newstate)) != 0) != 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_3) { /* … */ }
+1303: raise self.root.get_error()
__pyx_t_4 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1303, __pyx_L1_error)
1304:
+1305: self.root.write_history(command, '-e' if expand else '',self.zpool.name, self.path)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_expand); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1305, __pyx_L1_error) if (__pyx_t_3) { __Pyx_INCREF(__pyx_kp_s_e); __pyx_t_6 = __pyx_kp_s_e; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_6 = __pyx_kp_s__11; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->zpool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } __pyx_t_13 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_7, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_7, __pyx_t_11); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1306:
+1307: def degrade(self, aux):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_23degrade(PyObject *__pyx_v_self, PyObject *__pyx_v_aux); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_23degrade(PyObject *__pyx_v_self, PyObject *__pyx_v_aux) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("degrade (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_22degrade(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((PyObject *)__pyx_v_aux)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_22degrade(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_aux) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("degrade", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSVdev.degrade", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1308: if libzfs.zpool_vdev_degrade(self.zpool.handle, self.guid, int(aux)):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_uint64_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_aux); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((vdev_aux_t)__Pyx_PyInt_As_vdev_aux_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = (zpool_vdev_degrade(__pyx_v_self->zpool->handle, __pyx_t_2, __pyx_t_3) != 0); if (__pyx_t_4) { /* … */ }
+1309: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1309, __pyx_L1_error)
1310:
+1311: def fault(self, aux):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_25fault(PyObject *__pyx_v_self, PyObject *__pyx_v_aux); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_25fault(PyObject *__pyx_v_self, PyObject *__pyx_v_aux) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fault (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_24fault(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((PyObject *)__pyx_v_aux)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_24fault(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_aux) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fault", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSVdev.fault", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1312: if libzfs.zpool_vdev_fault(self.zpool.handle, self.guid, int(aux)):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_uint64_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1312, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_aux); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((vdev_aux_t)__Pyx_PyInt_As_vdev_aux_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1312, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = (zpool_vdev_fault(__pyx_v_self->zpool->handle, __pyx_t_2, __pyx_t_3) != 0); if (__pyx_t_4) { /* … */ }
+1313: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1313, __pyx_L1_error)
1314:
1315: property type:
+1316: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4type_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4type_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4type___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4type___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdev.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_value); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1317: value = self.nvlist.get('type')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_value = __pyx_t_2; __pyx_t_2 = 0; /* … */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_n_s_type); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36);
+1318: if value == 'raidz':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_value, __pyx_n_s_raidz, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1318, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+1319: return value + str(self.nvlist.get('nparity'))
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_v_value, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_tuple__37 = PyTuple_Pack(1, __pyx_n_s_nparity); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37);
1320:
+1321: return value
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_value); __pyx_r = __pyx_v_value; goto __pyx_L0;
1322:
+1323: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSVdev_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_7ZFSVdev_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4type_2__set__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSVdev_4type_2__set__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZFSVdev.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1324: if value not in ('root', 'disk', 'file', 'raidz1', 'raidz2', 'raidz3', 'mirror'):
__Pyx_INCREF(__pyx_v_value); __pyx_t_1 = __pyx_v_value; __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_root, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_file, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz1, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz2, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_raidz3, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_mirror, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1324, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* … */ }
+1325: raise ValueError('Invalid vdev type')
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1325, __pyx_L1_error) /* … */ __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_Invalid_vdev_type); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38);
1326:
+1327: self.nvlist['type'] = value
if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_type, __pyx_v_value) < 0)) __PYX_ERR(1, 1327, __pyx_L1_error)
1328:
+1329: if value.startswith('raidz'):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_startswith); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1329, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_3) { /* … */ } /* … */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_n_s_raidz); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39);
+1330: self.nvlist['type'] = 'raidz'
if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_type, __pyx_n_s_raidz) < 0)) __PYX_ERR(1, 1330, __pyx_L1_error)
+1331: self.nvlist['nparity'] = long(value[-1])
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_value, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)(&PyLong_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_nparity, __pyx_t_4) < 0)) __PYX_ERR(1, 1331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1332:
1333: property guid:
+1334: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4guid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4guid_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4guid___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4guid___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdev.guid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1335: return self.nvlist.get('guid')
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_n_s_guid); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(1, 1335, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40);
1336:
1337: property path:
+1338: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4path_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4path_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4path___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4path___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSVdev.path.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1339: return self.nvlist.get('path')
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_n_s_path); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41);
1340:
+1341: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSVdev_4path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_7ZFSVdev_4path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4path_2__set__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSVdev_4path_2__set__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.path.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1342: self.nvlist['path'] = value
if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_path, __pyx_v_value) < 0)) __PYX_ERR(1, 1342, __pyx_L1_error)
1343:
1344: property status:
+1345: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_6status_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_6status_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_6status___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_6status___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_v_stats = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSVdev.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_stats); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1346: stats = self.nvlist['vdev_stats']
__pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stats = __pyx_t_1; __pyx_t_1 = 0;
+1347: return libzfs.zpool_state_to_name(stats[1], stats[2])
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_stats, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((vdev_state_t)__Pyx_PyInt_As_vdev_state_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_stats, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((vdev_aux_t)__Pyx_PyInt_As_vdev_aux_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyUnicode_FromString(zpool_state_to_name(__pyx_t_2, __pyx_t_3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1348:
1349: property size:
+1350: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_4size___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_4size___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSVdev.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1351: return self.nvlist['asize'] << self.nvlist['ashift']
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_asize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_ashift); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Lshift(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1352:
1353: property stats:
+1354: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5stats_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5stats_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_5stats___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_5stats___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { struct __pyx_obj_6libzfs_ZFSVdevStats *__pyx_v_ret = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSVdev.stats.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSVdev_8children_2generator6(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
1355: cdef ZFSVdevStats ret
1356:
+1357: ret = ZFSVdevStats.__new__(ZFSVdevStats)
__pyx_t_1 = __pyx_tp_new_6libzfs_ZFSVdevStats(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdevStats), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6libzfs_ZFSVdevStats)))) __PYX_ERR(1, 1357, __pyx_L1_error) __pyx_v_ret = ((struct __pyx_obj_6libzfs_ZFSVdevStats *)__pyx_t_1); __pyx_t_1 = 0;
+1358: ret.vdev = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_ret->vdev); __Pyx_DECREF(((PyObject *)__pyx_v_ret->vdev)); __pyx_v_ret->vdev = __pyx_v_self;
+1359: ret.nvlist = self.nvlist
__pyx_t_1 = ((PyObject *)__pyx_v_self->nvlist); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_ret->nvlist); __Pyx_DECREF(((PyObject *)__pyx_v_ret->nvlist)); __pyx_v_ret->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
+1360: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ret)); __pyx_r = ((PyObject *)__pyx_v_ret); goto __pyx_L0;
1361:
1362: property children:
+1363: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_8children_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_8children_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_8children___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_8children___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_7___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_7___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_7___get__(__pyx_ptype_6libzfs___pyx_scope_struct_7___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSVdev_8children_2generator6, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSVdev___get); if (unlikely(!gen)) __PYX_ERR(1, 1363, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSVdev.children.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSVdev_8children_2generator6(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1363, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_7___get__ { PyObject_HEAD PyObject *__pyx_v_i; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
1364: cdef ZFSVdev vdev
1365:
+1366: if 'children' not in self.nvlist:
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_children, ((PyObject *)__pyx_cur_scope->__pyx_v_self->nvlist), Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1366, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1367: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1368:
+1369: for i in self.nvlist.get_raw('children'):
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_self->nvlist->__pyx_vtab)->get_raw(__pyx_cur_scope->__pyx_v_self->nvlist, __pyx_n_s_children); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1369, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1369, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1369, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1369, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1370: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1370, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vdev, ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+1371: vdev.nvlist = i
if (!(likely(((__pyx_cur_scope->__pyx_v_i) == Py_None) || likely(__Pyx_TypeTest(__pyx_cur_scope->__pyx_v_i, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1371, __pyx_L1_error) __pyx_t_3 = __pyx_cur_scope->__pyx_v_i; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->nvlist)); __pyx_cur_scope->__pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_3); __pyx_t_3 = 0;
+1372: vdev.zpool = self.zpool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->zpool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->zpool)); __pyx_cur_scope->__pyx_v_vdev->zpool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+1373: vdev.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->root)); __pyx_cur_scope->__pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+1374: vdev.parent = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->parent); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->parent)); __pyx_cur_scope->__pyx_v_vdev->parent = __pyx_cur_scope->__pyx_v_self;
+1375: vdev.group = self.group
__pyx_t_3 = __pyx_cur_scope->__pyx_v_self->group; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->group); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_vdev->group); __pyx_cur_scope->__pyx_v_vdev->group = __pyx_t_3; __pyx_t_3 = 0;
+1376: yield vdev
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_vdev); __Pyx_XGIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_4); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1376, __pyx_L1_error)
1377:
+1378: def __set__(self, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSVdev_8children_4__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_7ZFSVdev_8children_4__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_8children_3__set__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSVdev_8children_3__set__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self, PyObject *__pyx_v_value) { PyObject *__pyx_v_i = NULL; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSVdev.children.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1379: self.nvlist['children'] = [(<ZFSVdev>i).nvlist for i in value]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_2 = __pyx_v_value; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1379, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1379, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 1379, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1379, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_i)->nvlist))) __PYX_ERR(1, 1379, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->nvlist), __pyx_n_s_children, __pyx_t_1) < 0)) __PYX_ERR(1, 1379, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1380:
1381: property disks:
+1382: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5disks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSVdev_5disks_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSVdev_5disks___get__(((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSVdev_5disks___get__(struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSVdev.disks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1383: if self.type == 'disk':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_disk, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1383, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1384: return [self.path]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+1385: elif self.type == 'file':
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_file, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1385, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { /* … */ }
+1386: return []
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1387: else:
+1388: result = []
/*else*/ { __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = __pyx_t_3; __pyx_t_3 = 0;
+1389: for i in self.children:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1389, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1389, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1389, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1389, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1390: result += i.disks
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_disks); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0;
1391:
+1392: return result
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0; }
1393:
1394:
+1395: cdef class ZPoolScrub(object):
struct __pyx_obj_6libzfs_ZPoolScrub { PyObject_HEAD struct __pyx_obj_6libzfs_ZFS *root; struct __pyx_obj_6libzfs_ZFSPool *pool; PyObject *stat; };
+1396: cdef readonly ZFS root
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4root_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_4root___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_4root___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __pyx_r = ((PyObject *)__pyx_v_self->root); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1397: cdef readonly ZFSPool pool
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4pool_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4pool_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_4pool___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_4pool___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->pool)); __pyx_r = ((PyObject *)__pyx_v_self->pool); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1398: cdef readonly object stat
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4stat_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_4stat_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_4stat___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_4stat___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->stat); __pyx_r = __pyx_v_self->stat; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1399:
+1400: def __init__(self, ZFS root, ZFSPool pool):
/* Python wrapper */ static int __pyx_pw_6libzfs_10ZPoolScrub_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_10ZPoolScrub_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_6libzfs_ZFS *__pyx_v_root = 0; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_root,&__pyx_n_s_pool,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_root)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pool)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(1, 1400, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 1400, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_root = ((struct __pyx_obj_6libzfs_ZFS *)values[0]); __pyx_v_pool = ((struct __pyx_obj_6libzfs_ZFSPool *)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1400, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZPoolScrub.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_6libzfs_ZFS, 1, "root", 0))) __PYX_ERR(1, 1400, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pool), __pyx_ptype_6libzfs_ZFSPool, 1, "pool", 0))) __PYX_ERR(1, 1400, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub___init__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self), __pyx_v_root, __pyx_v_pool); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_10ZPoolScrub___init__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self, struct __pyx_obj_6libzfs_ZFS *__pyx_v_root, struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_pool) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZPoolScrub.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1401: self.root = root
__Pyx_INCREF(((PyObject *)__pyx_v_root)); __Pyx_GIVEREF(((PyObject *)__pyx_v_root)); __Pyx_GOTREF(__pyx_v_self->root); __Pyx_DECREF(((PyObject *)__pyx_v_self->root)); __pyx_v_self->root = __pyx_v_root;
+1402: self.pool = pool
__Pyx_INCREF(((PyObject *)__pyx_v_pool)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pool)); __Pyx_GOTREF(__pyx_v_self->pool); __Pyx_DECREF(((PyObject *)__pyx_v_self->pool)); __pyx_v_self->pool = __pyx_v_pool;
+1403: self.stat = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->stat); __Pyx_DECREF(__pyx_v_self->stat); __pyx_v_self->stat = Py_None;
+1404: if 'scan_stats' in pool.config['vdev_tree']:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pool), __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_scan_stats, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1404, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ }
+1405: self.stat = pool.config['vdev_tree']['scan_stats']
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pool), __pyx_n_s_config); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_GetItem(__pyx_t_2, __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_scan_stats); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->stat); __Pyx_DECREF(__pyx_v_self->stat); __pyx_v_self->stat = __pyx_t_2; __pyx_t_2 = 0;
1406:
1407: property state:
+1408: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_5state_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_5state_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_5state___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_5state___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolScrub.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1409: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1409, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1410: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1411:
+1412: return ScanState(self.stat[1])
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ScanState); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_self->stat, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1413:
1414: property function:
+1415: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_8function_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_8function_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_8function___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_8function___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolScrub.function.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1416: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1416, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1417: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1418:
+1419: return ScanFunction(self.stat[0])
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ScanFunction); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_self->stat, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1420:
1421: property start_time:
+1422: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_10start_time_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_10start_time_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_10start_time___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_10start_time___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolScrub.start_time.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1423: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1423, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1424: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1425:
+1426: return datetime.fromtimestamp(self.stat[2])
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_datetime); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fromtimestamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_self->stat, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1427:
1428: property end_time:
+1429: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_8end_time_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_8end_time_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_8end_time___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_8end_time___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZPoolScrub.end_time.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1430: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1430, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1431: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1432:
+1433: return datetime.fromtimestamp(self.stat[3])
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_datetime); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fromtimestamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_self->stat, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1434:
1435: property bytes_to_scan:
+1436: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_13bytes_to_scan_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_13bytes_to_scan_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_13bytes_to_scan___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_13bytes_to_scan___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolScrub.bytes_to_scan.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1437: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1437, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1438: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1439:
+1440: return self.stat[4]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->stat, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1441:
1442: property bytes_scanned:
+1443: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_13bytes_scanned_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_13bytes_scanned_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_13bytes_scanned___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_13bytes_scanned___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolScrub.bytes_scanned.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1444: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1444, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1445: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1446:
+1447: return self.stat[5]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->stat, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1448:
1449: property errors:
+1450: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_6errors_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_6errors_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_6errors___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_6errors___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolScrub.errors.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1451: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1451, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1452: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1453:
+1454: return self.stat[8]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->stat, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1455:
1456: property percentage:
+1457: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_10percentage_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_10percentage_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_10percentage___get__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_10percentage___get__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZPoolScrub.percentage.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1458: if not self.stat:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1458, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
}
+1459: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1460:
+1461: if not self.bytes_to_scan:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_to_scan); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1461, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = ((!__pyx_t_2) != 0); if (__pyx_t_1) { /* … */ }
+1462: return 0
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_0); __pyx_r = __pyx_int_0; goto __pyx_L0;
1463:
+1464: return (<float>self.bytes_scanned / <float>self.bytes_to_scan) * 100
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_scanned); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(1, 1464, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_to_scan); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(1, 1464, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(((float)__pyx_t_5) == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(1, 1464, __pyx_L1_error) } __pyx_t_3 = PyFloat_FromDouble(((((float)__pyx_t_4) / ((float)__pyx_t_5)) * 100.0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1465:
+1466: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZPoolScrub_3__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZPoolScrub_2__getstate__(((struct __pyx_obj_6libzfs_ZPoolScrub *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZPoolScrub_2__getstate__(struct __pyx_obj_6libzfs_ZPoolScrub *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZPoolScrub.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1467: return {
__Pyx_XDECREF(__pyx_r);
+1468: 'function': self.function.name if self.function else None,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_5; __pyx_t_5 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_2 = Py_None; } if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_function, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1469: 'state': self.state.name if self.stat else None,
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->stat); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1469, __pyx_L1_error) if (__pyx_t_4) { __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_state); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_2 = Py_None; } if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_state, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1470: 'start_time': self.start_time,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_start_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_start_time, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1471: 'end_time': self.end_time,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_end_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_end_time, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1472: 'percentage': self.percentage,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_percentage); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_percentage, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1473: 'bytes_to_process': self.bytes_scanned,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_scanned); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_bytes_to_process, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1474: 'bytes_processed': self.bytes_to_scan,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bytes_to_scan); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_bytes_processed, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1475: 'errors': self.errors
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_errors); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_errors, __pyx_t_2) < 0) __PYX_ERR(1, 1468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1476: }
1477:
1478:
+1479: cdef class ZFSPool(object):
struct __pyx_obj_6libzfs_ZFSPool { PyObject_HEAD struct __pyx_vtabstruct_6libzfs_ZFSPool *__pyx_vtab; zpool_handle_t *handle; int free; struct __pyx_obj_6libzfs_ZFS *root; }; /* … */ struct __pyx_vtabstruct_6libzfs_ZFSPool { int (*__pyx___iterate_props)(int, void *); struct __pyx_obj_6libzfs_NVList *(*get_raw_config)(struct __pyx_obj_6libzfs_ZFSPool *); }; static struct __pyx_vtabstruct_6libzfs_ZFSPool *__pyx_vtabptr_6libzfs_ZFSPool;
1480: cdef libzfs.zpool_handle_t* handle
1481: cdef bint free
+1482: cdef readonly ZFS root
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4root_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_4root___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_4root___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __pyx_r = ((PyObject *)__pyx_v_self->root); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1483:
+1484: def __cinit__(self):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSPool_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_7ZFSPool_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = __pyx_pf_6libzfs_7ZFSPool___cinit__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSPool___cinit__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__", 0); /* … */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1485: self.free = True
__pyx_v_self->free = 1;
1486:
+1487: def __init__(self):
/* Python wrapper */ static int __pyx_pw_6libzfs_7ZFSPool_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_7ZFSPool_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_6libzfs_7ZFSPool_2__init__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_7ZFSPool_2__init__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSPool.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1488: raise RuntimeError('ZFSPool cannot be instantiated by the user')
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1488, __pyx_L1_error) /* … */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_ZFSPool_cannot_be_instantiated_b); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(1, 1488, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42);
1489:
+1490: def __dealloc__(self):
/* Python wrapper */ static void __pyx_pw_6libzfs_7ZFSPool_5__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_6libzfs_7ZFSPool_5__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_6libzfs_7ZFSPool_4__dealloc__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_6libzfs_7ZFSPool_4__dealloc__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* … */ /* function exit code */ __Pyx_RefNannyFinishContext(); }
+1491: if self.free:
__pyx_t_1 = (__pyx_v_self->free != 0); if (__pyx_t_1) { /* … */ }
+1492: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+1493: libzfs.zpool_close(self.handle)
zpool_close(__pyx_v_self->handle); }
1494:
+1495: self.handle = NULL
__pyx_v_self->handle = NULL;
1496:
+1497: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_7__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_7__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_6__str__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_6__str__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSPool.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1498: return "<libzfs.ZFSPool name '{0}' guid '{1}'>".format(self.name, self.guid)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSPool_name_0_guid_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1499:
+1500: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_8__repr__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_8__repr__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1501: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1502:
+1503: def __getstate__(self, datasets_recursive=True):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_datasets_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_datasets_recursive,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_True); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_datasets_recursive); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getstate__") < 0)) __PYX_ERR(1, 1503, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_datasets_recursive = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getstate__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1503, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSPool.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSPool_10__getstate__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self), __pyx_v_datasets_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_10__getstate__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self, PyObject *__pyx_v_datasets_recursive) { PyObject *__pyx_v_root_ds = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("libzfs.ZFSPool.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_root_ds); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1504: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L10_try_end; __pyx_L3_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L4_exception_handled:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L10_try_end:; }
+1505: root_ds = self.root_dataset.__getstate__(datasets_recursive)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_root_dataset); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_getstate); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } if (!__pyx_t_5) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_datasets_recursive); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_datasets_recursive); __Pyx_GIVEREF(__pyx_v_datasets_recursive); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_datasets_recursive); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1505, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_root_ds = __pyx_t_4; __pyx_t_4 = 0;
+1506: except (ZFSException, AttributeError):
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1506, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_t_4) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("libzfs.ZFSPool.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1506, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7);
+1507: root_ds = None
__Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_root_ds, Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
1508:
+1509: return {
__Pyx_XDECREF(__pyx_r);
+1510: 'name': self.name,
__pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_name_2, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1511: 'id': self.name,
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_id, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1512: 'guid': str(self.guid),
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_guid, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1513: 'hostname': self.hostname,
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hostname); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_hostname, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1514: 'status': self.status,
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_status, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1515: 'error_count': self.error_count,
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_error_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_error_count, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1516: 'root_dataset': root_ds,
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_root_dataset, __pyx_v_root_ds) < 0) __PYX_ERR(1, 1510, __pyx_L1_error)
+1517: 'properties': {k: p.__getstate__() for k, p in self.properties.items()} if self.properties else None,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 1517, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_9) { { /* enter inner scope */ PyObject *__pyx_7genexpr__pyx_v_k = NULL; PyObject *__pyx_7genexpr__pyx_v_p = NULL; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_properties); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_items); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } if (__pyx_t_10) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) } __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_11 = __pyx_t_5; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1517, __pyx_L15_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_11))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1517, __pyx_L15_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1517, __pyx_L15_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1517, __pyx_L15_error) } break; } __Pyx_GOTREF(__pyx_t_5); } if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 1517, __pyx_L15_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_10 = PyList_GET_ITEM(sequence, 0); __pyx_t_14 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_14); #else __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_14); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_15)->tp_iternext; index = 0; __pyx_t_10 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_10)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_14)) goto __pyx_L18_unpacking_failed; __Pyx_GOTREF(__pyx_t_14); if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 2) < 0) __PYX_ERR(1, 1517, __pyx_L15_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L19_unpacking_done; __pyx_L18_unpacking_failed:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 1517, __pyx_L15_error) __pyx_L19_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_p, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_p, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1517, __pyx_L15_error) } __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 1517, __pyx_L15_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_k); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_p); goto __pyx_L20_exit_scope; __pyx_L15_error:; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_k); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_p); goto __pyx_L1_error; __pyx_L20_exit_scope:; } /* exit inner scope */ __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_6 = Py_None; } if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_properties, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1518: 'features': [i.__getstate__() for i in self.features] if self.features else None,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_features); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_9) { __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_features); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_5 = __pyx_t_11; __Pyx_INCREF(__pyx_t_5); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1518, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1518, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1518, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1518, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_11 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1518, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_11))) __PYX_ERR(1, 1518, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_6 = Py_None; } if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_features, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1519: 'scan': self.scrub.__getstate__(),
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scrub); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getstate); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (__pyx_t_4) { __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1519, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_scan, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1520: 'root_vdev': self.root_vdev.__getstate__(False),
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_root_vdev); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_getstate); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_root_vdev, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_tuple__43 = PyTuple_Pack(1, Py_False); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(1, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43);
1521: 'groups': {
+1522: 'data': [i.__getstate__() for i in self.data_vdevs],
__pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data_vdevs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_11 = __pyx_t_4; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1522, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_11))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1522, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1522, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1522, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1522, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_4))) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_data, __pyx_t_5) < 0) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1523: 'log': [i.__getstate__() for i in self.log_vdevs],
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_log_vdevs); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_4 = __pyx_t_11; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1523, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1523, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1523, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_13(__pyx_t_4); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1523, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_11 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1523, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_11))) __PYX_ERR(1, 1523, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_log, __pyx_t_5) < 0) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1524: 'cache': [i.__getstate__() for i in self.cache_vdevs],
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cache_vdevs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { __pyx_t_11 = __pyx_t_4; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1524, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_11))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1524, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1524, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1524, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1524, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_4))) __PYX_ERR(1, 1524, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_cache, __pyx_t_5) < 0) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1525: 'spare': [i.__getstate__() for i in self.spare_vdevs]
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_spare_vdevs); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_4 = __pyx_t_11; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0; __pyx_t_13 = NULL; } else { __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1525, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_13)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1525, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(1, 1525, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_13(__pyx_t_4); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1525, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } if (__pyx_t_10) { __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { __pyx_t_11 = __Pyx_PyObject_CallNoArg(__pyx_t_14); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1525, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_11))) __PYX_ERR(1, 1525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_spare, __pyx_t_5) < 0) __PYX_ERR(1, 1522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_groups, __pyx_t_6) < 0) __PYX_ERR(1, 1510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
1526: },
1527: }
1528:
1529: @staticmethod
+1530: cdef int __iterate_props(int proptype, void* arg) nogil:
static int __pyx_f_6libzfs_7ZFSPool___iterate_props(int __pyx_v_proptype, void *__pyx_v_arg) { PyObject *__pyx_v_proptypes = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_props", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSPool.__iterate_props", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_proptypes); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+1531: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { __pyx_L6_return: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L3_return; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } } } } /*finally:*/ { __pyx_L3_return: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L0; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } }
+1532: proptypes = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_proptypes = __pyx_t_1;
__pyx_t_1 = 0;
+1533: proptypes.append(proptype)
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_proptype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1533, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_proptypes, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 1533, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1534: return zfs.ZPROP_CONT
__pyx_r = ZPROP_CONT; goto __pyx_L6_return; }
1535:
1536: property root_dataset:
+1537: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_12root_dataset_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_12root_dataset_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_12root_dataset___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_12root_dataset___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { char const *__pyx_v_c_name; zfs_handle_t *__pyx_v_handle; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_dataset = 0; PyObject *__pyx_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSPool.root_dataset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_dataset); __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1538: cdef const char *c_name;
+1539: cdef libzfs.zfs_handle_t* handle = NULL
__pyx_v_handle = NULL;
1540: cdef ZFSDataset dataset
1541:
+1542: name = self.name
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = __pyx_t_1; __pyx_t_1 = 0;
+1543: c_name = name
__pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(1, 1543, __pyx_L1_error) __pyx_v_c_name = __pyx_t_2;
1544:
+1545: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1546: handle = libzfs.zfs_open(self.root.handle, c_name, zfs.ZFS_TYPE_FILESYSTEM)
__pyx_v_handle = zfs_open(__pyx_v_self->root->handle, __pyx_v_c_name, ZFS_TYPE_FILESYSTEM); }
1547:
+1548: if handle == NULL:
__pyx_t_3 = ((__pyx_v_handle == NULL) != 0); if (__pyx_t_3) { /* … */ }
+1549: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1549, __pyx_L1_error)
1550:
+1551: dataset = ZFSDataset.__new__(ZFSDataset)
__pyx_t_1 = __pyx_tp_new_6libzfs_ZFSDataset(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSDataset), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6libzfs_ZFSDataset)))) __PYX_ERR(1, 1551, __pyx_L1_error) __pyx_v_dataset = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_1); __pyx_t_1 = 0;
+1552: dataset.root = self.root
__pyx_t_1 = ((PyObject *)__pyx_v_self->root); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.root)); __pyx_v_dataset->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_1); __pyx_t_1 = 0;
+1553: dataset.pool = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_dataset->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_v_dataset->__pyx_base.pool)); __pyx_v_dataset->__pyx_base.pool = __pyx_v_self;
+1554: dataset.handle = handle
__pyx_v_dataset->__pyx_base.handle = __pyx_v_handle;
+1555: return dataset
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_dataset)); __pyx_r = ((PyObject *)__pyx_v_dataset); goto __pyx_L0;
1556:
1557: property root_vdev:
+1558: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9root_vdev_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9root_vdev_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_9root_vdev___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_9root_vdev___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev = 0; struct __pyx_obj_6libzfs_NVList *__pyx_v_vdev_tree = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.root_vdev.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_vdev); __Pyx_XDECREF((PyObject *)__pyx_v_vdev_tree); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_10data_vdevs_2generator7(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
1559: cdef ZFSVdev vdev
+1560: cdef NVList vdev_tree = self.get_raw_config().get_raw('vdev_tree')
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1)->__pyx_vtab)->get_raw(((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1), __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1560, __pyx_L1_error) __pyx_v_vdev_tree = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1561:
+1562: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_2 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1562, __pyx_L1_error) __pyx_v_vdev = ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2); __pyx_t_2 = 0;
+1563: vdev.root = self.root
__pyx_t_2 = ((PyObject *)__pyx_v_self->root); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_v_vdev->root)); __pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_2); __pyx_t_2 = 0;
+1564: vdev.zpool = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_v_vdev->zpool)); __pyx_v_vdev->zpool = __pyx_v_self;
+1565: vdev.nvlist = <NVList>vdev_tree
__pyx_t_2 = ((PyObject *)__pyx_v_vdev_tree); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_v_vdev->nvlist)); __pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+1566: return vdev
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_v_vdev); goto __pyx_L0;
1567:
1568: property data_vdevs:
+1569: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_10data_vdevs_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_10data_vdevs_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_10data_vdevs___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_10data_vdevs___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_8___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_8___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_8___get__(__pyx_ptype_6libzfs___pyx_scope_struct_8___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSPool_10data_vdevs_2generator7, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSPool___get); if (unlikely(!gen)) __PYX_ERR(1, 1569, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPool.data_vdevs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_10data_vdevs_2generator7(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1569, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_9log_vdevs_2generator8(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_8___get__ { PyObject_HEAD PyObject *__pyx_v_child; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev; struct __pyx_obj_6libzfs_NVList *__pyx_v_vdev_tree; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
1570: cdef ZFSVdev vdev
+1571: cdef NVList vdev_tree = self.get_raw_config().get_raw('vdev_tree')
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1)->__pyx_vtab)->get_raw(((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1), __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1571, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_vdev_tree = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1572:
+1573: if 'children' not in vdev_tree:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_children, ((PyObject *)__pyx_cur_scope->__pyx_v_vdev_tree), Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1573, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+1574: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1575:
+1576: for child in vdev_tree.get_raw('children'):
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_vdev_tree->__pyx_vtab)->get_raw(__pyx_cur_scope->__pyx_v_vdev_tree, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1576, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1576, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1576, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1576, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1577: if not child['is_log']:
__pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_child, __pyx_n_s_is_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1577, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); if (__pyx_t_3) { /* … */ }
+1578: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_2 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1578, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vdev, ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+1579: vdev.root = self.root
__pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->root); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->root)); __pyx_cur_scope->__pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_2); __pyx_t_2 = 0;
+1580: vdev.zpool = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->zpool)); __pyx_cur_scope->__pyx_v_vdev->zpool = __pyx_cur_scope->__pyx_v_self;
+1581: vdev.nvlist = <NVList>child
__pyx_t_2 = __pyx_cur_scope->__pyx_v_child; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->nvlist)); __pyx_cur_scope->__pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+1582: vdev.group = 'data'
__Pyx_INCREF(__pyx_n_s_data); __Pyx_GIVEREF(__pyx_n_s_data); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->group); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_vdev->group); __pyx_cur_scope->__pyx_v_vdev->group = __pyx_n_s_data;
+1583: yield vdev
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_vdev); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L8_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1583, __pyx_L1_error)
1584:
1585: property log_vdevs:
+1586: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9log_vdevs_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_9log_vdevs_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_9log_vdevs___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_9log_vdevs___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_9___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_9___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_9___get__(__pyx_ptype_6libzfs___pyx_scope_struct_9___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSPool_9log_vdevs_2generator8, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSPool___get); if (unlikely(!gen)) __PYX_ERR(1, 1586, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPool.log_vdevs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_9log_vdevs_2generator8(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1586, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_11cache_vdevs_2generator9(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_9___get__ { PyObject_HEAD PyObject *__pyx_v_child; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev; struct __pyx_obj_6libzfs_NVList *__pyx_v_vdev_tree; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
1587: cdef ZFSVdev vdev
+1588: cdef NVList vdev_tree = self.get_raw_config().get_raw('vdev_tree')
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1)->__pyx_vtab)->get_raw(((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1), __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1588, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_vdev_tree = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1589:
+1590: if 'children' not in vdev_tree:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_children, ((PyObject *)__pyx_cur_scope->__pyx_v_vdev_tree), Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1590, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+1591: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1592:
+1593: for child in vdev_tree.get_raw('children'):
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_vdev_tree->__pyx_vtab)->get_raw(__pyx_cur_scope->__pyx_v_vdev_tree, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1593, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1593, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1593, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1593, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1594: if child['is_log']:
__pyx_t_2 = PyObject_GetItem(__pyx_cur_scope->__pyx_v_child, __pyx_n_s_is_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* … */ }
+1595: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_2 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1595, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vdev, ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+1596: vdev.root = self.root
__pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->root); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->root)); __pyx_cur_scope->__pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_2); __pyx_t_2 = 0;
+1597: vdev.zpool = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->zpool)); __pyx_cur_scope->__pyx_v_vdev->zpool = __pyx_cur_scope->__pyx_v_self;
+1598: vdev.nvlist = <NVList>child
__pyx_t_2 = __pyx_cur_scope->__pyx_v_child; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->nvlist)); __pyx_cur_scope->__pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+1599: vdev.group = 'log'
__Pyx_INCREF(__pyx_n_s_log); __Pyx_GIVEREF(__pyx_n_s_log); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->group); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_vdev->group); __pyx_cur_scope->__pyx_v_vdev->group = __pyx_n_s_log;
+1600: yield vdev
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_vdev); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L8_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1600, __pyx_L1_error)
1601:
1602: property cache_vdevs:
+1603: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11cache_vdevs_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11cache_vdevs_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_11cache_vdevs___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_11cache_vdevs___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_10___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_10___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_10___get__(__pyx_ptype_6libzfs___pyx_scope_struct_10___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSPool_11cache_vdevs_2generator9, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSPool___get); if (unlikely(!gen)) __PYX_ERR(1, 1603, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPool.cache_vdevs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_11cache_vdevs_2generator9(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1603, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_11spare_vdevs_2generator10(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_10___get__ { PyObject_HEAD PyObject *__pyx_v_child; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev; struct __pyx_obj_6libzfs_NVList *__pyx_v_vdev_tree; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
1604: cdef ZFSVdev vdev
+1605: cdef NVList vdev_tree = self.get_raw_config().get_raw('vdev_tree')
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1)->__pyx_vtab)->get_raw(((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1), __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1605, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_vdev_tree = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1606:
+1607: if 'l2cache' not in vdev_tree:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_l2cache, ((PyObject *)__pyx_cur_scope->__pyx_v_vdev_tree), Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1607, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+1608: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1609:
+1610: for child in vdev_tree.get_raw('l2cache'):
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_vdev_tree->__pyx_vtab)->get_raw(__pyx_cur_scope->__pyx_v_vdev_tree, __pyx_n_s_l2cache); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1610, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1610, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1610, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1610, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1611: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_2 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1611, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vdev, ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+1612: vdev.root = self.root
__pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->root); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->root)); __pyx_cur_scope->__pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_2); __pyx_t_2 = 0;
+1613: vdev.zpool = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->zpool)); __pyx_cur_scope->__pyx_v_vdev->zpool = __pyx_cur_scope->__pyx_v_self;
+1614: vdev.nvlist = <NVList>child
__pyx_t_2 = __pyx_cur_scope->__pyx_v_child; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->nvlist)); __pyx_cur_scope->__pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+1615: vdev.group = 'cache'
__Pyx_INCREF(__pyx_n_s_cache); __Pyx_GIVEREF(__pyx_n_s_cache); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->group); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_vdev->group); __pyx_cur_scope->__pyx_v_vdev->group = __pyx_n_s_cache;
+1616: yield vdev
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_vdev); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1616, __pyx_L1_error)
1617:
1618: property spare_vdevs:
+1619: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11spare_vdevs_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11spare_vdevs_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_11spare_vdevs___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_11spare_vdevs___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_11___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_11___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_11___get__(__pyx_ptype_6libzfs___pyx_scope_struct_11___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSPool_11spare_vdevs_2generator10, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSPool___get); if (unlikely(!gen)) __PYX_ERR(1, 1619, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPool.spare_vdevs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_11spare_vdevs_2generator10(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1619, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_11___get__ { PyObject_HEAD PyObject *__pyx_v_child; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vdev; struct __pyx_obj_6libzfs_NVList *__pyx_v_vdev_tree; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
1620: cdef ZFSVdev vdev
+1621: cdef NVList vdev_tree = self.get_raw_config().get_raw('vdev_tree')
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_cur_scope->__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1)->__pyx_vtab)->get_raw(((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1), __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_NVList))))) __PYX_ERR(1, 1621, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_vdev_tree = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1622:
+1623: if 'spares' not in vdev_tree:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_spares, ((PyObject *)__pyx_cur_scope->__pyx_v_vdev_tree), Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1623, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+1624: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1625:
+1626: for child in vdev_tree.get_raw('spares'):
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_vdev_tree->__pyx_vtab)->get_raw(__pyx_cur_scope->__pyx_v_vdev_tree, __pyx_n_s_spares); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1626, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1626, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1626, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1626, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_child); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_child, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1627: vdev = ZFSVdev.__new__(ZFSVdev)
__pyx_t_2 = __pyx_tp_new_6libzfs_ZFSVdev(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSVdev), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6libzfs_ZFSVdev)))) __PYX_ERR(1, 1627, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_vdev, ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+1628: vdev.root = self.root
__pyx_t_2 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->root); __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->root)); __pyx_cur_scope->__pyx_v_vdev->root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_2); __pyx_t_2 = 0;
+1629: vdev.zpool = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->zpool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->zpool)); __pyx_cur_scope->__pyx_v_vdev->zpool = __pyx_cur_scope->__pyx_v_self;
+1630: vdev.nvlist = <NVList>child
__pyx_t_2 = __pyx_cur_scope->__pyx_v_child; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev->nvlist)); __pyx_cur_scope->__pyx_v_vdev->nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+1631: vdev.group = 'spare'
__Pyx_INCREF(__pyx_n_s_spare); __Pyx_GIVEREF(__pyx_n_s_spare); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_vdev->group); __Pyx_DECREF(__pyx_cur_scope->__pyx_v_vdev->group); __pyx_cur_scope->__pyx_v_vdev->group = __pyx_n_s_spare;
+1632: yield vdev
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_vdev)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_vdev); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1632, __pyx_L1_error)
1633:
1634: property groups:
+1635: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6groups_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6groups_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_6groups___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_6groups___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPool.groups.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1636: return {
__Pyx_XDECREF(__pyx_r);
+1637: 'data': list(self.data_vdevs),
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data_vdevs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_data, __pyx_t_3) < 0) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1638: 'log': list(self.log_vdevs),
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_log_vdevs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_log, __pyx_t_2) < 0) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1639: 'cache': list(self.cache_vdevs),
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cache_vdevs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PySequence_List(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_cache, __pyx_t_3) < 0) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1640: 'spare': list(self.spare_vdevs)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_spare_vdevs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_spare, __pyx_t_2) < 0) __PYX_ERR(1, 1637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1641: }
1642:
1643: property name:
+1644: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_4name___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_4name___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSPool.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1645: return libzfs.zpool_get_name(self.handle)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(zpool_get_name(__pyx_v_self->handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1646:
1647: property guid:
+1648: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4guid_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_4guid_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_4guid___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_4guid___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.guid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1649: return self.config['pool_guid']
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_pool_guid); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1650:
1651: property hostname:
+1652: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_8hostname_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_8hostname_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_8hostname___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_8hostname___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.hostname.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1653: return self.config.get('hostname')
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple__44 = PyTuple_Pack(1, __pyx_n_s_hostname); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44);
1654:
1655: property state:
+1656: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5state_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5state_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_5state___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_5state___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSPool.state.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1657: return PoolState(self.config['state'])
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PoolState); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_config); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_state); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1658:
1659: property status:
+1660: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6status_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6status_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_6status___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_6status___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_v_stats = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_stats); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1661: stats = self.config['vdev_tree']['vdev_stats']
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_vdev_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_GetItem(__pyx_t_2, __pyx_n_s_vdev_stats); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_stats = __pyx_t_1; __pyx_t_1 = 0;
+1662: return libzfs.zpool_state_to_name(stats[1], stats[2])
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_stats, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = ((vdev_state_t)__Pyx_PyInt_As_vdev_state_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_stats, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = ((vdev_aux_t)__Pyx_PyInt_As_vdev_aux_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyUnicode_FromString(zpool_state_to_name(__pyx_t_3, __pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1663:
1664: property error_count:
+1665: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11error_count_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_11error_count_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_11error_count___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_11error_count___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.error_count.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1666: return self.config.get('error_count')
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_config); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple__45 = PyTuple_Pack(1, __pyx_n_s_error_count); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(1, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45);
1667:
1668: property config:
+1669: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6config_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_6config_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_6config___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_6config___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.config.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1670: return dict(self.get_raw_config())
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_v_self->__pyx_vtab)->get_raw_config(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1671:
1672: property properties:
+1673: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_10properties_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_10properties_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_10properties___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_10properties___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs_ZPoolProperty *__pyx_v_prop = 0; PyObject *__pyx_v_proptypes = NULL; PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPool.properties.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_prop); __Pyx_XDECREF(__pyx_v_proptypes); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_8features_2generator11(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
1674: cdef ZPoolProperty prop
+1675: proptypes = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_proptypes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1676: result = {}
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1677:
+1678: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1679: libzfs.zprop_iter(self.__iterate_props, <void*>proptypes, True, True, zfs.ZFS_TYPE_POOL)
zprop_iter(((struct __pyx_vtabstruct_6libzfs_ZFSPool *)__pyx_v_self->__pyx_vtab)->__pyx___iterate_props, ((void *)__pyx_v_proptypes), 1, 1, ZFS_TYPE_POOL); }
1680:
+1681: for x in proptypes:
__pyx_t_1 = __pyx_v_proptypes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 1681, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1682: prop = ZPoolProperty.__new__(ZPoolProperty)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZPoolProperty(((PyTypeObject *)__pyx_ptype_6libzfs_ZPoolProperty), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZPoolProperty)))) __PYX_ERR(1, 1682, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_prop, ((struct __pyx_obj_6libzfs_ZPoolProperty *)__pyx_t_3)); __pyx_t_3 = 0;
+1683: prop.pool = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_prop->pool); __Pyx_DECREF(((PyObject *)__pyx_v_prop->pool)); __pyx_v_prop->pool = __pyx_v_self;
+1684: prop.propid = x
__pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_x); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1684, __pyx_L1_error) __pyx_v_prop->propid = __pyx_t_4;
+1685: result[prop.name] = prop
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_prop), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyDict_SetItem(__pyx_v_result, __pyx_t_3, ((PyObject *)__pyx_v_prop)) < 0)) __PYX_ERR(1, 1685, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1686:
+1687: return result
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0;
1688:
1689: property features:
+1690: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_8features_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_8features_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_8features___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_8features___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_12___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_12___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_12___get__(__pyx_ptype_6libzfs___pyx_scope_struct_12___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_7ZFSPool_8features_2generator11, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSPool___get); if (unlikely(!gen)) __PYX_ERR(1, 1690, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPool.features.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_7ZFSPool_8features_2generator11(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1690, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_12___get__ { PyObject_HEAD struct __pyx_obj_6libzfs_ZPoolFeature *__pyx_v_f; zfeature_info_t *__pyx_v_feat; struct __pyx_obj_6libzfs_NVList *__pyx_v_features_nv; long __pyx_v_i; uintptr_t __pyx_v_nvl; struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self; spa_feature_t __pyx_t_0; long __pyx_t_1; };
1691: cdef ZPoolFeature f
1692: cdef NVList features_nv
1693: cdef zfs.zfeature_info_t* feat
1694: cdef uintptr_t nvl
1695:
+1696: if self.status == 'UNAVAIL':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_UNAVAIL, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 1696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1697: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
1698:
+1699: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L7; } __pyx_L7:; } }
+1700: nvl = <uintptr_t>libzfs.zpool_get_features(self.handle)
__pyx_cur_scope->__pyx_v_nvl = ((uintptr_t)zpool_get_features(__pyx_cur_scope->__pyx_v_self->handle)); }
1701:
+1702: features_nv = NVList(nvl)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_cur_scope->__pyx_v_nvl); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_features_nv = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
1703:
+1704: for i in range(0, zfs.SPA_FEATURES):
__pyx_t_4 = SPA_FEATURES; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_cur_scope->__pyx_v_i = __pyx_t_5;
+1705: feat = &zfs.spa_feature_table[i]
__pyx_cur_scope->__pyx_v_feat = (&(spa_feature_table[__pyx_cur_scope->__pyx_v_i]));
+1706: f = ZPoolFeature.__new__(ZPoolFeature)
__pyx_t_1 = __pyx_tp_new_6libzfs_ZPoolFeature(((PyTypeObject *)__pyx_ptype_6libzfs_ZPoolFeature), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6libzfs_ZPoolFeature)))) __PYX_ERR(1, 1706, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_f)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_f, ((struct __pyx_obj_6libzfs_ZPoolFeature *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+1707: f.feature = feat
__pyx_cur_scope->__pyx_v_f->feature = __pyx_cur_scope->__pyx_v_feat;
+1708: f.pool = self
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_self)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_f->pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_f->pool)); __pyx_cur_scope->__pyx_v_f->pool = __pyx_cur_scope->__pyx_v_self;
+1709: f.nvlist = features_nv
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_features_nv)); __Pyx_GIVEREF(((PyObject *)__pyx_cur_scope->__pyx_v_features_nv)); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_f->nvlist); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_f->nvlist)); __pyx_cur_scope->__pyx_v_f->nvlist = __pyx_cur_scope->__pyx_v_features_nv;
+1710: yield f
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_f)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_f); __pyx_cur_scope->__pyx_t_0 = __pyx_t_4; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_yield:; __pyx_t_4 = __pyx_cur_scope->__pyx_t_0; __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1710, __pyx_L1_error) }
1711:
1712: property disks:
+1713: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5disks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5disks_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_5disks___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_5disks___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_g = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSPool.disks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_g); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1714: result = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0;
+1715: for g in self.groups.values():
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_groups); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1715, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1715, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1715, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1715, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1715, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_g, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1716: for v in g:
if (likely(PyList_CheckExact(__pyx_v_g)) || PyTuple_CheckExact(__pyx_v_g)) { __pyx_t_1 = __pyx_v_g; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_g); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1716, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 1716, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 1716, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_7(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1716, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1717: result += v.disks
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_disks); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_8); __pyx_t_8 = 0;
1718:
+1719: return result
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0;
1720:
1721: property scrub:
+1722: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5scrub_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_5scrub_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_5scrub___get__(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_5scrub___get__(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.scrub.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1723: return ZPoolScrub(self.root, self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->root)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->root)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_ZPoolScrub), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1724:
+1725: cdef NVList get_raw_config(self):
static struct __pyx_obj_6libzfs_NVList *__pyx_f_6libzfs_7ZFSPool_get_raw_config(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { uintptr_t __pyx_v_nvl; struct __pyx_obj_6libzfs_NVList *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_raw_config", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.get_raw_config", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1726: cdef uintptr_t nvl = <uintptr_t>libzfs.zpool_get_config(self.handle, NULL)
__pyx_v_nvl = ((uintptr_t)zpool_get_config(__pyx_v_self->handle, NULL));
+1727: return NVList(nvl)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_nvl); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
1728:
+1729: def create(self, name, fsopts, fstype=DatasetType.FILESYSTEM, sparse_vol=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_fsopts = 0; PyObject *__pyx_v_fstype = 0; PyObject *__pyx_v_sparse_vol = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_fsopts,&__pyx_n_s_fstype,&__pyx_n_s_sparse_vol,0}; PyObject* values[4] = {0,0,0,0}; values[2] = __pyx_k__46; values[3] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fsopts)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("create", 0, 2, 4, 1); __PYX_ERR(1, 1729, __pyx_L3_error) } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fstype); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_sparse_vol); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(1, 1729, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_fsopts = values[1]; __pyx_v_fstype = values[2]; __pyx_v_sparse_vol = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("create", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1729, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSPool.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSPool_12create(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self), __pyx_v_name, __pyx_v_fsopts, __pyx_v_fstype, __pyx_v_sparse_vol); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_12create(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_fsopts, PyObject *__pyx_v_fstype, PyObject *__pyx_v_sparse_vol) { struct __pyx_obj_6libzfs_NVList *__pyx_v_cfsopts = 0; uint64_t __pyx_v_vol_reservation; char const *__pyx_v_c_name; zfs_type_t __pyx_v_c_fstype; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSPool.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cfsopts); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DatasetType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FILESYSTEM); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k__46 = __pyx_t_4; __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0;
+1730: cdef NVList cfsopts = NVList(otherdict=fsopts)
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_otherdict, __pyx_v_fsopts) < 0) __PYX_ERR(1, 1730, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cfsopts = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
1731: cdef uint64_t vol_reservation
+1732: cdef const char *c_name = name
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(1, 1732, __pyx_L1_error) __pyx_v_c_name = __pyx_t_3;
+1733: cdef zfs.zfs_type_t c_fstype = <zfs.zfs_type_t>fstype
__pyx_t_4 = ((zfs_type_t)__Pyx_PyInt_As_zfs_type_t(__pyx_v_fstype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1733, __pyx_L1_error) __pyx_v_c_fstype = ((zfs_type_t)__pyx_t_4);
1734: cdef int ret
1735:
+1736: if fstype == DatasetType.VOLUME and not sparse_vol:
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DatasetType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_VOLUME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_v_fstype, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1736, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 1736, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L4_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_sparse_vol); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 1736, __pyx_L1_error) __pyx_t_7 = ((!__pyx_t_6) != 0); __pyx_t_5 = __pyx_t_7; __pyx_L4_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+1737: vol_reservation = libzfs.zvol_volsize_to_reservation(
__pyx_v_vol_reservation = zvol_volsize_to_reservation(__pyx_t_12, __pyx_v_cfsopts->handle);
+1738: nicestrtonum(self.root, cfsopts['volsize']),
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_nicestrtonum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_cfsopts), __pyx_n_s_volsize); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->root)); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, ((PyObject *)__pyx_v_self->root)); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __Pyx_PyInt_As_uint64_t(__pyx_t_2); if (unlikely((__pyx_t_12 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1739: cfsopts.handle)
1740:
+1741: cfsopts['refreservation'] = vol_reservation
__pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_vol_reservation); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_cfsopts), __pyx_n_s_refreservation, __pyx_t_2) < 0)) __PYX_ERR(1, 1741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1742:
+1743: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L8; } __pyx_L8:; } }
+1744: ret = libzfs.zfs_create(
__pyx_v_ret = zfs_create(__pyx_v_self->root->handle, __pyx_v_c_name, __pyx_v_c_fstype, __pyx_v_cfsopts->handle); }
1745: self.root.handle,
1746: c_name,
1747: c_fstype,
1748: cfsopts.handle
1749: )
1750:
+1751: if ret != 0:
__pyx_t_5 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_5) { /* … */ }
+1752: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1752, __pyx_L1_error)
1753:
+1754: def attach_vdevs(self, vdevs_tree):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_15attach_vdevs(PyObject *__pyx_v_self, PyObject *__pyx_v_vdevs_tree); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_15attach_vdevs(PyObject *__pyx_v_self, PyObject *__pyx_v_vdevs_tree) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach_vdevs (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_14attach_vdevs(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self), ((PyObject *)__pyx_v_vdevs_tree)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_14attach_vdevs(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self, PyObject *__pyx_v_vdevs_tree) { char const *__pyx_v_command; struct __pyx_obj_6libzfs_ZFSVdev *__pyx_v_vd = 0; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach_vdevs", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSPool.attach_vdevs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_vd); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1755: cdef const char *command = 'zpool add'
__pyx_v_command = ((char const *)"zpool add");
+1756: cdef ZFSVdev vd = self.root.make_vdev_tree(vdevs_tree)
__pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->make_vdev_tree(__pyx_v_self->root, __pyx_v_vdevs_tree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1756, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_vd = ((struct __pyx_obj_6libzfs_ZFSVdev *)__pyx_t_1);
__pyx_t_1 = 0;
1757: cdef int ret
1758:
+1759: ret = libzfs.zpool_add(self.handle, vd.nvlist.handle)
__pyx_v_ret = zpool_add(__pyx_v_self->handle, __pyx_v_vd->nvlist->handle);
1760:
+1761: if ret != 0:
__pyx_t_2 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_2) { /* … */ }
+1762: raise self.root.get_error()
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1762, __pyx_L1_error)
1763:
+1764: self.root.write_history(command, self.name, self.root.history_vdevs_list(vdevs_tree))
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_command); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_history_vdevs_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_8) { __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_vdevs_tree); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_vdevs_tree); __Pyx_GIVEREF(__pyx_v_vdevs_tree); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_v_vdevs_tree); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_10 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_10, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_10, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_10, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1765:
+1766: def vdev_by_guid(self, guid):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_17vdev_by_guid(PyObject *__pyx_v_self, PyObject *__pyx_v_guid); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_17vdev_by_guid(PyObject *__pyx_v_self, PyObject *__pyx_v_guid) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("vdev_by_guid (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_16vdev_by_guid(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self), ((PyObject *)__pyx_v_guid)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ static PyObject *__pyx_pf_6libzfs_7ZFSPool_16vdev_by_guid(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self, PyObject *__pyx_v_guid) { struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid *__pyx_cur_scope; PyObject *__pyx_v_g = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("vdev_by_guid", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid *)__pyx_tp_new_6libzfs___pyx_scope_struct_13_vdev_by_guid(__pyx_ptype_6libzfs___pyx_scope_struct_13_vdev_by_guid, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSPool.vdev_by_guid", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_g); __Pyx_XDECREF(__pyx_v_i); __Pyx_XDECREF(__pyx_v_ret); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid { PyObject_HEAD PyObject *__pyx_v_search_vdev; };
+1767: def search_vdev(vdev, g):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_12vdev_by_guid_1search_vdev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_7ZFSPool_12vdev_by_guid_1search_vdev = {"search_vdev", (PyCFunction)__pyx_pw_6libzfs_7ZFSPool_12vdev_by_guid_1search_vdev, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_6libzfs_7ZFSPool_12vdev_by_guid_1search_vdev(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_vdev = 0; PyObject *__pyx_v_g = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("search_vdev (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vdev,&__pyx_n_s_g,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_vdev)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("search_vdev", 1, 2, 2, 1); __PYX_ERR(1, 1767, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search_vdev") < 0)) __PYX_ERR(1, 1767, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_vdev = values[0]; __pyx_v_g = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("search_vdev", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1767, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSPool.vdev_by_guid.search_vdev", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_7ZFSPool_12vdev_by_guid_search_vdev(__pyx_self, __pyx_v_vdev, __pyx_v_g); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_12vdev_by_guid_search_vdev(PyObject *__pyx_self, PyObject *__pyx_v_vdev, PyObject *__pyx_v_g) { struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid *__pyx_outer_scope; PyObject *__pyx_v_i = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("search_vdev", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_13_vdev_by_guid *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.vdev_by_guid.search_vdev", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XDECREF(__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__47 = PyTuple_Pack(4, __pyx_n_s_vdev, __pyx_n_s_g, __pyx_n_s_i, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(1, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); /* … */ __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_7ZFSPool_12vdev_by_guid_1search_vdev, 0, __pyx_n_s_vdev_by_guid_locals_search_vdev, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_search_vdev = __pyx_t_1; __pyx_t_1 = 0; __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_search_vdev, 1767, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(1, 1767, __pyx_L1_error)
+1768: if vdev.guid == g:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_vdev, __pyx_n_s_guid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_g, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1768, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1768, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ }
+1769: return vdev
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_vdev); __pyx_r = __pyx_v_vdev; goto __pyx_L0;
1770:
+1771: for i in vdev.children:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_vdev, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1771, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1771, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1771, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1771, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1772: ret = search_vdev(i, g)
if (unlikely(!__pyx_cur_scope->__pyx_v_search_vdev)) { __Pyx_RaiseClosureNameError("search_vdev"); __PYX_ERR(1, 1772, __pyx_L1_error) } __pyx_t_2 = __pyx_pf_6libzfs_7ZFSPool_12vdev_by_guid_search_vdev(__pyx_cur_scope->__pyx_v_search_vdev, __pyx_v_i, __pyx_v_g); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_ret, __pyx_t_2); __pyx_t_2 = 0;
+1773: if ret:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ret); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1773, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+1774: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
1775:
+1776: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1777:
+1778: if guid == self.root_vdev.guid:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_root_vdev); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_guid); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_v_guid, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ }
+1779: return self.root_vdev
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_root_vdev); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1780:
+1781: for g in (self.data_vdevs, self.cache_vdevs, self.log_vdevs, self.spare_vdevs):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data_vdevs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_cache_vdevs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_log_vdevs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_spare_vdevs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (__pyx_t_7 >= 4) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 1781, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_g, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1782: for i in g:
if (likely(PyList_CheckExact(__pyx_v_g)) || PyTuple_CheckExact(__pyx_v_g)) { __pyx_t_6 = __pyx_v_g; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_g); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1782, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 1782, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(1, 1782, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1782, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1783: ret = search_vdev(i, guid)
__pyx_t_4 = __pyx_pf_6libzfs_7ZFSPool_12vdev_by_guid_search_vdev(__pyx_cur_scope->__pyx_v_search_vdev, __pyx_v_i, __pyx_v_guid); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_ret, __pyx_t_4); __pyx_t_4 = 0;
+1784: if ret:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ret); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+1785: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0;
1786:
+1787: def delete(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_19delete(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_19delete(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_18delete(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_18delete(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPool.delete", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1788: cdef int ret
1789:
+1790: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1791: ret = libzfs.zpool_destroy(self.handle, "destroy")
__pyx_v_ret = zpool_destroy(__pyx_v_self->handle, ((char const *)"destroy")); }
1792:
+1793: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+1794: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1794, __pyx_L1_error)
1795:
+1796: def start_scrub(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_21start_scrub(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_21start_scrub(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("start_scrub (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_20start_scrub(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_20start_scrub(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("start_scrub", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSPool.start_scrub", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1797: cdef int ret
1798:
+1799: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1800: ret = libzfs.zpool_scan(self.handle, zfs.POOL_SCAN_SCRUB)
__pyx_v_ret = zpool_scan(__pyx_v_self->handle, POOL_SCAN_SCRUB); }
1801:
+1802: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+1803: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1803, __pyx_L1_error)
1804:
+1805: self.root.write_history('zpool scrub', self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_scrub); __Pyx_GIVEREF(__pyx_kp_s_zpool_scrub); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zpool_scrub); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1806:
+1807: def stop_scrub(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_23stop_scrub(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_23stop_scrub(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("stop_scrub (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_22stop_scrub(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_22stop_scrub(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("stop_scrub", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSPool.stop_scrub", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1808: cdef int ret
1809:
+1810: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1811: ret = libzfs.zpool_scan(self.handle, zfs.POOL_SCAN_NONE)
__pyx_v_ret = zpool_scan(__pyx_v_self->handle, POOL_SCAN_NONE); }
1812:
+1813: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+1814: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1814, __pyx_L1_error)
1815:
+1816: self.root.write_history('zpool scrub -s', self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_scrub_s); __Pyx_GIVEREF(__pyx_kp_s_zpool_scrub_s); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zpool_scrub_s); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1817:
+1818: def clear(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_25clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_25clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clear (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_24clear(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_24clear(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { struct __pyx_obj_6libzfs_NVList *__pyx_v_policy = 0; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clear", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSPool.clear", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_policy); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1819: cdef NVList policy = NVList()
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_policy = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
1820: cdef int ret
+1821: policy["rewind-request"] = zfs.ZPOOL_NO_REWIND
__pyx_t_1 = __Pyx_PyInt_From_int(ZPOOL_NO_REWIND); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_policy), __pyx_kp_s_rewind_request, __pyx_t_1) < 0)) __PYX_ERR(1, 1821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1822:
+1823: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1824: ret = libzfs.zpool_clear(self.handle, NULL, policy.handle)
__pyx_v_ret = zpool_clear(__pyx_v_self->handle, NULL, __pyx_v_policy->handle); }
1825:
+1826: self.root.write_history('zpool clear', self.name)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_clear); __Pyx_GIVEREF(__pyx_kp_s_zpool_clear); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_kp_s_zpool_clear); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1827: return ret == 0
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_ret == 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1828:
+1829: def upgrade(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_7ZFSPool_27upgrade(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_7ZFSPool_27upgrade(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("upgrade (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_7ZFSPool_26upgrade(((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_7ZFSPool_26upgrade(struct __pyx_obj_6libzfs_ZFSPool *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("upgrade", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSPool.upgrade", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1830: cdef int ret
1831:
+1832: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1833: ret = libzfs.zpool_upgrade(self.handle, zfs.SPA_VERSION)
__pyx_v_ret = zpool_upgrade(__pyx_v_self->handle, SPA_VERSION); }
1834:
+1835: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+1836: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1836, __pyx_L1_error)
1837:
+1838: for i in self.features:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_features); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1838, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1838, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1838, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1838, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1839: if i.state == FeatureState.DISABLED:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_FeatureState); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DISABLED); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1839, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ }
+1840: i.enable()
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_enable); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1840, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1841:
+1842: self.root.write_history('zpool upgrade', self.name)
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_4 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_kp_s_zpool_upgrade); __Pyx_GIVEREF(__pyx_kp_s_zpool_upgrade); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_4, __pyx_kp_s_zpool_upgrade); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_4, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1843:
1844:
+1845: cdef class ZFSImportablePool(ZFSPool):
struct __pyx_obj_6libzfs_ZFSImportablePool { struct __pyx_obj_6libzfs_ZFSPool __pyx_base; struct __pyx_obj_6libzfs_NVList *nvlist; PyObject *name; }; /* … */ struct __pyx_vtabstruct_6libzfs_ZFSImportablePool { struct __pyx_vtabstruct_6libzfs_ZFSPool __pyx_base; }; static struct __pyx_vtabstruct_6libzfs_ZFSImportablePool *__pyx_vtabptr_6libzfs_ZFSImportablePool;
1846: cdef NVList nvlist
+1847: cdef public object name
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_4name___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_4name___get__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_6libzfs_17ZFSImportablePool_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_17ZFSImportablePool_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_4name_2__set__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_17ZFSImportablePool_4name_2__set__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_value; /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static int __pyx_pw_6libzfs_17ZFSImportablePool_4name_5__del__(PyObject *__pyx_v_self); /*proto*/ static int __pyx_pw_6libzfs_17ZFSImportablePool_4name_5__del__(PyObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_4name_4__del__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_17ZFSImportablePool_4name_4__del__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__del__", 0); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = Py_None; /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; }
1848:
+1849: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_1__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_1__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool___str__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool___str__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.ZFSImportablePool.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1850: return "<libzfs.ZFSImportablePool name '{0}' guid '{1}'>".format(self.name, self.guid)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_ZFSImportablePool_name_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_guid); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_self->name); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1851:
+1852: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_2__repr__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_2__repr__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSImportablePool.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1853: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1854:
1855: property config:
+1856: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_6config_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_6config_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_6config___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_6config___get__(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSImportablePool.config.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1857: return dict(self.nvlist)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self->nvlist)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self->nvlist)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->nvlist)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1858:
1859: property properties:
+1860: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_10properties_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_10properties_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_10properties___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_10properties___get__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1861: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1862:
1863: property root_dataset:
+1864: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_12root_dataset_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_12root_dataset_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_12root_dataset___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_12root_dataset___get__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1865: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1866:
1867: property error_count:
+1868: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_11error_count_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_11error_count_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_11error_count___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_11error_count___get__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1869: return 0
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_0); __pyx_r = __pyx_int_0; goto __pyx_L0;
1870:
1871: property features:
+1872: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_8features_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_8features_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_8features___get__(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_8features___get__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1873: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
1874:
+1875: cdef NVList get_raw_config(self):
static struct __pyx_obj_6libzfs_NVList *__pyx_f_6libzfs_17ZFSImportablePool_get_raw_config(struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self) { struct __pyx_obj_6libzfs_NVList *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_raw_config", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1876: return self.nvlist
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_self->nvlist)); __pyx_r = __pyx_v_self->nvlist; goto __pyx_L0;
1877:
+1878: def create(self, *args, **kwargs):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED PyObject *__pyx_v_args = 0; CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create (wrapper)", 0); if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "create", 1))) return NULL; __Pyx_INCREF(__pyx_args); __pyx_v_args = __pyx_args; __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_4create(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_args); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_4create(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_args, CYTHON_UNUSED PyObject *__pyx_v_kwargs) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("create", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSImportablePool.create", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1879: raise NotImplementedError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1879, __pyx_L1_error)
1880:
+1881: def destroy(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_6destroy(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_6destroy(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_name) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSImportablePool.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1882: raise NotImplementedError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1882, __pyx_L1_error)
1883:
+1884: def attach_vdev(self, vdev):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_9attach_vdev(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev); /*proto*/ static PyObject *__pyx_pw_6libzfs_17ZFSImportablePool_9attach_vdev(PyObject *__pyx_v_self, PyObject *__pyx_v_vdev) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach_vdev (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_17ZFSImportablePool_8attach_vdev(((struct __pyx_obj_6libzfs_ZFSImportablePool *)__pyx_v_self), ((PyObject *)__pyx_v_vdev)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_17ZFSImportablePool_8attach_vdev(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSImportablePool *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_vdev) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("attach_vdev", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSImportablePool.attach_vdev", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1885: raise NotImplementedError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1885, __pyx_L1_error)
1886:
1887:
+1888: cdef class ZFSPropertyDict(dict):
struct __pyx_obj_6libzfs_ZFSPropertyDict { PyDictObject __pyx_base; struct __pyx_vtabstruct_6libzfs_ZFSPropertyDict *__pyx_vtab; struct __pyx_obj_6libzfs_ZFSObject *parent; PyObject *props; }; /* … */ struct __pyx_vtabstruct_6libzfs_ZFSPropertyDict { int (*__pyx___iterate_props)(int, void *); }; static struct __pyx_vtabstruct_6libzfs_ZFSPropertyDict *__pyx_vtabptr_6libzfs_ZFSPropertyDict;
1889: cdef ZFSObject parent
1890: cdef object props
1891:
1892: @staticmethod
+1893: cdef int __iterate_props(int proptype, void* arg) nogil:
static int __pyx_f_6libzfs_15ZFSPropertyDict___iterate_props(int __pyx_v_proptype, void *__pyx_v_arg) { PyObject *__pyx_v_proptypes = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_props", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSPropertyDict.__iterate_props", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_proptypes); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+1894: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { __pyx_L6_return: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L3_return; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } } } } /*finally:*/ { __pyx_L3_return: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L0; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } }
+1895: proptypes = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_proptypes = __pyx_t_1;
__pyx_t_1 = 0;
+1896: proptypes.append(proptype)
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_proptype); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1896, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_proptypes, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 1896, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1897: return zfs.ZPROP_CONT
__pyx_r = ZPROP_CONT; goto __pyx_L6_return; }
1898:
+1899: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict___repr__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict___repr__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1900: return '{' + ', '.join(["'{0}': {1}".format(k, repr(v)) for k, v in self.items()]) + '}'
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1900, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1900, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1900, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 1900, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1900, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 1900, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(1, 1900, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 1900, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyObject_Repr(__pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_k); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyString_Join(__pyx_kp_s__50, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_kp_s__49, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_kp_s__51); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
1901:
+1902: def refresh(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_3refresh(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_3refresh(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("refresh (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_2refresh(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_2refresh(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { struct __pyx_obj_6libzfs_ZFSProperty *__pyx_v_prop = 0; struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_userprop = 0; nvlist_t *__pyx_v_nvlist; zfs_type_t __pyx_v_c_type; PyObject *__pyx_v_proptypes = NULL; struct __pyx_obj_6libzfs_NVList *__pyx_v_nvl = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("refresh", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.refresh", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_prop); __Pyx_XDECREF((PyObject *)__pyx_v_userprop); __Pyx_XDECREF(__pyx_v_proptypes); __Pyx_XDECREF((PyObject *)__pyx_v_nvl); __Pyx_XDECREF(__pyx_v_x); __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1903: cdef ZFSProperty prop
1904: cdef ZFSUserProperty userprop
1905: cdef nvpair.nvlist_t *nvlist
+1906: cdef zfs.zfs_type_t c_type = <zfs.zfs_type_t>self.parent.type
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((zfs_type_t)__Pyx_PyInt_As_zfs_type_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_c_type = ((zfs_type_t)__pyx_t_2);
+1907: proptypes = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_proptypes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1908: self.props = {}
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->props); __Pyx_DECREF(__pyx_v_self->props); __pyx_v_self->props = __pyx_t_1; __pyx_t_1 = 0;
1909:
+1910: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+1911: libzfs.zprop_iter(self.__iterate_props, <void*>proptypes, True, True, c_type)
zprop_iter(((struct __pyx_vtabstruct_6libzfs_ZFSPropertyDict *)__pyx_v_self->__pyx_vtab)->__pyx___iterate_props, ((void *)__pyx_v_proptypes), 1, 1, __pyx_v_c_type);
+1912: nvlist = libzfs.zfs_get_user_props(self.parent.handle)
__pyx_v_nvlist = zfs_get_user_props(__pyx_v_self->parent->handle); }
1913:
+1914: nvl = NVList(<uintptr_t>nvlist)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_nvlist)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_nvl = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
1915:
+1916: for x in proptypes:
__pyx_t_1 = __pyx_v_proptypes; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1916, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_L6_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1917: if not zfs.zfs_prop_valid_for_type(x, self.parent.type):
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_x); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1917, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = ((zfs_type_t)__Pyx_PyInt_As_zfs_type_t(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1917, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((!(zfs_prop_valid_for_type(__pyx_t_5, __pyx_t_2) != 0)) != 0); if (__pyx_t_6) { /* … */ }
+1918: continue
goto __pyx_L6_continue;
1919:
+1920: prop = ZFSProperty.__new__(ZFSProperty)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSProperty(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSProperty), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSProperty)))) __PYX_ERR(1, 1920, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_prop, ((struct __pyx_obj_6libzfs_ZFSProperty *)__pyx_t_3)); __pyx_t_3 = 0;
+1921: prop.dataset = self.parent
__pyx_t_3 = ((PyObject *)__pyx_v_self->parent); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_prop->dataset); __Pyx_DECREF(((PyObject *)__pyx_v_prop->dataset)); __pyx_v_prop->dataset = ((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_t_3); __pyx_t_3 = 0;
+1922: prop.propid = x
__pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_x); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 1922, __pyx_L1_error) __pyx_v_prop->propid = __pyx_t_5;
+1923: prop.refresh()
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_prop), __pyx_n_s_refresh); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (__pyx_t_8) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1923, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1923, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1924: self.props[prop.name] = prop
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_prop), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(PyObject_SetItem(__pyx_v_self->props, __pyx_t_3, ((PyObject *)__pyx_v_prop)) < 0)) __PYX_ERR(1, 1924, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1925:
+1926: for k, v in nvl.items():
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_nvl), __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_7) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1926, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1926, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1926, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 1926, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1926, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 1926, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); #else __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(1, 1926, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L12_unpacking_done; __pyx_L11_unpacking_failed:; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 1926, __pyx_L1_error) __pyx_L12_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1927: userprop = ZFSUserProperty.__new__(ZFSUserProperty)
__pyx_t_1 = __pyx_tp_new_6libzfs_ZFSUserProperty(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSUserProperty), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6libzfs_ZFSUserProperty)))) __PYX_ERR(1, 1927, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_userprop, ((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_t_1)); __pyx_t_1 = 0;
+1928: userprop.dataset = self.parent
__pyx_t_1 = ((PyObject *)__pyx_v_self->parent); __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_userprop->__pyx_base.dataset); __Pyx_DECREF(((PyObject *)__pyx_v_userprop->__pyx_base.dataset)); __pyx_v_userprop->__pyx_base.dataset = ((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_t_1); __pyx_t_1 = 0;
+1929: userprop.name = k
__Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); __Pyx_GOTREF(__pyx_v_userprop->name); __Pyx_DECREF(__pyx_v_userprop->name); __pyx_v_userprop->name = __pyx_v_k;
+1930: userprop.values = v
if (!(likely(PyDict_CheckExact(__pyx_v_v))||((__pyx_v_v) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_v)->tp_name), 0))) __PYX_ERR(1, 1930, __pyx_L1_error) __pyx_t_1 = __pyx_v_v; __Pyx_INCREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_userprop->values); __Pyx_DECREF(__pyx_v_userprop->values); __pyx_v_userprop->values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1931: self.props[userprop.name] = userprop
if (unlikely(PyObject_SetItem(__pyx_v_self->props, __pyx_v_userprop->name, ((PyObject *)__pyx_v_userprop)) < 0)) __PYX_ERR(1, 1931, __pyx_L1_error)
1932:
+1933: def __delitem__(self, key):
/* Python wrapper */ static int __pyx_pw_6libzfs_15ZFSPropertyDict_5__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static int __pyx_pw_6libzfs_15ZFSPropertyDict_5__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__delitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_4__delitem__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_15ZFSPropertyDict_4__delitem__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__delitem__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1934: if key not in self.props:
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_self->props, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1934, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1935: raise KeyError(key)
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_KeyError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1935, __pyx_L1_error)
1936:
+1937: self.props[key].inherit(recursive=True)
__pyx_t_4 = PyObject_GetItem(__pyx_v_self->props, __pyx_v_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_inherit); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_recursive, Py_True) < 0) __PYX_ERR(1, 1937, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1938:
+1939: def __getitem__(self, item):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_6__getitem__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_6__getitem__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1940: return self.props[item]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyObject_GetItem(__pyx_v_self->props, __pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1941:
+1942: def __setitem__(self, key, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_15ZFSPropertyDict_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_15ZFSPropertyDict_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_8__setitem__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), ((PyObject *)__pyx_v_key), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_15ZFSPropertyDict_8__setitem__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) { struct __pyx_obj_6libzfs_ZFSUserProperty *__pyx_v_userprop = 0; int __pyx_v_ret; char const *__pyx_v_c_key; char const *__pyx_v_c_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_value); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_userprop); __Pyx_XDECREF(__pyx_v_value); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_15ZFSPropertyDict_12generator12(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
1943: cdef ZFSUserProperty userprop
1944: cdef int ret
1945: cdef const char *c_key
1946: cdef const char *c_value
1947:
+1948: if key in self.props:
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_self->props, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1948, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1949: raise KeyError('Cannot overwrite existing property')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_KeyError, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1949, __pyx_L1_error) /* … */ __pyx_tuple__52 = PyTuple_Pack(1, __pyx_kp_s_Cannot_overwrite_existing_proper); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(1, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52);
1950:
+1951: if type(value) is not ZFSUserProperty:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_value)) != ((PyObject *)__pyx_ptype_6libzfs_ZFSUserProperty)); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+1952: raise ValueError('Value should be of type ZFSUserProperty')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1952, __pyx_L1_error) /* … */ __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_s_Value_should_be_of_type_ZFSUserP); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(1, 1952, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__53); __Pyx_GIVEREF(__pyx_tuple__53);
1953:
+1954: userprop = <ZFSUserProperty>value
__pyx_t_3 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_3);
__pyx_v_userprop = ((struct __pyx_obj_6libzfs_ZFSUserProperty *)__pyx_t_3);
__pyx_t_3 = 0;
+1955: if userprop.dataset is None:
__pyx_t_1 = (((PyObject *)__pyx_v_userprop->__pyx_base.dataset) == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
1956: # detached user property
+1957: userprop.dataset = self.parent
__pyx_t_3 = ((PyObject *)__pyx_v_self->parent); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_userprop->__pyx_base.dataset); __Pyx_DECREF(((PyObject *)__pyx_v_userprop->__pyx_base.dataset)); __pyx_v_userprop->__pyx_base.dataset = ((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_t_3); __pyx_t_3 = 0;
+1958: value = str(userprop.value)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_userprop), __pyx_n_s_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3); __pyx_t_3 = 0;
+1959: c_key = key
__pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(1, 1959, __pyx_L1_error) __pyx_v_c_key = __pyx_t_5;
+1960: c_value = value
__pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(1, 1960, __pyx_L1_error) __pyx_v_c_value = __pyx_t_6;
1961:
+1962: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L8; } __pyx_L8:; } }
+1963: ret = libzfs.zfs_prop_set(self.parent.handle, c_key, c_value)
__pyx_v_ret = zfs_prop_set(__pyx_v_self->parent->handle, __pyx_v_c_key, __pyx_v_c_value); }
1964:
+1965: if ret != 0:
__pyx_t_2 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_2) { /* … */ }
+1966: raise self.parent.root.get_error()
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->parent->root->__pyx_vtab)->get_error(__pyx_v_self->parent->root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 1966, __pyx_L1_error)
1967:
+1968: self.props[key] = userprop
if (unlikely(PyObject_SetItem(__pyx_v_self->props, __pyx_v_key, ((PyObject *)__pyx_v_userprop)) < 0)) __PYX_ERR(1, 1968, __pyx_L1_error)
+1969: self.parent.root.write_history('zfs set', (str(key), str(userprop.value)), self.parent.name)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_key); __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_userprop), __pyx_n_s_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_set); __Pyx_GIVEREF(__pyx_kp_s_zfs_set); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_s_zfs_set); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_7); __pyx_t_9 = 0; __pyx_t_7 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1970:
+1971: def __iter__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_11__iter__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_11__iter__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_10__iter__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_10__iter__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_14___iter__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_14___iter__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_14___iter__(__pyx_ptype_6libzfs___pyx_scope_struct_14___iter__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_15ZFSPropertyDict_12generator12, (PyObject *) __pyx_cur_scope, __pyx_n_s_iter, __pyx_n_s_ZFSPropertyDict___iter); if (unlikely(!gen)) __PYX_ERR(1, 1971, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_15ZFSPropertyDict_12generator12(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1971, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_14___iter__ { PyObject_HEAD PyObject *__pyx_v_i; struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); };
+1972: for i in self.props:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_self->props)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_self->props)) { __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->props; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_self->props); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1972, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 1972, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 1972, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 1972, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1973: yield i
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_i); __pyx_r = __pyx_cur_scope->__pyx_v_i; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 1973, __pyx_L1_error)
1974:
+1975: def get(self, k, d=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_14get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_14get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_k = 0; PyObject *__pyx_v_d = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_d,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_d); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(1, 1975, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_k = values[0]; __pyx_v_d = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1975, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSPropertyDict.get", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_13get(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), __pyx_v_k, __pyx_v_d); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_13get(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_k, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.get", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1976: return self.props.get(k, d)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_get); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_k); __Pyx_INCREF(__pyx_v_d); __Pyx_GIVEREF(__pyx_v_d); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_d); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1977:
+1978: def setdefault(self, k, d=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_16setdefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_16setdefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED PyObject *__pyx_v_k = 0; CYTHON_UNUSED PyObject *__pyx_v_d = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("setdefault (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_k,&__pyx_n_s_d,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_d); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setdefault") < 0)) __PYX_ERR(1, 1978, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_k = values[0]; __pyx_v_d = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("setdefault", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1978, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSPropertyDict.setdefault", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_15setdefault(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), __pyx_v_k, __pyx_v_d); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_15setdefault(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_k, CYTHON_UNUSED PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("setdefault", 0); /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
1979: pass
1980:
+1981: def keys(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_18keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_18keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_17keys(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_17keys(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.keys", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1982: return self.props.keys()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1983:
+1984: def values(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_20values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_20values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("values (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_19values(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_19values(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("values", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.values", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1985: return self.props.values()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1985, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1985, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1986:
+1987: def iterkeys(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_22iterkeys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_22iterkeys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("iterkeys (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_21iterkeys(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_21iterkeys(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("iterkeys", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.iterkeys", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1988: return self.props.iterkeys()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_iterkeys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1988, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1988, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1989:
+1990: def itervalues(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_24itervalues(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_24itervalues(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("itervalues (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_23itervalues(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_23itervalues(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("itervalues", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.itervalues", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1991: return self.props.itervalues()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_itervalues); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1991, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1991, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1992:
+1993: def has_key(self, key):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_26has_key(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_26has_key(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("has_key (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_25has_key(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_25has_key(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("has_key", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.has_key", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1994: return key in self.props
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_self->props, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 1994, __pyx_L1_error) __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
1995:
+1996: def items(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_28items(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_28items(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("items (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_27items(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_27items(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("items", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.items", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+1997: return self.props.items()
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->props, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1997, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1998:
+1999: def update(self, E=None, **F):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_30update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_15ZFSPropertyDict_30update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED PyObject *__pyx_v_E = 0; CYTHON_UNUSED PyObject *__pyx_v_F = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update (wrapper)", 0); __pyx_v_F = PyDict_New(); if (unlikely(!__pyx_v_F)) return NULL; __Pyx_GOTREF(__pyx_v_F); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_E,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_E); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_F, values, pos_args, "update") < 0)) __PYX_ERR(1, 1999, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_E = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("update", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1999, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_F); __pyx_v_F = 0; __Pyx_AddTraceback("libzfs.ZFSPropertyDict.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_29update(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), __pyx_v_E, __pyx_v_F); /* function exit code */ __Pyx_XDECREF(__pyx_v_F); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_15ZFSPropertyDict_29update(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_E, CYTHON_UNUSED PyObject *__pyx_v_F) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSPropertyDict.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2000: raise NotImplementedError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_NotImplementedError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2000, __pyx_L1_error)
2001:
+2002: def __contains__(self, key):
/* Python wrapper */ static int __pyx_pw_6libzfs_15ZFSPropertyDict_32__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static int __pyx_pw_6libzfs_15ZFSPropertyDict_32__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_15ZFSPropertyDict_31__contains__(((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_15ZFSPropertyDict_31__contains__(struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__contains__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSPropertyDict.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2003: return key in self.props
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_self->props, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2003, __pyx_L1_error)
__pyx_r = __pyx_t_1;
goto __pyx_L0;
2004:
2005:
+2006: cdef class ZFSObject(object):
struct __pyx_obj_6libzfs_ZFSObject { PyObject_HEAD zfs_handle_t *handle; struct __pyx_obj_6libzfs_ZFS *root; struct __pyx_obj_6libzfs_ZFSPool *pool; };
2007: cdef libzfs.zfs_handle_t* handle
+2008: cdef readonly ZFS root
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4root_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4root_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_4root___get__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_4root___get__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->root)); __pyx_r = ((PyObject *)__pyx_v_self->root); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2009: cdef readonly ZFSPool pool
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4pool_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4pool_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_4pool___get__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_4pool___get__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->pool)); __pyx_r = ((PyObject *)__pyx_v_self->pool); goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2010:
+2011: def __init__(self):
/* Python wrapper */ static int __pyx_pw_6libzfs_9ZFSObject_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_9ZFSObject_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_6libzfs_9ZFSObject___init__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_9ZFSObject___init__(CYTHON_UNUSED struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSObject.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2012: raise RuntimeError('ZFSObject cannot be instantiated by the user')
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2012, __pyx_L1_error) /* … */ __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_s_ZFSObject_cannot_be_instantiated); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(1, 2012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54);
2013:
+2014: def __dealloc__(self):
/* Python wrapper */ static void __pyx_pw_6libzfs_9ZFSObject_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_6libzfs_9ZFSObject_3__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_6libzfs_9ZFSObject_2__dealloc__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_6libzfs_9ZFSObject_2__dealloc__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* … */ /* function exit code */ __Pyx_RefNannyFinishContext(); }
+2015: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2016: libzfs.zfs_close(self.handle)
zfs_close(__pyx_v_self->handle); }
2017:
+2018: def __str__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_5__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_5__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_4__str__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_4__str__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSObject.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2019: return "<libzfs.{0} name '{1}' type '{2}'>".format(self.__class__.__name__, self.name, self.type.name)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_libzfs_0_name_1_type_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2020:
+2021: def __repr__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_7__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_7__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_6__repr__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_6__repr__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSObject.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2022: return str(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
2023:
+2024: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_9__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_9__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_8__getstate__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_8__getstate__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSObject.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2025: return {
__Pyx_XDECREF(__pyx_r);
+2026: 'id': self.name,
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_id, __pyx_t_2) < 0) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2027: 'name': self.name,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_name_2, __pyx_t_2) < 0) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2028: 'pool': self.pool.name,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->pool), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_pool, __pyx_t_2) < 0) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2029: 'type': self.type.name,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { /* enter inner scope */ PyObject *__pyx_8genexpr1__pyx_v_k = NULL; PyObject *__pyx_8genexpr1__pyx_v_p = NULL;
+2030: 'properties': {k: p.__getstate__() for k, p in self.properties.items()},
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_items); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2030, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2030, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2030, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2030, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 2030, __pyx_L5_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(1, 2030, __pyx_L5_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_unpacking_done; __pyx_L8_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 2030, __pyx_L5_error) __pyx_L9_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_p, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v_p, __pyx_n_s_getstate); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } if (__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2030, __pyx_L5_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyDict_SetItem(__pyx_t_3, (PyObject*)__pyx_8genexpr1__pyx_v_k, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 2030, __pyx_L5_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_k); __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_p); goto __pyx_L10_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_k); __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_p); goto __pyx_L1_error; __pyx_L10_exit_scope:; } /* exit inner scope */ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_properties, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2031: }
2032:
2033: property name:
+2034: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_4name___get__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_4name___get__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.ZFSObject.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2035: return libzfs.zfs_get_name(self.handle)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyUnicode_FromString(zfs_get_name(__pyx_v_self->handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2036:
2037: property type:
+2038: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4type_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_4type_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_4type___get__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_4type___get__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { zfs_type_t __pyx_v_typ; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSObject.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2039: cdef zfs.zfs_type_t typ
2040:
+2041: typ = libzfs.zfs_get_type(self.handle)
__pyx_v_typ = zfs_get_type(__pyx_v_self->handle);
+2042: return DatasetType(typ)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DatasetType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_zfs_type_t(__pyx_v_typ); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2042, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2043:
2044: property properties:
+2045: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_10properties_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_10properties_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_10properties___get__(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_10properties___get__(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { struct __pyx_obj_6libzfs_ZFSPropertyDict *__pyx_v_d = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSObject.properties.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_d); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2046: cdef ZFSPropertyDict d
2047:
+2048: d = ZFSPropertyDict.__new__(ZFSPropertyDict)
__pyx_t_1 = __pyx_tp_new_6libzfs_ZFSPropertyDict(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSPropertyDict), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6libzfs_ZFSPropertyDict)))) __PYX_ERR(1, 2048, __pyx_L1_error) __pyx_v_d = ((struct __pyx_obj_6libzfs_ZFSPropertyDict *)__pyx_t_1); __pyx_t_1 = 0;
+2049: d.parent = self
__Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_d->parent); __Pyx_DECREF(((PyObject *)__pyx_v_d->parent)); __pyx_v_d->parent = __pyx_v_self;
+2050: d.refresh()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_d), __pyx_n_s_refresh); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2050, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2050, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2051: return d
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_d)); __pyx_r = ((PyObject *)__pyx_v_d); goto __pyx_L0;
2052:
+2053: def rename(self, new_name, nounmount=False, forceunmount=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_11rename(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_11rename(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_new_name = 0; PyObject *__pyx_v_nounmount = 0; PyObject *__pyx_v_forceunmount = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("rename (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_new_name,&__pyx_n_s_nounmount,&__pyx_n_s_forceunmount,0}; PyObject* values[3] = {0,0,0}; values[1] = ((PyObject *)Py_False); values[2] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_new_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nounmount); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_forceunmount); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rename") < 0)) __PYX_ERR(1, 2053, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_new_name = values[0]; __pyx_v_nounmount = values[1]; __pyx_v_forceunmount = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("rename", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2053, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSObject.rename", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_9ZFSObject_10rename(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self), __pyx_v_new_name, __pyx_v_nounmount, __pyx_v_forceunmount); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_10rename(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self, PyObject *__pyx_v_new_name, PyObject *__pyx_v_nounmount, PyObject *__pyx_v_forceunmount) { renameflags_t __pyx_v_flags; char const *__pyx_v_c_new_name; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("rename", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSObject.rename", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2054: cdef libzfs.renameflags_t flags
+2055: cdef const char *c_new_name = new_name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_new_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2055, __pyx_L1_error) __pyx_v_c_new_name = __pyx_t_1;
2056:
+2057: flags.recurse = False
__pyx_v_flags.recurse = 0;
+2058: flags.nounmount = nounmount
__pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_nounmount); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2058, __pyx_L1_error) __pyx_v_flags.nounmount = __pyx_t_2;
+2059: flags.forceunmount = forceunmount
__pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_forceunmount); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2059, __pyx_L1_error) __pyx_v_flags.forceunmount = __pyx_t_2;
2060:
+2061: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2062: ret = libzfs.zfs_rename(self.handle, NULL, c_new_name, flags)
__pyx_v_ret = zfs_rename(__pyx_v_self->handle, NULL, __pyx_v_c_new_name, __pyx_v_flags); }
2063:
+2064: if ret != 0:
__pyx_t_3 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_3) { /* … */ }
+2065: raise self.root.get_error()
__pyx_t_4 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 2065, __pyx_L1_error)
2066:
+2067: self.root.write_history('zfs rename', '-f' if forceunmount else '', '-u' if nounmount else '', self.name)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_forceunmount); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2067, __pyx_L1_error) if (__pyx_t_3) { __Pyx_INCREF(__pyx_kp_s_f); __pyx_t_6 = __pyx_kp_s_f; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_6 = __pyx_kp_s__11; } __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_nounmount); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2067, __pyx_L1_error) if (__pyx_t_3) { __Pyx_INCREF(__pyx_kp_s_u); __pyx_t_7 = __pyx_kp_s_u; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_7 = __pyx_kp_s__11; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_rename); __Pyx_GIVEREF(__pyx_kp_s_zfs_rename); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_s_zfs_rename); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_11, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2068:
+2069: def delete(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_13delete(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_13delete(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_9ZFSObject_12delete(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_12delete(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSObject.delete", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2070: cdef int ret
2071:
+2072: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2073: ret = libzfs.zfs_destroy(self.handle, True)
__pyx_v_ret = zfs_destroy(__pyx_v_self->handle, 1); }
2074:
+2075: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+2076: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->root->__pyx_vtab)->get_error(__pyx_v_self->root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2076, __pyx_L1_error)
2077:
+2078: def get_send_space(self, fromname=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9ZFSObject_15get_send_space(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_9ZFSObject_15get_send_space(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fromname = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_send_space (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fromname,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fromname); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_send_space") < 0)) __PYX_ERR(1, 2078, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_fromname = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get_send_space", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2078, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSObject.get_send_space", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_9ZFSObject_14get_send_space(((struct __pyx_obj_6libzfs_ZFSObject *)__pyx_v_self), __pyx_v_fromname); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_9ZFSObject_14get_send_space(struct __pyx_obj_6libzfs_ZFSObject *__pyx_v_self, PyObject *__pyx_v_fromname) { char const *__pyx_v_cfromname; char const *__pyx_v_c_name; uint64_t __pyx_v_space; int __pyx_v_ret; PyObject *__pyx_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_send_space", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSObject.get_send_space", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2079: cdef const char *cfromname = NULL
__pyx_v_cfromname = NULL;
2080: cdef const char *c_name
2081: cdef uint64_t space
2082: cdef int ret
2083:
+2084: name = self.name
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = __pyx_t_1; __pyx_t_1 = 0;
+2085: c_name = name
__pyx_t_2 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(1, 2085, __pyx_L1_error) __pyx_v_c_name = __pyx_t_2;
2086:
+2087: if fromname:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_fromname); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2087, __pyx_L1_error)
if (__pyx_t_3) {
/* … */
}
+2088: cfromname = fromname
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_fromname); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 2088, __pyx_L1_error) __pyx_v_cfromname = __pyx_t_4;
2089:
+2090: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2091: ret = libzfs.lzc_send_space(c_name, cfromname, &space)
__pyx_v_ret = lzc_send_space(__pyx_v_c_name, __pyx_v_cfromname, (&__pyx_v_space)); }
2092:
+2093: if ret != 0:
__pyx_t_3 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_3) { /* … */ }
+2094: raise ZFSException(Error.FAULT, "Cannot obtain space estimate: ")
__pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_FAULT); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_kp_s_Cannot_obtain_space_estimate); __Pyx_GIVEREF(__pyx_kp_s_Cannot_obtain_space_estimate); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_s_Cannot_obtain_space_estimate); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2094, __pyx_L1_error)
2095:
+2096: return space
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_space); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2097:
2098:
+2099: cdef class ZFSDataset(ZFSObject):
struct __pyx_obj_6libzfs_ZFSDataset { struct __pyx_obj_6libzfs_ZFSObject __pyx_base; struct __pyx_vtabstruct_6libzfs_ZFSDataset *__pyx_vtab; }; /* … */ struct __pyx_vtabstruct_6libzfs_ZFSDataset { int (*__pyx___iterate_children)(zfs_handle_t *, void *); int (*__pyx___iterate_snapshots)(zfs_handle_t *, void *); int (*__pyx___iterate_bookmarks)(zfs_handle_t *, void *); int (*__pyx___iterate_dependents)(zfs_handle_t *, void *); }; static struct __pyx_vtabstruct_6libzfs_ZFSDataset *__pyx_vtabptr_6libzfs_ZFSDataset;
+2100: def __getstate__(self, recursive=True):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_1__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_1__getstate__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_recursive,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_True); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getstate__") < 0)) __PYX_ERR(1, 2100, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_recursive = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getstate__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2100, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset___getstate__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset___getstate__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_recursive) { PyObject *__pyx_v_ret = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSDataset.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ret); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2101: ret = super(ZFSDataset, self).__getstate__()
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_6libzfs_ZFSDataset)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6libzfs_ZFSDataset)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6libzfs_ZFSDataset)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2101, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0;
+2102: ret['mountpoint'] = self.mountpoint
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mountpoint); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_v_ret, __pyx_n_s_mountpoint, __pyx_t_1) < 0)) __PYX_ERR(1, 2102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2103:
+2104: if recursive:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2104, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+2105: ret['children'] = [i.__getstate__() for i in self.children]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2105, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 2105, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 2105, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2105, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_getstate); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (__pyx_t_8) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2105, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(__pyx_v_ret, __pyx_n_s_children, __pyx_t_1) < 0)) __PYX_ERR(1, 2105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2106:
+2107: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0;
2108:
2109: @staticmethod
+2110: cdef int __iterate_children(libzfs.zfs_handle_t* handle, void *arg) nogil:
static int __pyx_f_6libzfs_10ZFSDataset___iterate_children(zfs_handle_t *__pyx_v_handle, void *__pyx_v_arg) { PyObject *__pyx_v_datasets = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_children", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSDataset.__iterate_children", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_datasets); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+2111: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L8; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } __pyx_L8:; } } } /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } __pyx_L5:; }
+2112: datasets = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_datasets = __pyx_t_1;
__pyx_t_1 = 0;
+2113: datasets.append(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2113, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_datasets, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 2113, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
2114:
2115: @staticmethod
+2116: cdef int __iterate_snapshots(libzfs.zfs_handle_t* handle, void *arg) nogil:
static int __pyx_f_6libzfs_10ZFSDataset___iterate_snapshots(zfs_handle_t *__pyx_v_handle, void *__pyx_v_arg) { PyObject *__pyx_v_snapshots = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_snapshots", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSDataset.__iterate_snapshots", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_snapshots); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+2117: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L8; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } __pyx_L8:; } } } /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } __pyx_L5:; }
+2118: snapshots = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_snapshots = __pyx_t_1;
__pyx_t_1 = 0;
+2119: snapshots.append(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2119, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_snapshots, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 2119, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
2120:
2121: @staticmethod
+2122: cdef int __iterate_bookmarks(libzfs.zfs_handle_t* handle, void *arg) nogil:
static int __pyx_f_6libzfs_10ZFSDataset___iterate_bookmarks(zfs_handle_t *__pyx_v_handle, void *__pyx_v_arg) { PyObject *__pyx_v_bookmarks = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_bookmarks", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSDataset.__iterate_bookmarks", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_bookmarks); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; }
+2123: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L8; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } __pyx_L8:; } } } /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } __pyx_L5:; }
+2124: bookmarks = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_bookmarks = __pyx_t_1;
__pyx_t_1 = 0;
+2125: bookmarks.append(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2125, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_bookmarks, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 2125, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
2126:
2127: @staticmethod
+2128: cdef int __iterate_dependents(libzfs.zfs_handle_t* handle, void *arg) nogil:
static int __pyx_f_6libzfs_10ZFSDataset___iterate_dependents(zfs_handle_t *__pyx_v_handle, void *__pyx_v_arg) { PyObject *__pyx_v_dependents = NULL; int __pyx_r; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save; #endif __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iterate_dependents", 1); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_WriteUnraisable("libzfs.ZFSDataset.__iterate_dependents", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 1); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dependents); #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_8children_2generator13(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+2129: with gil:
/*try:*/ { { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L8; } __pyx_L7_error: { #ifdef WITH_THREAD PyGILState_Release(__pyx_gilstate_save); #endif goto __pyx_L4_error; } __pyx_L8:; } } } /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD __pyx_gilstate_save = PyGILState_Ensure(); #endif goto __pyx_L1_error; } __pyx_L5:; }
+2130: dependents = <object>arg
__pyx_t_1 = ((PyObject *)__pyx_v_arg);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_dependents = __pyx_t_1;
__pyx_t_1 = 0;
+2131: dependents.append(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2131, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Append(__pyx_v_dependents, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(1, 2131, __pyx_L7_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; }
2132:
2133: property children:
+2134: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_8children_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_8children_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_8children___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_8children___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_15___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_15___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_15___get__(__pyx_ptype_6libzfs___pyx_scope_struct_15___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_8children_2generator13, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2134, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.children.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_8children_2generator13(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2134, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_18children_recursive_2generator14(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_15___get__ { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_dataset; PyObject *__pyx_v_datasets; PyObject *__pyx_v_h; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; };
2135: cdef ZFSDataset dataset
2136:
+2137: datasets = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_datasets = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2138: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2139: libzfs.zfs_iter_filesystems(self.handle, self.__iterate_children, <void*>datasets)
zfs_iter_filesystems(__pyx_cur_scope->__pyx_v_self->__pyx_base.handle, ((struct __pyx_vtabstruct_6libzfs_ZFSDataset *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___iterate_children, ((void *)__pyx_cur_scope->__pyx_v_datasets)); }
2140:
+2141: for h in datasets:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_datasets; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 2141, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_h); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_h, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2142: dataset = ZFSDataset.__new__(ZFSDataset)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSDataset(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSDataset), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSDataset)))) __PYX_ERR(1, 2142, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_dataset, ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+2143: dataset.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dataset->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset->__pyx_base.root)); __pyx_cur_scope->__pyx_v_dataset->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+2144: dataset.pool = self.pool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.pool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool)); __pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+2145: dataset.handle = <libzfs.zfs_handle_t*><uintptr_t>h
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2145, __pyx_L1_error) __pyx_cur_scope->__pyx_v_dataset->__pyx_base.handle = ((zfs_handle_t *)((uintptr_t)__pyx_t_4));
+2146: yield dataset
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_dataset); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2146, __pyx_L1_error)
2147:
2148: property children_recursive:
+2149: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_18children_recursive_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_18children_recursive_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_18children_recursive___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_18children_recursive___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_16___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_16___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_16___get__(__pyx_ptype_6libzfs___pyx_scope_struct_16___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_18children_recursive_2generator14, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2149, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.children_recursive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_18children_recursive_2generator14(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2149, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_9snapshots_2generator15(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_16___get__ { PyObject_HEAD PyObject *__pyx_v_c; PyObject *__pyx_v_i; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); PyObject *__pyx_t_3; Py_ssize_t __pyx_t_4; PyObject *(*__pyx_t_5)(PyObject *); };
+2150: for c in self.children:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2150, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2150, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2150, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2150, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2151: yield c
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_c); __pyx_r = __pyx_cur_scope->__pyx_v_c; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2151, __pyx_L1_error)
+2152: for i in c.children_recursive:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_children_recursive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2152, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2152, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2152, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2152, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2153: yield i
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_i); __pyx_r = __pyx_cur_scope->__pyx_v_i; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_3 = __pyx_t_5; __pyx_cur_scope->__pyx_t_4 = __pyx_t_6; __pyx_cur_scope->__pyx_t_5 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L9_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_t_5 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_4; __pyx_t_7 = __pyx_cur_scope->__pyx_t_5; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2153, __pyx_L1_error)
2154:
2155: property snapshots:
+2156: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9snapshots_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9snapshots_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_9snapshots___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_9snapshots___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_17___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_17___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_17___get__(__pyx_ptype_6libzfs___pyx_scope_struct_17___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_9snapshots_2generator15, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2156, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.snapshots.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_9snapshots_2generator15(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2156, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_9bookmarks_2generator16(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_17___get__ { PyObject_HEAD PyObject *__pyx_v_h; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_snapshot; PyObject *__pyx_v_snapshots; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; };
2157: cdef ZFSSnapshot snapshot
2158:
+2159: snapshots = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_snapshots = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2160: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2161: libzfs.zfs_iter_snapshots(self.handle, False, self.__iterate_snapshots, <void*>snapshots)
zfs_iter_snapshots(__pyx_cur_scope->__pyx_v_self->__pyx_base.handle, 0, ((struct __pyx_vtabstruct_6libzfs_ZFSDataset *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___iterate_snapshots, ((void *)__pyx_cur_scope->__pyx_v_snapshots)); }
2162:
+2163: for h in snapshots:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_snapshots; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 2163, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_h); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_h, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_L7_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2164: snapshot = ZFSSnapshot.__new__(ZFSSnapshot)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSSnapshot(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSSnapshot), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSSnapshot)))) __PYX_ERR(1, 2164, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_snapshot, ((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+2165: snapshot.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root)); __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+2166: snapshot.pool = self.pool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.pool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool)); __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+2167: snapshot.handle = <libzfs.zfs_handle_t*><uintptr_t>h
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2167, __pyx_L1_error) __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.handle = ((zfs_handle_t *)((uintptr_t)__pyx_t_4));
+2168: if snapshot.snapshot_name == '$ORIGIN':
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s_ORIGIN, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(1, 2168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ }
+2169: continue
goto __pyx_L7_continue;
2170:
+2171: yield snapshot
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_snapshot); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L10_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2171, __pyx_L1_error)
2172:
2173: property bookmarks:
+2174: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9bookmarks_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9bookmarks_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_9bookmarks___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_9bookmarks___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_18___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_18___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_18___get__(__pyx_ptype_6libzfs___pyx_scope_struct_18___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_9bookmarks_2generator16, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2174, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.bookmarks.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_9bookmarks_2generator16(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2174, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_19snapshots_recursive_2generator17(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_18___get__ { PyObject_HEAD PyObject *__pyx_v_b; struct __pyx_obj_6libzfs_ZFSBookmark *__pyx_v_bookmark; PyObject *__pyx_v_bookmarks; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; };
2175: cdef ZFSBookmark bookmark
2176:
+2177: bookmarks = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_bookmarks = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2178: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2179: libzfs.zfs_iter_bookmarks(self.handle, self.__iterate_bookmarks, <void *>bookmarks)
zfs_iter_bookmarks(__pyx_cur_scope->__pyx_v_self->__pyx_base.handle, ((struct __pyx_vtabstruct_6libzfs_ZFSDataset *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___iterate_bookmarks, ((void *)__pyx_cur_scope->__pyx_v_bookmarks)); }
2180:
+2181: for b in bookmarks:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_bookmarks; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 2181, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_b); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_b, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2182: bookmark = ZFSBookmark.__new__(ZFSBookmark)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSBookmark(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSBookmark), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSBookmark)))) __PYX_ERR(1, 2182, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_bookmark)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_bookmark, ((struct __pyx_obj_6libzfs_ZFSBookmark *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+2183: bookmark.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_bookmark->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_bookmark->__pyx_base.root)); __pyx_cur_scope->__pyx_v_bookmark->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+2184: bookmark.pool = self.pool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.pool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_bookmark->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_bookmark->__pyx_base.pool)); __pyx_cur_scope->__pyx_v_bookmark->__pyx_base.pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+2185: bookmark.handle = <libzfs.zfs_handle_t*><uintptr_t>b
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_b); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2185, __pyx_L1_error) __pyx_cur_scope->__pyx_v_bookmark->__pyx_base.handle = ((zfs_handle_t *)((uintptr_t)__pyx_t_4));
+2186: yield bookmark
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_bookmark)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_bookmark); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2186, __pyx_L1_error)
2187:
2188:
2189: property snapshots_recursive:
+2190: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_19snapshots_recursive_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_19snapshots_recursive_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_19snapshots_recursive___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_19snapshots_recursive___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_19___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_19___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_19___get__(__pyx_ptype_6libzfs___pyx_scope_struct_19___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_19snapshots_recursive_2generator17, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2190, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.snapshots_recursive.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_19snapshots_recursive_2generator17(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2190, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_10dependents_2generator18(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */ /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_19___get__ { PyObject_HEAD PyObject *__pyx_v_c; PyObject *__pyx_v_i; PyObject *__pyx_v_s; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); PyObject *__pyx_t_3; Py_ssize_t __pyx_t_4; PyObject *(*__pyx_t_5)(PyObject *); PyObject *__pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); };
+2191: for s in self.snapshots:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_snapshots); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2191, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2191, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2191, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2191, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2192: yield s
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_s); __pyx_r = __pyx_cur_scope->__pyx_v_s; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2192, __pyx_L1_error)
2193:
+2194: for c in self.children:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2194, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2194, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 2194, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_4(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2194, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_c); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_c, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2195: for s in c.snapshots:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_snapshots); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2195, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2195, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2195, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2195, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2196: yield s
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_s); __pyx_r = __pyx_cur_scope->__pyx_v_s; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_3 = __pyx_t_5; __pyx_cur_scope->__pyx_t_4 = __pyx_t_6; __pyx_cur_scope->__pyx_t_5 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L11_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_t_5 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_6 = __pyx_cur_scope->__pyx_t_4; __pyx_t_7 = __pyx_cur_scope->__pyx_t_5; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2196, __pyx_L1_error)
+2197: for i in c.children_recursive:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_c, __pyx_n_s_children_recursive); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2197, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2197, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2197, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2197, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2198: for s in i.snapshots:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_i, __pyx_n_s_snapshots); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2198, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 2198, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(1, 2198, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2198, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_s); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_s, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2199: yield s
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_s); __pyx_r = __pyx_cur_scope->__pyx_v_s; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_3 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __pyx_cur_scope->__pyx_t_2 = __pyx_t_4; __pyx_cur_scope->__pyx_t_4 = __pyx_t_6; __pyx_cur_scope->__pyx_t_5 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_6 = __pyx_t_8; __pyx_cur_scope->__pyx_t_7 = __pyx_t_9; __pyx_cur_scope->__pyx_t_8 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 3; return __pyx_r; __pyx_L16_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; __pyx_t_4 = __pyx_cur_scope->__pyx_t_2; __pyx_t_6 = __pyx_cur_scope->__pyx_t_4; __pyx_t_7 = __pyx_cur_scope->__pyx_t_5; __pyx_t_8 = __pyx_cur_scope->__pyx_t_6; __pyx_cur_scope->__pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_7; __pyx_t_10 = __pyx_cur_scope->__pyx_t_8; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2199, __pyx_L1_error)
2200:
2201: property dependents:
+2202: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_10dependents_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_10dependents_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_10dependents___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_10dependents___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct_20___get__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_20___get__ *)__pyx_tp_new_6libzfs___pyx_scope_struct_20___get__(__pyx_ptype_6libzfs___pyx_scope_struct_20___get__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_10dependents_2generator18, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_2, __pyx_n_s_ZFSDataset___get); if (unlikely(!gen)) __PYX_ERR(1, 2202, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.dependents.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_10dependents_2generator18(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2202, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_20___get__ { PyObject_HEAD struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_dataset; PyObject *__pyx_v_dependents; PyObject *__pyx_v_h; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_snapshot; zfs_type_t __pyx_v_type; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; };
2203: cdef ZFSDataset dataset
2204: cdef ZFSSnapshot snapshot
2205: cdef zfs.zfs_type_t type
2206:
+2207: dependents = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_dependents = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2208: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2209: libzfs.zfs_iter_dependents(self.handle, False, self.__iterate_dependents, <void*>dependents)
zfs_iter_dependents(__pyx_cur_scope->__pyx_v_self->__pyx_base.handle, 0, ((struct __pyx_vtabstruct_6libzfs_ZFSDataset *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___iterate_dependents, ((void *)__pyx_cur_scope->__pyx_v_dependents)); }
2210:
+2211: for h in dependents:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_dependents; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 2211, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_h); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_h, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2212: type = libzfs.zfs_get_type(<libzfs.zfs_handle_t*><uintptr_t>h)
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2212, __pyx_L1_error) __pyx_cur_scope->__pyx_v_type = zfs_get_type(((zfs_handle_t *)((uintptr_t)__pyx_t_4)));
2213:
+2214: if type == zfs.ZFS_TYPE_FILESYSTEM or type == zfs.ZFS_TYPE_VOLUME:
switch (__pyx_cur_scope->__pyx_v_type) { case ZFS_TYPE_FILESYSTEM: case ZFS_TYPE_VOLUME: /* … */ break; default: break; }
+2215: dataset = ZFSDataset.__new__(ZFSDataset)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSDataset(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSDataset), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSDataset)))) __PYX_ERR(1, 2215, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_dataset, ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+2216: dataset.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dataset->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset->__pyx_base.root)); __pyx_cur_scope->__pyx_v_dataset->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+2217: dataset.pool = self.pool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.pool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool)); __pyx_cur_scope->__pyx_v_dataset->__pyx_base.pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+2218: dataset.handle = <libzfs.zfs_handle_t*><uintptr_t>h
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2218, __pyx_L1_error) __pyx_cur_scope->__pyx_v_dataset->__pyx_base.handle = ((zfs_handle_t *)((uintptr_t)__pyx_t_4));
+2219: yield dataset
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_dataset)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_dataset); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L9_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2219, __pyx_L1_error)
2220:
+2221: if type == zfs.ZFS_TYPE_SNAPSHOT:
__pyx_t_5 = ((__pyx_cur_scope->__pyx_v_type == ZFS_TYPE_SNAPSHOT) != 0); if (__pyx_t_5) { /* … */ }
+2222: snapshot = ZFSSnapshot.__new__(ZFSSnapshot)
__pyx_t_3 = __pyx_tp_new_6libzfs_ZFSSnapshot(((PyTypeObject *)__pyx_ptype_6libzfs_ZFSSnapshot), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6libzfs_ZFSSnapshot)))) __PYX_ERR(1, 2222, __pyx_L1_error) __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot)); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_snapshot, ((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_t_3)); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0;
+2223: snapshot.root = self.root
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root)); __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.root = ((struct __pyx_obj_6libzfs_ZFS *)__pyx_t_3); __pyx_t_3 = 0;
+2224: snapshot.pool = self.pool
__pyx_t_3 = ((PyObject *)__pyx_cur_scope->__pyx_v_self->__pyx_base.pool); __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool); __Pyx_DECREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool)); __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.pool = ((struct __pyx_obj_6libzfs_ZFSPool *)__pyx_t_3); __pyx_t_3 = 0;
+2225: snapshot.handle = <libzfs.zfs_handle_t*><uintptr_t>h
__pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_h); if (unlikely((__pyx_t_4 == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2225, __pyx_L1_error) __pyx_cur_scope->__pyx_v_snapshot->__pyx_base.handle = ((zfs_handle_t *)((uintptr_t)__pyx_t_4));
+2226: yield snapshot
__Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_v_snapshot)); __pyx_r = ((PyObject *)__pyx_cur_scope->__pyx_v_snapshot); __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 2; return __pyx_r; __pyx_L11_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2226, __pyx_L1_error)
2227:
2228: property mountpoint:
+2229: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_10mountpoint_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_10mountpoint_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_10mountpoint___get__(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_10mountpoint___get__(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { char *__pyx_v_mntpt; char *__pyx_v_result; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSDataset.mountpoint.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2230: cdef char *mntpt
+2231: if libzfs.zfs_is_mounted(self.handle, &mntpt) == 0:
__pyx_t_1 = ((zfs_is_mounted(__pyx_v_self->__pyx_base.handle, (&__pyx_v_mntpt)) == 0) != 0); if (__pyx_t_1) { /* … */ }
+2232: return None
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_None); __pyx_r = Py_None; goto __pyx_L0;
2233:
+2234: result = mntpt
__pyx_v_result = __pyx_v_mntpt;
+2235: free(mntpt)
free(__pyx_v_mntpt);
+2236: return result
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
2237:
+2238: def destroy_snapshot(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_3destroy_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_3destroy_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy_snapshot (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_2destroy_snapshot(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_2destroy_snapshot(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_name) { char const *__pyx_v_c_name; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("destroy_snapshot", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSDataset.destroy_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2239: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2239, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
2240: cdef int ret
2241:
+2242: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2243: ret = libzfs.zfs_destroy_snaps(self.handle, c_name, True)
__pyx_v_ret = zfs_destroy_snaps(__pyx_v_self->__pyx_base.handle, __pyx_v_c_name, 1); }
2244:
+2245: if ret != 0:
__pyx_t_2 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_2) { /* … */ }
+2246: raise self.root.get_error()
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2246, __pyx_L1_error)
2247:
+2248: self.root.write_history('zfs destroy', name)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_destroy); __Pyx_GIVEREF(__pyx_kp_s_zfs_destroy); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zfs_destroy); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_name); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2249:
+2250: def mount(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_5mount(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_5mount(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mount (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_4mount(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_4mount(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mount", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSDataset.mount", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2251: cdef int ret
2252:
+2253: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2254: ret = libzfs.zfs_mount(self.handle, NULL, 0)
__pyx_v_ret = zfs_mount(__pyx_v_self->__pyx_base.handle, NULL, 0); }
2255:
+2256: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+2257: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2257, __pyx_L1_error)
2258:
+2259: self.root.write_history('zfs mount', self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_mount); __Pyx_GIVEREF(__pyx_kp_s_zfs_mount); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zfs_mount); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2260:
+2261: def mount_recursive(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_7mount_recursive(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_7mount_recursive(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mount_recursive (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_6mount_recursive(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_6mount_recursive(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mount_recursive", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSDataset.mount_recursive", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2262: if self.type != DatasetType.FILESYSTEM:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DatasetType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FILESYSTEM); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* … */ }
+2263: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
2264:
+2265: if self.properties['canmount'].value == 'on':
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_properties); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_GetItem(__pyx_t_2, __pyx_n_s_canmount); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_on, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* … */ }
+2266: self.mount()
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mount); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_1) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2266, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2267:
+2268: for i in self.children:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2268, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 2268, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 2268, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2268, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2269: i.mount_recursive()
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_mount_recursive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } if (__pyx_t_7) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2269, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2270:
+2271: def umount(self, force=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9umount(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_9umount(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_force = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("umount (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "umount") < 0)) __PYX_ERR(1, 2271, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_force = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("umount", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2271, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.umount", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_8umount(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_force); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_8umount(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_force) { int __pyx_v_flags; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("umount", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSDataset.umount", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2272: cdef int flags = 0
__pyx_v_flags = 0;
2273: cdef int ret
2274:
+2275: if force:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2275, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+2276: flags = zfs.MS_FORCE
__pyx_v_flags = MS_FORCE;
2277:
+2278: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2279: ret = libzfs.zfs_unmountall(self.handle, flags)
__pyx_v_ret = zfs_unmountall(__pyx_v_self->__pyx_base.handle, __pyx_v_flags); }
2280:
+2281: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+2282: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2282, __pyx_L1_error)
2283:
+2284: self.root.write_history('zfs umount', '-f' if force else '', self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2284, __pyx_L1_error) if (__pyx_t_1) { __Pyx_INCREF(__pyx_kp_s_f); __pyx_t_4 = __pyx_kp_s_f; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_4 = __pyx_kp_s__11; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_umount); __Pyx_GIVEREF(__pyx_kp_s_zfs_umount); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_kp_s_zfs_umount); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2285:
+2286: def umount_recursive(self, force=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_11umount_recursive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_11umount_recursive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_force = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("umount_recursive (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "umount_recursive") < 0)) __PYX_ERR(1, 2286, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_force = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("umount_recursive", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2286, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.umount_recursive", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_10umount_recursive(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_force); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_10umount_recursive(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_force) { PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("umount_recursive", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.ZFSDataset.umount_recursive", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2287: if self.type != DatasetType.FILESYSTEM:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_DatasetType); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_FILESYSTEM); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* … */ }
+2288: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
2289:
+2290: self.umount(force)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_umount); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_1) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_force); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_force); __Pyx_GIVEREF(__pyx_v_force); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_force); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2291:
+2292: for i in self.children:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2292, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2292, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(1, 2292, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2292, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2293: i.umount_recursive(force)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_umount_recursive); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (!__pyx_t_1) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_force); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = NULL; __Pyx_INCREF(__pyx_v_force); __Pyx_GIVEREF(__pyx_v_force); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_force); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2294:
+2295: def send(self, fd, **kwargs):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_13send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_13send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fd = 0; PyObject *__pyx_v_kwargs = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send (wrapper)", 0); __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; __Pyx_GOTREF(__pyx_v_kwargs); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "send") < 0)) __PYX_ERR(1, 2295, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_fd = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("send", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2295, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; __Pyx_AddTraceback("libzfs.ZFSDataset.send", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_12send(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_fd, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_12send(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_fd, PyObject *__pyx_v_kwargs) { int __pyx_v_cfd; int __pyx_v_err; char *__pyx_v_ctoname; char *__pyx_v_cfromname; sendflags_t __pyx_v_cflags; PyObject *__pyx_v_toname = NULL; PyObject *__pyx_v_fromname = NULL; PyObject *__pyx_v_flags = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSDataset.send", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_toname); __Pyx_XDECREF(__pyx_v_fromname); __Pyx_XDECREF(__pyx_v_flags); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2296: cdef int cfd = fd
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2296, __pyx_L1_error) __pyx_v_cfd = __pyx_t_1;
2297: cdef int err
2298: cdef char *ctoname
+2299: cdef char *cfromname = NULL
__pyx_v_cfromname = NULL;
2300: cdef libzfs.sendflags_t cflags
2301:
+2302: toname = kwargs.get('toname')
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_toname, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_toname = __pyx_t_2; __pyx_t_2 = 0;
+2303: fromname = kwargs.get('fromname')
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_fromname, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_fromname = __pyx_t_2; __pyx_t_2 = 0;
+2304: flags = kwargs.get('flags')
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_flags, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_flags = __pyx_t_2; __pyx_t_2 = 0;
+2305: memset(&cflags, 0, cython.sizeof(libzfs.sendflags_t))
memset((&__pyx_v_cflags), 0, (sizeof(sendflags_t)));
2306:
+2307: if not toname:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_toname); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2307, __pyx_L1_error)
__pyx_t_4 = ((!__pyx_t_3) != 0);
if (__pyx_t_4) {
/* … */
}
+2308: raise ValueError('toname argument is required')
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2308, __pyx_L1_error) /* … */ __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_s_toname_argument_is_required); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(1, 2308, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55);
2309:
+2310: ctoname = toname
__pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_toname); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(1, 2310, __pyx_L1_error) __pyx_v_ctoname = __pyx_t_5;
2311:
+2312: if fromname:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_fromname); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2312, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+2313: cfromname = fromname
__pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_fromname); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(1, 2313, __pyx_L1_error) __pyx_v_cfromname = __pyx_t_5;
2314:
+2315: if flags:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_flags); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2315, __pyx_L1_error)
if (__pyx_t_4) {
/* … */
}
+2316: convert_sendflags(flags, &cflags)
__pyx_t_2 = __pyx_f_6libzfs_convert_sendflags(__pyx_v_flags, (&__pyx_v_cflags)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2317:
+2318: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L8; } __pyx_L8:; } }
+2319: err = libzfs.zfs_send(self.handle, cfromname, ctoname, &cflags, cfd, NULL, NULL, NULL)
__pyx_v_err = zfs_send(__pyx_v_self->__pyx_base.handle, __pyx_v_cfromname, __pyx_v_ctoname, (&__pyx_v_cflags), __pyx_v_cfd, NULL, NULL, NULL); }
2320:
+2321: if err != 0:
__pyx_t_4 = ((__pyx_v_err != 0) != 0); if (__pyx_t_4) { /* … */ }
+2322: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2322, __pyx_L1_error)
2323:
+2324: def get_send_progress(self, fd):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_15get_send_progress(PyObject *__pyx_v_self, PyObject *__pyx_v_fd); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_15get_send_progress(PyObject *__pyx_v_self, PyObject *__pyx_v_fd) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_send_progress (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_14get_send_progress(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), ((PyObject *)__pyx_v_fd)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_14get_send_progress(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_fd) { zfs_cmd_t __pyx_v_cmd; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_send_progress", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSDataset.get_send_progress", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2325: cdef zfs.zfs_cmd_t cmd
2326: cdef int ret
2327:
+2328: memset(&cmd, 0, cython.sizeof(libzfs.zfs_cmd))
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_libzfs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zfs_cmd); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; memset((&__pyx_v_cmd), 0, (sizeof(__pyx_t_2))); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2329:
+2330: cmd.zc_cookie = fd
__pyx_t_3 = __Pyx_PyInt_As_uint64_t(__pyx_v_fd); if (unlikely((__pyx_t_3 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 2330, __pyx_L1_error)
__pyx_v_cmd.zc_cookie = __pyx_t_3;
+2331: strncpy(cmd.zc_name, self.name, zfs.MAXPATHLEN)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 2331, __pyx_L1_error) strncpy(__pyx_v_cmd.zc_name, __pyx_t_4, MAXPATHLEN); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2332:
+2333: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2334: ret = libzfs.zfs_ioctl(self.root.handle, zfs.ZFS_IOC_SEND_PROGRESS, &cmd)
__pyx_v_ret = zfs_ioctl(__pyx_v_self->__pyx_base.root->handle, ZFS_IOC_SEND_PROGRESS, (&__pyx_v_cmd)); }
2335:
+2336: if ret != 0:
__pyx_t_5 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_5) { /* … */ }
+2337: raise ZFSException(Error.FAULT, "Cannot obtain send progress")
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ZFSException); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_FAULT); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_kp_s_Cannot_obtain_send_progress); __Pyx_GIVEREF(__pyx_kp_s_Cannot_obtain_send_progress); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_kp_s_Cannot_obtain_send_progress); __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2337, __pyx_L1_error)
2338:
+2339: return cmd.zc_cookie
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_cmd.zc_cookie); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
2340:
+2341: def promote(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_17promote(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_17promote(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("promote (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_16promote(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_16promote(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self) { int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("promote", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSDataset.promote", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2342: cdef int ret
2343:
+2344: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2345: ret = libzfs.zfs_promote(self.handle)
__pyx_v_ret = zfs_promote(__pyx_v_self->__pyx_base.handle); }
2346:
+2347: if ret != 0:
__pyx_t_1 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_1) { /* … */ }
+2348: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2348, __pyx_L1_error)
2349:
+2350: self.root.write_history('zfs promote', self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_promote); __Pyx_GIVEREF(__pyx_kp_s_zfs_promote); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_kp_s_zfs_promote); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2351:
+2352: def snapshot(self, name, fsopts=None, recursive=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_19snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_19snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_fsopts = 0; PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("snapshot (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_fsopts,&__pyx_n_s_recursive,0}; PyObject* values[3] = {0,0,0}; values[1] = ((PyObject *)Py_None); values[2] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fsopts); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "snapshot") < 0)) __PYX_ERR(1, 2352, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_fsopts = values[1]; __pyx_v_recursive = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("snapshot", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2352, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_18snapshot(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_name, __pyx_v_fsopts, __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_18snapshot(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_fsopts, PyObject *__pyx_v_recursive) { struct __pyx_obj_6libzfs_NVList *__pyx_v_cfsopts = 0; char const *__pyx_v_c_name; int __pyx_v_c_recursive; int __pyx_v_ret; PyObject *__pyx_v_hfsopts = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("snapshot", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSDataset.snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cfsopts); __Pyx_XDECREF(__pyx_v_hfsopts); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2353: cdef NVList cfsopts = NVList(otherdict=fsopts or {})
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_fsopts); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2353, __pyx_L1_error) if (!__pyx_t_3) { } else { __Pyx_INCREF(__pyx_v_fsopts); __pyx_t_2 = __pyx_v_fsopts; goto __pyx_L3_bool_binop_done; } __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L3_bool_binop_done:; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_otherdict, __pyx_t_2) < 0) __PYX_ERR(1, 2353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_cfsopts = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+2354: cdef const char *c_name = name
__pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) __PYX_ERR(1, 2354, __pyx_L1_error) __pyx_v_c_name = __pyx_t_5;
+2355: cdef int c_recursive = recursive
__pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_recursive); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2355, __pyx_L1_error) __pyx_v_c_recursive = __pyx_t_6;
2356: cdef int ret
2357:
+2358: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L7; } __pyx_L7:; } }
+2359: ret = libzfs.zfs_snapshot(
__pyx_v_ret = zfs_snapshot(__pyx_v_self->__pyx_base.root->handle, __pyx_v_c_name, __pyx_v_c_recursive, __pyx_v_cfsopts->handle); }
2360: self.root.handle,
2361: c_name,
2362: c_recursive,
2363: cfsopts.handle
2364: )
2365:
+2366: if ret != 0:
__pyx_t_3 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_3) { /* … */ }
+2367: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2367, __pyx_L1_error)
2368:
+2369: if self.root.history:
__pyx_t_3 = (__pyx_v_self->__pyx_base.root->history != 0); if (__pyx_t_3) { /* … */ }
+2370: hfsopts = self.root.generate_history_opts(fsopts, '-o')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_generate_history_opts); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_fsopts); __Pyx_GIVEREF(__pyx_v_fsopts); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_fsopts); __Pyx_INCREF(__pyx_kp_s_o); __Pyx_GIVEREF(__pyx_kp_s_o); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_o); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_hfsopts = __pyx_t_2; __pyx_t_2 = 0;
+2371: self.root.write_history('zfs snapshot', '-r' if recursive else '', hfsopts, name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2371, __pyx_L1_error) if (__pyx_t_3) { __Pyx_INCREF(__pyx_kp_s_r); __pyx_t_8 = __pyx_kp_s_r; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_8 = __pyx_kp_s__11; } __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } __pyx_t_9 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_snapshot); __Pyx_GIVEREF(__pyx_kp_s_zfs_snapshot); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_kp_s_zfs_snapshot); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_v_hfsopts); __Pyx_GIVEREF(__pyx_v_hfsopts); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_7, __pyx_v_hfsopts); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_7, __pyx_v_name); __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
2372:
+2373: def receive(self, fd, force=False, nomount=False, resumable=False, props=None, limitds=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_21receive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_21receive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fd = 0; PyObject *__pyx_v_force = 0; PyObject *__pyx_v_nomount = 0; PyObject *__pyx_v_resumable = 0; PyObject *__pyx_v_props = 0; PyObject *__pyx_v_limitds = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("receive (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd,&__pyx_n_s_force,&__pyx_n_s_nomount,&__pyx_n_s_resumable,&__pyx_n_s_props,&__pyx_n_s_limitds,0}; PyObject* values[6] = {0,0,0,0,0,0}; values[1] = ((PyObject *)Py_False); values[2] = ((PyObject *)Py_False); values[3] = ((PyObject *)Py_False); values[4] = ((PyObject *)Py_None); values[5] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force); if (value) { values[1] = value; kw_args--; } } case 2: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nomount); if (value) { values[2] = value; kw_args--; } } case 3: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_resumable); if (value) { values[3] = value; kw_args--; } } case 4: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_props); if (value) { values[4] = value; kw_args--; } } case 5: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_limitds); if (value) { values[5] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "receive") < 0)) __PYX_ERR(1, 2373, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_fd = values[0]; __pyx_v_force = values[1]; __pyx_v_nomount = values[2]; __pyx_v_resumable = values[3]; __pyx_v_props = values[4]; __pyx_v_limitds = values[5]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("receive", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2373, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.receive", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_20receive(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_fd, __pyx_v_force, __pyx_v_nomount, __pyx_v_resumable, __pyx_v_props, __pyx_v_limitds); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_20receive(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_fd, PyObject *__pyx_v_force, PyObject *__pyx_v_nomount, PyObject *__pyx_v_resumable, PyObject *__pyx_v_props, PyObject *__pyx_v_limitds) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("receive", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZFSDataset.receive", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_10ZFSDataset_24generator19(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+2374: self.root.receive(
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_receive); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_fd); __pyx_t_2 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2375: self.name,
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
2376: fd,
+2377: force=force,
__pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_force, __pyx_v_force) < 0) __PYX_ERR(1, 2377, __pyx_L1_error)
+2378: nomount=nomount,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nomount, __pyx_v_nomount) < 0) __PYX_ERR(1, 2377, __pyx_L1_error)
+2379: resumable=resumable,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_resumable, __pyx_v_resumable) < 0) __PYX_ERR(1, 2377, __pyx_L1_error)
+2380: props=props,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_props, __pyx_v_props) < 0) __PYX_ERR(1, 2377, __pyx_L1_error)
2381: limitds=limitds
+2382: )
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_limitds, __pyx_v_limitds) < 0) __PYX_ERR(1, 2377, __pyx_L1_error)
2383:
+2384: def diff(self, fromsnap, tosnap):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_23diff(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_23diff(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fromsnap = 0; PyObject *__pyx_v_tosnap = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("diff (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fromsnap,&__pyx_n_s_tosnap,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fromsnap)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tosnap)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("diff", 1, 2, 2, 1); __PYX_ERR(1, 2384, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "diff") < 0)) __PYX_ERR(1, 2384, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_fromsnap = values[0]; __pyx_v_tosnap = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("diff", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2384, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.diff", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_22diff(((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_v_self), __pyx_v_fromsnap, __pyx_v_tosnap); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_22diff(struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self, PyObject *__pyx_v_fromsnap, PyObject *__pyx_v_tosnap) { struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("diff", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff *)__pyx_tp_new_6libzfs___pyx_scope_struct_21_diff(__pyx_ptype_6libzfs___pyx_scope_struct_21_diff, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_fromsnap = __pyx_v_fromsnap; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_fromsnap); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_fromsnap); __pyx_cur_scope->__pyx_v_tosnap = __pyx_v_tosnap; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_tosnap); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_tosnap); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_10ZFSDataset_24generator19, (PyObject *) __pyx_cur_scope, __pyx_n_s_diff, __pyx_n_s_ZFSDataset_diff); if (unlikely(!gen)) __PYX_ERR(1, 2384, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.ZFSDataset.diff", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ static PyObject *__pyx_gb_6libzfs_10ZFSDataset_24generator19(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2384, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("diff", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff { PyObject_HEAD int __pyx_v_c_flags; char *__pyx_v_c_fromsnap; char *__pyx_v_c_tosnap; PyObject *__pyx_v_f; PyObject *__pyx_v_fromsnap; PyObject *__pyx_v_line; PyObject *__pyx_v_ret; PyObject *__pyx_v_rfd; struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_self; PyObject *__pyx_v_thr; PyObject *__pyx_v_tosnap; PyObject *__pyx_v_wfd; PyObject *__pyx_v_worker; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2; PyObject *__pyx_t_3; PyObject *__pyx_t_4; PyObject *__pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); };
+2385: cdef char *c_fromsnap = fromsnap
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_cur_scope->__pyx_v_fromsnap); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2385, __pyx_L1_error) __pyx_cur_scope->__pyx_v_c_fromsnap = __pyx_t_1;
+2386: cdef char *c_tosnap = tosnap
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_cur_scope->__pyx_v_tosnap); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2386, __pyx_L1_error) __pyx_cur_scope->__pyx_v_c_tosnap = __pyx_t_1;
+2387: cdef int c_flags = libzfs.ZFS_DIFF_PARSEABLE | libzfs.ZFS_DIFF_TIMESTAMP | libzfs.ZFS_DIFF_CLASSIFY
__pyx_cur_scope->__pyx_v_c_flags = ((ZFS_DIFF_PARSEABLE | ZFS_DIFF_TIMESTAMP) | ZFS_DIFF_CLASSIFY);
+2388: ret = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __pyx_cur_scope->__pyx_v_ret = Py_None;
2389:
+2390: def worker(fd):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_10ZFSDataset_4diff_1worker(PyObject *__pyx_self, PyObject *__pyx_v_fd); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_10ZFSDataset_4diff_1worker = {"worker", (PyCFunction)__pyx_pw_6libzfs_10ZFSDataset_4diff_1worker, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_10ZFSDataset_4diff_1worker(PyObject *__pyx_self, PyObject *__pyx_v_fd) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("worker (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_10ZFSDataset_4diff_worker(__pyx_self, ((PyObject *)__pyx_v_fd)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10ZFSDataset_4diff_worker(PyObject *__pyx_self, PyObject *__pyx_v_fd) { struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff *__pyx_cur_scope; struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff *__pyx_outer_scope; int __pyx_v_c_fd; int __pyx_v_c_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("worker", 0); __pyx_outer_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_21_diff *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSDataset.diff.worker", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__56 = PyTuple_Pack(3, __pyx_n_s_fd, __pyx_n_s_c_fd, __pyx_n_s_c_ret); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(1, 2390, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__56); __Pyx_GIVEREF(__pyx_tuple__56); /* … */ __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6libzfs_10ZFSDataset_4diff_1worker, 0, __pyx_n_s_diff_locals_worker, ((PyObject*)__pyx_cur_scope), __pyx_n_s_libzfs, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_v_worker = __pyx_t_2; __pyx_t_2 = 0; __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_worker, 2390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(1, 2390, __pyx_L1_error)
+2391: cdef int c_fd = fd
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2391, __pyx_L1_error) __pyx_v_c_fd = __pyx_t_1;
2392: cdef int c_ret
2393: nonlocal ret
2394:
+2395: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L4_error: { #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L1_error; } __pyx_L5:; } }
+2396: c_ret = libzfs.zfs_show_diffs(self.handle, c_fd, c_fromsnap, c_tosnap, c_flags)
if (unlikely(!__pyx_cur_scope->__pyx_v_self)) { __Pyx_RaiseClosureNameError("self"); __PYX_ERR(1, 2396, __pyx_L4_error) }
__pyx_v_c_ret = zfs_show_diffs(__pyx_cur_scope->__pyx_v_self->__pyx_base.handle, __pyx_v_c_fd, __pyx_cur_scope->__pyx_v_c_fromsnap, __pyx_cur_scope->__pyx_v_c_tosnap, __pyx_cur_scope->__pyx_v_c_flags);
}
2397:
+2398: ret = c_ret
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_c_ret); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_ret); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_ret, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
2399:
+2400: rfd, wfd = os.pipe()
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pipe); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2400, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 2400, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(1, 2400, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_unpacking_done; __pyx_L4_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(1, 2400, __pyx_L1_error) __pyx_L5_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_rfd = __pyx_t_4; __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_wfd = __pyx_t_3; __pyx_t_3 = 0;
+2401: thr = threading.Thread(target=worker, args=(wfd,), daemon=True)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Thread); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target, __pyx_cur_scope->__pyx_v_worker) < 0) __PYX_ERR(1, 2401, __pyx_L1_error) __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_wfd); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_wfd); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_cur_scope->__pyx_v_wfd); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_args, __pyx_t_4) < 0) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_daemon, Py_True) < 0) __PYX_ERR(1, 2401, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_thr = __pyx_t_4; __pyx_t_4 = 0;
+2402: thr.start()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_thr, __pyx_n_s_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2402, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2402, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2403:
+2404: with os.fdopen(rfd, 'r') as f:
/*with:*/ { __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fdopen); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } __pyx_t_5 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_cur_scope->__pyx_v_rfd); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_rfd); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_7, __pyx_cur_scope->__pyx_v_rfd); __Pyx_INCREF(__pyx_n_s_r_2); __Pyx_GIVEREF(__pyx_n_s_r_2); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_7, __pyx_n_s_r_2); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2404, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (__pyx_t_2) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2404, __pyx_L6_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2404, __pyx_L6_error) } __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /*try:*/ { { /*try:*/ { __Pyx_GIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_v_f = __pyx_t_5; __pyx_t_5 = 0; /* … */ } __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L17_try_end; __pyx_L10_error:; __Pyx_PyThreadState_assign __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /*except:*/ { __Pyx_AddTraceback("libzfs.ZFSDataset.diff", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(1, 2404, __pyx_L12_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2404, __pyx_L12_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 2404, __pyx_L12_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_14 < 0) __PYX_ERR(1, 2404, __pyx_L12_except_error) __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0); if (__pyx_t_15) { __Pyx_GIVEREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_2, __pyx_t_3); __pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __PYX_ERR(1, 2404, __pyx_L12_except_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L11_exception_handled; } __pyx_L12_except_error:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); goto __pyx_L1_error; __pyx_L11_exception_handled:; __Pyx_PyThreadState_assign __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); __pyx_L17_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_8) { __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__58, NULL); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } goto __pyx_L9; } __pyx_L9:; } goto __pyx_L24; __pyx_L6_error:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L1_error; __pyx_L24:; } /* … */ __pyx_tuple__58 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(1, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__58); __Pyx_GIVEREF(__pyx_tuple__58);
+2405: for line in f:
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_f)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_f)) { __pyx_t_5 = __pyx_cur_scope->__pyx_v_f; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __pyx_t_12 = NULL; } else { __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_f); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2405, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 2405, __pyx_L10_error) } for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 2405, __pyx_L10_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2405, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 2405, __pyx_L10_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2405, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 2405, __pyx_L10_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_line); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_line, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2406: yield DiffRecord(raw=line)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_DiffRecord); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2406, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2406, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_raw, __pyx_cur_scope->__pyx_v_line) < 0) __PYX_ERR(1, 2406, __pyx_L10_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2406, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_XGIVEREF(__pyx_t_5); __pyx_cur_scope->__pyx_t_0 = __pyx_t_5; __pyx_cur_scope->__pyx_t_1 = __pyx_t_7; __Pyx_XGIVEREF(__pyx_t_8); __pyx_cur_scope->__pyx_t_2 = __pyx_t_8; __Pyx_XGIVEREF(__pyx_t_9); __pyx_cur_scope->__pyx_t_3 = __pyx_t_9; __Pyx_XGIVEREF(__pyx_t_10); __pyx_cur_scope->__pyx_t_4 = __pyx_t_10; __Pyx_XGIVEREF(__pyx_t_11); __pyx_cur_scope->__pyx_t_5 = __pyx_t_11; __pyx_cur_scope->__pyx_t_6 = __pyx_t_12; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L20_resume_from_yield:; __pyx_t_5 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_5); __pyx_t_7 = __pyx_cur_scope->__pyx_t_1; __pyx_t_8 = __pyx_cur_scope->__pyx_t_2; __pyx_cur_scope->__pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_t_8); __pyx_t_9 = __pyx_cur_scope->__pyx_t_3; __pyx_cur_scope->__pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_t_9); __pyx_t_10 = __pyx_cur_scope->__pyx_t_4; __pyx_cur_scope->__pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_t_10); __pyx_t_11 = __pyx_cur_scope->__pyx_t_5; __pyx_cur_scope->__pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_t_11); __pyx_t_12 = __pyx_cur_scope->__pyx_t_6; if (unlikely(!__pyx_sent_value)) __PYX_ERR(1, 2406, __pyx_L10_error)
2407:
+2408: thr.join()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_thr, __pyx_n_s_join); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_5) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2408, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2408, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2409:
+2410: if ret != 0:
__pyx_t_3 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_ret, __pyx_int_0, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2410, __pyx_L1_error) __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(1, 2410, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_15) { /* … */ }
+2411: raise self.root.get_error()
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_cur_scope->__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_cur_scope->__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2411, __pyx_L1_error)
2412:
2413:
+2414: cdef class ZFSSnapshot(ZFSObject):
struct __pyx_obj_6libzfs_ZFSSnapshot { struct __pyx_obj_6libzfs_ZFSObject __pyx_base; };
+2415: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot___getstate__(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot___getstate__(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self) { PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSSnapshot.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2416: ret = super(ZFSSnapshot, self).__getstate__()
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2416, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2416, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0;
+2417: ret.update({
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ret, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+2418: 'holds': self.holds,
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_holds); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_holds, __pyx_t_4) < 0) __PYX_ERR(1, 2418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2419: 'dataset': self.parent.name,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dataset, __pyx_t_5) < 0) __PYX_ERR(1, 2418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2420: 'snapshot_name': self.snapshot_name
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_snapshot_name, __pyx_t_5) < 0) __PYX_ERR(1, 2418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_5) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2421: })
+2422: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0;
2423:
+2424: def rollback(self, force=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_3rollback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_3rollback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_force = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("rollback (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rollback") < 0)) __PYX_ERR(1, 2424, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_force = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("rollback", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSSnapshot.rollback", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_2rollback(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_force); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_2rollback(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_force) { struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_parent = 0; int __pyx_v_c_force; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("rollback", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSSnapshot.rollback", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_parent); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2425: cdef ZFSDataset parent
+2426: cdef int c_force = force
__pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_force); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2426, __pyx_L1_error) __pyx_v_c_force = __pyx_t_1;
2427: cdef int ret
2428:
+2429: parent = <ZFSDataset>self.parent
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_parent = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_3); __pyx_t_3 = 0;
2430:
+2431: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2432: ret = libzfs.zfs_rollback(parent.handle, self.handle, c_force)
__pyx_v_ret = zfs_rollback(__pyx_v_parent->__pyx_base.handle, __pyx_v_self->__pyx_base.handle, __pyx_v_c_force); }
2433:
+2434: if ret != 0:
__pyx_t_4 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_4) { /* … */ }
+2435: raise self.root.get_error()
__pyx_t_3 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2435, __pyx_L1_error)
2436:
+2437: self.root.write_history('zfs rollback', '-f' if force else '', self.name)
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2437, __pyx_L1_error) if (__pyx_t_4) { __Pyx_INCREF(__pyx_kp_s_f); __pyx_t_5 = __pyx_kp_s_f; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_5 = __pyx_kp_s__11; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_rollback); __Pyx_GIVEREF(__pyx_kp_s_zfs_rollback); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_kp_s_zfs_rollback); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2438:
+2439: def bookmark(self, name):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_5bookmark(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_5bookmark(PyObject *__pyx_v_self, PyObject *__pyx_v_name) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("bookmark (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_4bookmark(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), ((PyObject *)__pyx_v_name)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_4bookmark(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_name) { struct __pyx_obj_6libzfs_NVList *__pyx_v_bookmarks = 0; nvlist_t *__pyx_v_c_bookmarks; int __pyx_v_ret; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("bookmark", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("libzfs.ZFSSnapshot.bookmark", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_bookmarks); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2440: cdef NVList bookmarks
2441: cdef nvpair.nvlist_t *c_bookmarks
2442: cdef int ret
2443:
+2444: bookmarks = NVList()
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bookmarks = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
+2445: bookmarks['{0}#{1}'.format(self.parent.name, name)] = self.name
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_0_1_2, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_name); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_bookmarks), __pyx_t_2, __pyx_t_1) < 0)) __PYX_ERR(1, 2445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2446: c_bookmarks = bookmarks.handle
__pyx_t_8 = __pyx_v_bookmarks->handle; __pyx_v_c_bookmarks = __pyx_t_8;
2447:
+2448: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2449: ret = libzfs.lzc_bookmark(c_bookmarks, NULL)
__pyx_v_ret = lzc_bookmark(__pyx_v_c_bookmarks, NULL); }
2450:
+2451: if ret != 0:
__pyx_t_9 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_9) { /* … */ }
+2452: raise OSError(ret, os.strerror(ret))
__pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } if (!__pyx_t_5) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2452, __pyx_L1_error)
2453:
+2454: def clone(self, name, opts=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_7clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_7clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_opts = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clone (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,&__pyx_n_s_opts,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_opts); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "clone") < 0)) __PYX_ERR(1, 2454, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_opts = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("clone", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2454, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSSnapshot.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_6clone(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_name, __pyx_v_opts); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_6clone(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_opts) { struct __pyx_obj_6libzfs_NVList *__pyx_v_copts = 0; nvlist_t *__pyx_v_copts_handle; char const *__pyx_v_c_name; int __pyx_v_ret; PyObject *__pyx_v_hopts = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clone", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSSnapshot.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_copts); __Pyx_XDECREF(__pyx_v_hopts); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2455: cdef NVList copts = None
__Pyx_INCREF(Py_None);
__pyx_v_copts = ((struct __pyx_obj_6libzfs_NVList *)Py_None);
+2456: cdef nvpair.nvlist_t *copts_handle = NULL
__pyx_v_copts_handle = NULL;
+2457: cdef const char *c_name = name
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2457, __pyx_L1_error) __pyx_v_c_name = __pyx_t_1;
2458: cdef int ret
2459:
+2460: if opts:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_opts); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2460, __pyx_L1_error)
if (__pyx_t_2) {
/* … */
}
+2461: copts = NVList(otherdict=opts)
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_otherdict, __pyx_v_opts) < 0) __PYX_ERR(1, 2461, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_copts, ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_4)); __pyx_t_4 = 0;
+2462: copts_handle = copts.handle
__pyx_t_5 = __pyx_v_copts->handle; __pyx_v_copts_handle = __pyx_t_5;
2463:
+2464: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2465: ret = libzfs.zfs_clone(
__pyx_v_ret = zfs_clone(__pyx_v_self->__pyx_base.handle, __pyx_v_c_name, __pyx_v_copts_handle); }
2466: self.handle,
2467: c_name,
2468: copts_handle
2469: )
2470:
+2471: if ret != 0:
__pyx_t_2 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_2) { /* … */ }
+2472: raise self.root.get_error()
__pyx_t_4 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 2472, __pyx_L1_error)
2473:
+2474: if self.root.history:
__pyx_t_2 = (__pyx_v_self->__pyx_base.root->history != 0); if (__pyx_t_2) { /* … */ }
+2475: hopts = self.root.generate_history_opts(opts, '-o')
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_generate_history_opts); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_opts); __Pyx_GIVEREF(__pyx_v_opts); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_opts); __Pyx_INCREF(__pyx_kp_s_o); __Pyx_GIVEREF(__pyx_kp_s_o); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_kp_s_o); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_hopts = __pyx_t_4; __pyx_t_4 = 0;
+2476: self.root.write_history('zfs clone', hopts, self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_clone); __Pyx_GIVEREF(__pyx_kp_s_zfs_clone); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_kp_s_zfs_clone); __Pyx_INCREF(__pyx_v_hopts); __Pyx_GIVEREF(__pyx_v_hopts); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_v_hopts); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_7, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2477:
+2478: def hold(self, tag, recursive=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_9hold(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_9hold(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_tag = 0; PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("hold (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tag,&__pyx_n_s_recursive,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tag)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hold") < 0)) __PYX_ERR(1, 2478, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_tag = values[0]; __pyx_v_recursive = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("hold", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2478, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSSnapshot.hold", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_8hold(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_tag, __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_8hold(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_tag, PyObject *__pyx_v_recursive) { struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_parent = 0; char const *__pyx_v_c_snapshot_name; char const *__pyx_v_c_tag; int __pyx_v_c_recursive; int __pyx_v_ret; PyObject *__pyx_v_snapshot_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("hold", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSSnapshot.hold", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_parent); __Pyx_XDECREF(__pyx_v_snapshot_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2479: cdef ZFSDataset parent
2480: cdef const char *c_snapshot_name
+2481: cdef const char *c_tag = tag
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_tag); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2481, __pyx_L1_error) __pyx_v_c_tag = __pyx_t_1;
+2482: cdef int c_recursive = recursive
__pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_recursive); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2482, __pyx_L1_error) __pyx_v_c_recursive = __pyx_t_2;
2483: cdef int ret
2484:
+2485: snapshot_name = self.snapshot_name
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_snapshot_name = __pyx_t_3; __pyx_t_3 = 0;
+2486: c_snapshot_name = snapshot_name
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_snapshot_name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 2486, __pyx_L1_error) __pyx_v_c_snapshot_name = __pyx_t_4;
+2487: parent = <ZFSDataset>self.parent
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_parent = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_5); __pyx_t_5 = 0;
2488:
+2489: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2490: ret = libzfs.zfs_hold(parent.handle, c_snapshot_name, c_tag, c_recursive, -1)
__pyx_v_ret = zfs_hold(__pyx_v_parent->__pyx_base.handle, __pyx_v_c_snapshot_name, __pyx_v_c_tag, __pyx_v_c_recursive, -1); }
2491:
+2492: if ret != 0:
__pyx_t_6 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_6) { /* … */ }
+2493: raise self.root.get_error()
__pyx_t_5 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 2493, __pyx_L1_error)
2494:
+2495: self.root.write_history('zfs hold', '-r' if recursive else '', tag, self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 2495, __pyx_L1_error) if (__pyx_t_6) { __Pyx_INCREF(__pyx_kp_s_r); __pyx_t_7 = __pyx_kp_s_r; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_7 = __pyx_kp_s__11; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_hold); __Pyx_GIVEREF(__pyx_kp_s_zfs_hold); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_s_zfs_hold); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_v_tag); __Pyx_GIVEREF(__pyx_v_tag); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_tag); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
2496:
+2497: def release(self, tag, recursive=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_11release(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_11release(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_tag = 0; PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("release (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tag,&__pyx_n_s_recursive,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tag)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "release") < 0)) __PYX_ERR(1, 2497, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_tag = values[0]; __pyx_v_recursive = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("release", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2497, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSSnapshot.release", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_10release(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_tag, __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_10release(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_tag, PyObject *__pyx_v_recursive) { struct __pyx_obj_6libzfs_ZFSDataset *__pyx_v_parent = 0; char const *__pyx_v_c_snapshot_name; char const *__pyx_v_c_tag; int __pyx_v_c_recursive; int __pyx_v_ret; PyObject *__pyx_v_snapshot_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("release", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("libzfs.ZFSSnapshot.release", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_parent); __Pyx_XDECREF(__pyx_v_snapshot_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2498: cdef ZFSDataset parent
2499: cdef const char *c_snapshot_name
+2500: cdef const char *c_tag = tag
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_tag); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2500, __pyx_L1_error) __pyx_v_c_tag = __pyx_t_1;
+2501: cdef int c_recursive = recursive
__pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_recursive); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2501, __pyx_L1_error) __pyx_v_c_recursive = __pyx_t_2;
2502: cdef int ret
2503:
+2504: snapshot_name = self.snapshot_name
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_snapshot_name = __pyx_t_3; __pyx_t_3 = 0;
+2505: c_snapshot_name = snapshot_name
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_snapshot_name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(1, 2505, __pyx_L1_error) __pyx_v_c_snapshot_name = __pyx_t_4;
+2506: parent = <ZFSDataset>self.parent
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_parent = ((struct __pyx_obj_6libzfs_ZFSDataset *)__pyx_t_5); __pyx_t_5 = 0;
2507:
+2508: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+2509: ret = libzfs.zfs_release(parent.handle, c_snapshot_name, c_tag, c_recursive)
__pyx_v_ret = zfs_release(__pyx_v_parent->__pyx_base.handle, __pyx_v_c_snapshot_name, __pyx_v_c_tag, __pyx_v_c_recursive); }
2510:
+2511: if ret != 0:
__pyx_t_6 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_6) { /* … */ }
+2512: raise self.root.get_error()
__pyx_t_5 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 2512, __pyx_L1_error)
2513:
+2514: self.root.write_history('zfs release', '-r' if recursive else '', tag, self.name)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 2514, __pyx_L1_error) if (__pyx_t_6) { __Pyx_INCREF(__pyx_kp_s_r); __pyx_t_7 = __pyx_kp_s_r; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_7 = __pyx_kp_s__11; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_10 = 1; } } __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_release); __Pyx_GIVEREF(__pyx_kp_s_zfs_release); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_kp_s_zfs_release); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_v_tag); __Pyx_GIVEREF(__pyx_v_tag); PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_tag); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_8); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
2515:
+2516: def delete(self, recursive=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_13delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_13delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_recursive = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_recursive,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_recursive); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "delete") < 0)) __PYX_ERR(1, 2516, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_recursive = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("delete", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2516, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.ZFSSnapshot.delete", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_12delete(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_recursive); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_12delete(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_recursive) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("delete", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.ZFSSnapshot.delete", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2517: if not recursive:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2517, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+2518: super(ZFSSnapshot, self).delete()
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_ptype_6libzfs_ZFSSnapshot)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self)); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_delete); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (__pyx_t_5) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2518, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2518, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2519: else:
+2520: self.parent.destroy_snapshot(self.snapshot_name)
/*else*/ { __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_destroy_snapshot); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } if (!__pyx_t_6) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:;
2521:
+2522: self.root.write_history('zfs destroy', '-r' if recursive else '', self.name)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_write_history); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2522, __pyx_L1_error) if (__pyx_t_2) { __Pyx_INCREF(__pyx_kp_s_r); __pyx_t_7 = __pyx_kp_s_r; } else { __Pyx_INCREF(__pyx_kp_s__11); __pyx_t_7 = __pyx_kp_s__11; } __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_kp_s_zfs_destroy); __Pyx_GIVEREF(__pyx_kp_s_zfs_destroy); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_kp_s_zfs_destroy); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_4); __pyx_t_7 = 0; __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2523:
+2524: def send(self, fd, **kwargs):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_15send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_15send(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_fd = 0; PyObject *__pyx_v_kwargs = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send (wrapper)", 0); __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; __Pyx_GOTREF(__pyx_v_kwargs); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "send") < 0)) __PYX_ERR(1, 2524, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_fd = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("send", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2524, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; __Pyx_AddTraceback("libzfs.ZFSSnapshot.send", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_14send(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self), __pyx_v_fd, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_14send(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self, PyObject *__pyx_v_fd, PyObject *__pyx_v_kwargs) { PyObject *__pyx_v_fromname = NULL; PyObject *__pyx_v_flags = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("send", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.ZFSSnapshot.send", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fromname); __Pyx_XDECREF(__pyx_v_flags); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2525: fromname = kwargs.get('fromname')
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_fromname, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_fromname = __pyx_t_1; __pyx_t_1 = 0;
+2526: flags = kwargs.get('flags')
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_s_flags, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_flags = __pyx_t_1; __pyx_t_1 = 0;
+2527: return self.parent.send(fd, toname=self.snapshot_name, fromname=fromname, flags=flags)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_send); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fd); __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_snapshot_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_toname, __pyx_t_4) < 0) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fromname, __pyx_v_fromname) < 0) __PYX_ERR(1, 2527, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_flags, __pyx_v_flags) < 0) __PYX_ERR(1, 2527, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
2528:
2529: property snapshot_name:
+2530: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_13snapshot_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_13snapshot_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_13snapshot_name___get__(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_13snapshot_name___get__(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSSnapshot.snapshot_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2531: return self.name.partition('@')[-1]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_partition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s__59); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(1, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__60); __Pyx_GIVEREF(__pyx_tuple__60);
2532:
2533: property parent:
+2534: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_6parent_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_6parent___get__(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_6parent___get__(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSSnapshot.parent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2535: return self.root.get_dataset(self.name.partition('@')[0])
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_get_dataset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_partition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s__59); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 2535, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61);
2536:
2537: property holds:
+2538: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_5holds_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSSnapshot_5holds_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSSnapshot_5holds___get__(((struct __pyx_obj_6libzfs_ZFSSnapshot *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSSnapshot_5holds___get__(struct __pyx_obj_6libzfs_ZFSSnapshot *__pyx_v_self) { nvlist_t *__pyx_v_ptr; struct __pyx_obj_6libzfs_NVList *__pyx_v_nvl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.ZFSSnapshot.holds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_nvl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
2539: cdef nvpair.nvlist_t* ptr
2540: cdef NVList nvl
2541:
+2542: if libzfs.zfs_get_holds(self.handle, &ptr) != 0:
__pyx_t_1 = ((zfs_get_holds(__pyx_v_self->__pyx_base.handle, (&__pyx_v_ptr)) != 0) != 0); if (__pyx_t_1) { /* … */ }
+2543: raise self.root.get_error()
__pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_ZFS *)__pyx_v_self->__pyx_base.root->__pyx_vtab)->get_error(__pyx_v_self->__pyx_base.root); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 2543, __pyx_L1_error)
2544:
+2545: nvl = NVList(<uintptr_t>ptr)
__pyx_t_2 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_ptr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_nvl = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_2); __pyx_t_2 = 0;
+2546: return dict(nvl)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_nvl)); __Pyx_GIVEREF(((PyObject *)__pyx_v_nvl)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_nvl)); __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
2547:
2548:
+2549: cdef class ZFSBookmark(ZFSObject):
struct __pyx_obj_6libzfs_ZFSBookmark { struct __pyx_obj_6libzfs_ZFSObject __pyx_base; };
+2550: def __getstate__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_1__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSBookmark___getstate__(((struct __pyx_obj_6libzfs_ZFSBookmark *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSBookmark___getstate__(struct __pyx_obj_6libzfs_ZFSBookmark *__pyx_v_self) { PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getstate__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSBookmark.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2551: ret = super(ZFSBookmark, self).__getstate__()
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_ptype_6libzfs_ZFSBookmark)); __Pyx_GIVEREF(((PyObject *)__pyx_ptype_6libzfs_ZFSBookmark)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_6libzfs_ZFSBookmark)); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self)); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2551, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2551, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0;
+2552: ret.update({
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ret, __pyx_n_s_update); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+2553: 'dataset': self.parent.name,
__pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_parent); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dataset, __pyx_t_5) < 0) __PYX_ERR(1, 2553, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2554: 'bookmark_name': self.bookmark_name
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_bookmark_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_bookmark_name, __pyx_t_5) < 0) __PYX_ERR(1, 2553, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_5) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2552, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2555: })
+2556: return ret
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0;
2557:
2558: property parent:
+2559: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_6parent_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSBookmark_6parent___get__(((struct __pyx_obj_6libzfs_ZFSBookmark *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSBookmark_6parent___get__(struct __pyx_obj_6libzfs_ZFSBookmark *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.ZFSBookmark.parent.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2560: return self.root.get_dataset(self.name.partition('#')[0])
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.root), __pyx_n_s_get_dataset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_partition); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } if (!__pyx_t_3) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_s__62); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(1, 2560, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__63); __Pyx_GIVEREF(__pyx_tuple__63);
2561:
2562: property bookmark_name:
+2563: def __get__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_13bookmark_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_11ZFSBookmark_13bookmark_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_11ZFSBookmark_13bookmark_name___get__(((struct __pyx_obj_6libzfs_ZFSBookmark *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_11ZFSBookmark_13bookmark_name___get__(struct __pyx_obj_6libzfs_ZFSBookmark *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.ZFSBookmark.bookmark_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2564: return self.name.partition('#')[-1]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_partition); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s__62); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(1, 2564, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__64); __Pyx_GIVEREF(__pyx_tuple__64);
2565:
2566:
+2567: cdef convert_sendflags(flags, libzfs.sendflags_t *cflags):
static PyObject *__pyx_f_6libzfs_convert_sendflags(PyObject *__pyx_v_flags, sendflags_t *__pyx_v_cflags) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("convert_sendflags", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("libzfs.convert_sendflags", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+2568: if not isinstance(flags, set):
__pyx_t_1 = PySet_Check(__pyx_v_flags);
__pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
if (__pyx_t_2) {
/* … */
}
+2569: raise ValueError('flags must be passed as a set')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2569, __pyx_L1_error) /* … */ __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_flags_must_be_passed_as_a_set); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(1, 2569, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__65); __Pyx_GIVEREF(__pyx_tuple__65);
2570:
+2571: if SendFlag.VERBOSE in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_VERBOSE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2571, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2572: cflags.verbose = 1
__pyx_v_cflags->verbose = 1;
2573:
+2574: if SendFlag.REPLICATE in flags:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_REPLICATE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_3, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+2575: cflags.replicate = 1
__pyx_v_cflags->replicate = 1;
2576:
+2577: if SendFlag.DOALL in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DOALL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2578: cflags.doall = 1
__pyx_v_cflags->doall = 1;
2579:
+2580: if SendFlag.FROMORIGIN in flags:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_FROMORIGIN); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_3, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2580, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+2581: cflags.fromorigin = 1
__pyx_v_cflags->fromorigin = 1;
2582:
+2583: if SendFlag.DEDUP in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DEDUP); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2583, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2584: cflags.dedup = 1
__pyx_v_cflags->dedup = 1;
2585:
+2586: if SendFlag.PROPS in flags:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_PROPS); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_3, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2586, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+2587: cflags.props = 1
__pyx_v_cflags->props = 1;
2588:
+2589: if SendFlag.DRYRUN in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DRYRUN); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2589, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2590: cflags.dryrun = 1
__pyx_v_cflags->dryrun = 1;
2591:
+2592: if SendFlag.PARSABLE in flags:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_PARSABLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_3, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2592, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+2593: cflags.parsable = 1
__pyx_v_cflags->parsable = 1;
2594:
+2595: if SendFlag.PROGRESS in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_PROGRESS); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2596: cflags.progress = 1
__pyx_v_cflags->progress = 1;
2597:
+2598: if SendFlag.LARGEBLOCK in flags:
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_LARGEBLOCK); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_3, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 2598, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+2599: cflags.largeblock = 1
__pyx_v_cflags->largeblock = 1;
2600:
+2601: if SendFlag.EMBED_DATA in flags:
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_SendFlag); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_EMBED_DATA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_4, __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2601, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+2602: cflags.embed_data = 1
__pyx_v_cflags->embed_data = 1;
2603:
2604:
+2605: def nicestrtonum(ZFS zfs, value):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_9nicestrtonum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_9nicestrtonum = {"nicestrtonum", (PyCFunction)__pyx_pw_6libzfs_9nicestrtonum, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_6libzfs_9nicestrtonum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_6libzfs_ZFS *__pyx_v_zfs = 0; PyObject *__pyx_v_value = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("nicestrtonum (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_zfs,&__pyx_n_s_value,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_zfs)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("nicestrtonum", 1, 2, 2, 1); __PYX_ERR(1, 2605, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nicestrtonum") < 0)) __PYX_ERR(1, 2605, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_zfs = ((struct __pyx_obj_6libzfs_ZFS *)values[0]); __pyx_v_value = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("nicestrtonum", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2605, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.nicestrtonum", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_zfs), __pyx_ptype_6libzfs_ZFS, 1, "zfs", 0))) __PYX_ERR(1, 2605, __pyx_L1_error) __pyx_r = __pyx_pf_6libzfs_8nicestrtonum(__pyx_self, __pyx_v_zfs, __pyx_v_value); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_8nicestrtonum(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_6libzfs_ZFS *__pyx_v_zfs, PyObject *__pyx_v_value) { uint64_t __pyx_v_result; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("nicestrtonum", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.nicestrtonum", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__92 = PyTuple_Pack(3, __pyx_n_s_zfs, __pyx_n_s_value, __pyx_n_s_result); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__92); __Pyx_GIVEREF(__pyx_tuple__92); /* … */ __pyx_t_4 = PyCFunction_NewEx(&__pyx_mdef_6libzfs_9nicestrtonum, NULL, __pyx_n_s_libzfs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_nicestrtonum, __pyx_t_4) < 0) __PYX_ERR(1, 2605, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_nicestrtonum, 2605, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(1, 2605, __pyx_L1_error)
2606: cdef uint64_t result
2607:
+2608: if libzfs.zfs_nicestrtonum(zfs.handle, value, &result) != 0:
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(1, 2608, __pyx_L1_error) __pyx_t_2 = ((zfs_nicestrtonum(__pyx_v_zfs->handle, __pyx_t_1, (&__pyx_v_result)) != 0) != 0); if (__pyx_t_2) { /* … */ }
+2609: raise ValueError('Cannot convert {0} to integer'.format(value))
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Cannot_convert_0_to_integer, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_5) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_value); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2609, __pyx_L1_error)
2610:
+2611: return result
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
2612:
2613:
+2614: def vdev_label_offset(psize, l, offset):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_11vdev_label_offset(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_11vdev_label_offset = {"vdev_label_offset", (PyCFunction)__pyx_pw_6libzfs_11vdev_label_offset, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_6libzfs_11vdev_label_offset(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_psize = 0; PyObject *__pyx_v_l = 0; PyObject *__pyx_v_offset = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("vdev_label_offset (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_psize,&__pyx_n_s_l,&__pyx_n_s_offset,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_psize)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_l)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("vdev_label_offset", 1, 3, 3, 1); __PYX_ERR(1, 2614, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("vdev_label_offset", 1, 3, 3, 2); __PYX_ERR(1, 2614, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "vdev_label_offset") < 0)) __PYX_ERR(1, 2614, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_psize = values[0]; __pyx_v_l = values[1]; __pyx_v_offset = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("vdev_label_offset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2614, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.vdev_label_offset", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_10vdev_label_offset(__pyx_self, __pyx_v_psize, __pyx_v_l, __pyx_v_offset); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_10vdev_label_offset(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_psize, PyObject *__pyx_v_l, PyObject *__pyx_v_offset) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("vdev_label_offset", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.vdev_label_offset", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__94 = PyTuple_Pack(3, __pyx_n_s_psize, __pyx_n_s_l, __pyx_n_s_offset); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(1, 2614, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__94); __Pyx_GIVEREF(__pyx_tuple__94); /* … */ __pyx_t_4 = PyCFunction_NewEx(&__pyx_mdef_6libzfs_11vdev_label_offset, NULL, __pyx_n_s_libzfs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_vdev_label_offset, __pyx_t_4) < 0) __PYX_ERR(1, 2614, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_vdev_label_offset, 2614, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(1, 2614, __pyx_L1_error)
+2615: return offset + l * sizeof(zfs.vdev_label_t) + 0 \
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_3 = __Pyx_PyInt_FromSize_t((sizeof(vdev_label_t))); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyNumber_Multiply(__pyx_v_l, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_v_offset, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; } else {
+2616: if l < zfs.VDEV_LABELS / 2 \
__pyx_t_2 = __Pyx_PyInt_From_long(__Pyx_div_long(VDEV_LABELS, 2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_RichCompare(__pyx_v_l, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2616, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2616, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) {
+2617: else psize - zfs.VDEV_LABELS * sizeof(zfs.vdev_label_t)
__pyx_t_2 = __Pyx_PyInt_FromSize_t((VDEV_LABELS * (sizeof(vdev_label_t)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Subtract(__pyx_v_psize, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
2618:
2619:
+2620: def read_label(device):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_13read_label(PyObject *__pyx_self, PyObject *__pyx_v_device); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_13read_label = {"read_label", (PyCFunction)__pyx_pw_6libzfs_13read_label, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_13read_label(PyObject *__pyx_self, PyObject *__pyx_v_device) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_label (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_12read_label(__pyx_self, ((PyObject *)__pyx_v_device)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_12read_label(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_device) { nvlist_t *__pyx_v_handle; struct __pyx_obj_6libzfs_NVList *__pyx_v_nvlist = 0; int __pyx_v_ret; PyObject *__pyx_v_fd = NULL; PyObject *__pyx_v_st = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_label", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.read_label", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_nvlist); __Pyx_XDECREF(__pyx_v_fd); __Pyx_XDECREF(__pyx_v_st); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__96 = PyTuple_Pack(8, __pyx_n_s_device, __pyx_n_s_handle, __pyx_n_s_nvlist, __pyx_n_s_buf, __pyx_n_s_read, __pyx_n_s_ret, __pyx_n_s_fd, __pyx_n_s_st); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(1, 2620, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__96); __Pyx_GIVEREF(__pyx_tuple__96); /* … */ __pyx_t_4 = PyCFunction_NewEx(&__pyx_mdef_6libzfs_13read_label, NULL, __pyx_n_s_libzfs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_read_label, __pyx_t_4) < 0) __PYX_ERR(1, 2620, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_usr_nas_source_py_libzfs_libzfs, __pyx_n_s_read_label, 2620, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(1, 2620, __pyx_L1_error)
2621: cdef nvpair.nvlist_t *handle
2622: cdef NVList nvlist
2623: cdef char *buf
2624: cdef char *read
2625: cdef int ret
2626:
+2627: fd = os.open(device, os.O_RDONLY)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_open); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_O_RDONLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_device); __Pyx_GIVEREF(__pyx_v_device); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_device); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_fd = __pyx_t_1; __pyx_t_1 = 0;
+2628: if fd < 0:
__pyx_t_1 = PyObject_RichCompare(__pyx_v_fd, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2628, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 2628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { /* … */ }
+2629: raise OSError(errno, os.strerror(errno))
__pyx_t_1 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_strerror); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_2) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2629, __pyx_L1_error)
2630:
+2631: st = os.fstat(fd)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fstat); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_4) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_fd); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_fd); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_st = __pyx_t_3; __pyx_t_3 = 0;
+2632: if not stat.S_ISCHR(st.st_mode):
__pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_stat); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S_ISCHR); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_st, __pyx_n_s_st_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } if (!__pyx_t_4) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(1, 2632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = ((!__pyx_t_7) != 0); if (__pyx_t_9) { /* … */ }
+2633: os.close(fd)
__pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_close); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } if (!__pyx_t_8) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_fd); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = NULL; __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_v_fd); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2634: raise OSError(errno.EINVAL, 'Not a character device')
__pyx_t_3 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_EINVAL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __Pyx_INCREF(__pyx_kp_s_Not_a_character_device); __Pyx_GIVEREF(__pyx_kp_s_Not_a_character_device); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_kp_s_Not_a_character_device); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(1, 2634, __pyx_L1_error)
2635:
+2636: ret = libzfs.zpool_read_label(fd, &handle)
__pyx_t_10 = __Pyx_PyInt_As_int(__pyx_v_fd); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2636, __pyx_L1_error) __pyx_v_ret = zpool_read_label(__pyx_t_10, (&__pyx_v_handle));
+2637: if ret != 0:
__pyx_t_9 = ((__pyx_v_ret != 0) != 0); if (__pyx_t_9) { /* … */ }
+2638: os.close(fd)
__pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_fd); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } else { __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __pyx_t_3 = NULL; __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_v_fd); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+2639: raise OSError(errno.EINVAL, 'Cannot read label')
__pyx_t_6 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_EINVAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_INCREF(__pyx_kp_s_Cannot_read_label); __Pyx_GIVEREF(__pyx_kp_s_Cannot_read_label); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s_Cannot_read_label); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2639, __pyx_L1_error)
2640:
+2641: os.close(fd)
__pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_close); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } if (!__pyx_t_6) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_fd); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL; __Pyx_INCREF(__pyx_v_fd); __Pyx_GIVEREF(__pyx_v_fd); PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_fd); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2642: nvlist = NVList(<uintptr_t>handle)
__pyx_t_1 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_handle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_nvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_1); __pyx_t_1 = 0;
+2643: return dict(nvlist)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_nvlist)); __Pyx_GIVEREF(((PyObject *)__pyx_v_nvlist)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_nvlist)); __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 2643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0;
2644:
2645:
+2646: def clear_label(device):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_15clear_label(PyObject *__pyx_self, PyObject *__pyx_v_device); /*proto*/ static PyMethodDef __pyx_mdef_6libzfs_15clear_label = {"clear_label", (PyCFunction)__pyx_pw_6libzfs_15clear_label, METH_O, 0}; static PyObject *__pyx_pw_6libzfs_15clear_label(PyObject *__pyx_self, PyObject *__pyx_v_device) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clear_label (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_14clear_label(__pyx_self, ((PyObject *)__pyx_v_device)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_14clear_label(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_device) { int __pyx_v_fd; int __pyx_v_err; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("clear_label", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("libzfs.clear_label", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__98 = PyTuple_Pack(3, __pyx_n_s_device, __pyx_n_s_fd, __pyx_n_s_err); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(1, 2646, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__98); __Pyx_GIVEREF(__pyx_tuple__98); /* … */ __pyx_t_4 = PyCFunction_NewEx(&__pyx_mdef_6libzfs_15clear_label, NULL, __pyx_n_s_libzfs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_clear_label, __pyx_t_4) < 0) __PYX_ERR(1, 2646, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2647: cdef int fd
2648: cdef int err
2649:
+2650: fd = os.open(device, os.O_WRONLY)
__pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_open); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_O_WRONLY); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_device); __Pyx_GIVEREF(__pyx_v_device); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_device); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 2650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_fd = __pyx_t_7;
+2651: if fd < 0:
__pyx_t_8 = ((__pyx_v_fd < 0) != 0); if (__pyx_t_8) { /* … */ }
+2652: raise OSError(errno, os.strerror(errno))
__pyx_t_1 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_strerror); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_2) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 2652, __pyx_L1_error)
2653:
+2654: with nogil:
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS #endif /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } }
+2655: err = libzfs.zpool_clear_label(fd)
__pyx_v_err = zpool_clear_label(__pyx_v_fd); }
2656:
+2657: if err != 0:
__pyx_t_8 = ((__pyx_v_err != 0) != 0); if (__pyx_t_8) { /* … */ }
+2658: os.close(fd)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_fd); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } if (!__pyx_t_9) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2659: raise OSError(errno, os.strerror(errno))
__pyx_t_3 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_strerror); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_9) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_2 = PyTuple_New(1+1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __pyx_t_9 = NULL; __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0+1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2659, __pyx_L1_error)
2660:
+2661: os.close(fd)
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_fd); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;