diff options
author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2011-02-27 19:41:40 +0000 |
---|---|---|
committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2011-02-27 19:41:40 +0000 |
commit | 10b9d77bf1ccf2f3affafa6261692cb92cf7e992 (patch) | |
tree | ef515cadc08bf427e4d3f1360199ec9827b1596b /cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py | |
parent | e02dd14a548a89bee6657d9eacb0f992bf61b280 (diff) | |
download | src-10b9d77bf1ccf2f3affafa6261692cb92cf7e992.tar.gz src-10b9d77bf1ccf2f3affafa6261692cb92cf7e992.zip |
Finally... Import the latest open-source ZFS version - (SPA) 28.
Few new things available from now on:
- Data deduplication.
- Triple parity RAIDZ (RAIDZ3).
- zfs diff.
- zpool split.
- Snapshot holds.
- zpool import -F. Allows to rewind corrupted pool to earlier
transaction group.
- Possibility to import pool in read-only mode.
MFC after: 1 month
Notes
Notes:
svn path=/head/; revision=219089
Diffstat (limited to 'cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py')
-rw-r--r-- | cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py b/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py index b45173e01f2e..26192e4075d2 100644 --- a/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py +++ b/cddl/contrib/opensolaris/lib/pyzfs/common/dataset.py @@ -1,4 +1,4 @@ -#! /usr/bin/python2.4 +#! /usr/bin/python2.6 # # CDDL HEADER START # @@ -19,8 +19,7 @@ # # CDDL HEADER END # -# Copyright 2009 Sun Microsystems, Inc. All rights reserved. -# Use is subject to license terms. +# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. # """Implements the Dataset class, providing methods for manipulating ZFS @@ -109,7 +108,7 @@ class Dataset(object): types is an iterable of strings specifying which types of datasets are permitted. Accepted strings are - "filesystem" and "volume". Defaults to acceptying all + "filesystem" and "volume". Defaults to accepting all types. snaps is a boolean specifying if snapshots are acceptable. @@ -203,3 +202,33 @@ class Dataset(object): Return a dict("whostr": { "perm" -> None }).""" return zfs.ioctl.get_fsacl(self.name) + + def get_holds(self): + """Get the user holds on this Dataset. + + Return a dict("tag": timestamp).""" + + return zfs.ioctl.get_holds(self.name) + +def snapshots_fromcmdline(dsnames, recursive): + for dsname in dsnames: + if not "@" in dsname: + raise zfs.util.ZFSError(errno.EINVAL, + _("cannot open %s") % dsname, + _("operation only applies to snapshots")) + try: + ds = Dataset(dsname) + yield ds + except zfs.util.ZFSError, e: + if not recursive or e.errno != errno.ENOENT: + raise + if recursive: + (base, snapname) = dsname.split('@') + parent = Dataset(base) + for child in parent.descendents(): + try: + yield Dataset(child.name + "@" + + snapname) + except zfs.util.ZFSError, e: + if e.errno != errno.ENOENT: + raise |