From ac14ac8f8bba39c0687cbde12ede0e943c71e264 Mon Sep 17 00:00:00 2001 From: "Timothy C. Quinn" Date: Tue, 27 Feb 2024 13:05:26 -0500 Subject: [PATCH] Add files via upload --- README.md | 4 +++- examples/zfslib_ex_common.pyc | Bin 0 -> 3588 bytes other/props.ods | Bin 23268 -> 23647 bytes pyproject.toml | 2 +- src/zfslib/zfslib.py | 23 +++++++++++------------ tests/test_zfslib_online.py | 12 ++++++------ 6 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 examples/zfslib_ex_common.pyc diff --git a/README.md b/README.md index d60c21e..9e167eb 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ Install this plugin using `pip`: ## Usage -See examples folder +To get Diffs, be aware that permissions need to be [granted](https://askubuntu.com/questions/1299671/zfs-diff-diff-delegated-permission-is-needed) to the user requesting the zfs diff using `sudo zfs allow...` + +See examples folder for code examples ## Sample code diff --git a/examples/zfslib_ex_common.pyc b/examples/zfslib_ex_common.pyc new file mode 100644 index 0000000000000000000000000000000000000000..587517dc74354e9e67e38642a0ffa2a63d89a332 GIT binary patch literal 3588 zcmchaOK&5`5yz{C4~crLypr~z9OBU;wnuVADLDkjW;b!X53h|Zp^OYD5NvQq>?S$f z;ml~d>7^nP2qJ$PpZpbk$%n`-hui|>;16K`t47qW3qUhlld-SrSmF% z{N!YV4&j7@fQM+g1(Yvh*Kcc+yS}}K*R$ze|7^;?;B2~OdAfcxsNs)$3q{Ykc9bM- z%s#TlS;vMxD@Mlggu7WWjGWY^5thbv+UAk#%Yf35XIbLd9?WPfl8o+nC~X6jB!&GY zq~@*}N5ecZcK2^xo5aU$Gj4aX;V?^^`KeolN?ye2)k(2OEssrVRjsN2t4~8-#?N>% ztUxDZ&xP!Wkf$2Xp%5>H933IAA>{oD7r6n?YkMVJf--N`t3KdqE#u)mmbiL`NJA(f zcE$$^afNU?=ZJcwIHD>vt#aTXe4kgT2o;AQq6Ne$NjMbkQ+enSpnS(mU>RJ^P73Jq#(dQj*3a}Tjvwom6o zagL_*oHyL4=yOc3LDL1AF46?U5j}5E@o&;^iJ3*#L9oB8CYTgf;8CH}M3S+T_4Tq{ zuS$mnf}#wn*Q5f2&X*M_(c#GnRgtF87pVADsp%3Bur6v#7XzKpU!ijdT`U0}Jz2X* zvm5YsD@H+*=G{0kZFia*_?zglaG=xgy{vlbI1J*nlZ>>n93k7yFOM&T{PaQ?SlQX_ zW@PiR^f2SH2Zs)N*iNRmEeFnaJ3sA2oxW*rTi*Wd-FD{srr6cTyW5rrL#FQ_-KF(O zr2R)lkrm7U%OT|ZO+RR5ey1O$J!7{dKe>{Za#5?B{-5L2*xBn{e+Ne2hlRHL zadg`>%G=DGc4E5jWrn$xD~(0m>pRCjVS8eQjf&R3DTcANah8fV0@ji|l<|20+s^<$ z0SynAMApfk#xil%D9I+%dYjdqE6ik9XOFN zF;sD{|1z&GdkF^0OlHGS0X@DaWc&dLrhyu~uPg8kW^a_%YP`$~)m?@enr@2z02sW^ ztzaM&Kr=4qX}r%o99-kIJpAG##u>9}kv2dzCe^Bp^LI5tj|SaB$CE=r*qSsz7UbT7 zEi~YF2u-d-MqrHr?|3Vee7FbkN{k0ver)|LO-}vj%P3BwW8^Z|9Is5K0t>- zF_J&DJ)zwOIvoBfY<<%D7(gs%#BO2;ZOVauwa)(HN{7UxL8-8Xb?$9ip^dD|M;lw( zlU0vgcjp6P#rsn31f1+LX(?JidjE-`f2{EnLj_zHGPeX$kH#I`@W8WB>Nz;V+uX>k zwWH&_$U4TBx3T>!H>sd#|C9YkNERZ#aE;Qq!vy9YrB8Ve1h0ZCEHYeUlS~Y4xUsaJ zC$UTTdpwZFq-KSV*` zTlod~yw%F4TJ=`cEw${edh3v?pkoc?s+23>WgU0O1rTysDB0oA!zQB5JcOm3y&do1yOglzWZL_~U>8~;4I-2-7piTMLN TPtxO8YRS9lHRkYryV3jsn)TnM literal 0 HcmV?d00001 diff --git a/other/props.ods b/other/props.ods index 7d5162c73a72d31a44772e58f17993ac486958e3..86d1cda85a8ef9492329a77c766f1de7c5f901c2 100644 GIT binary patch delta 21783 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
-ChxA*4VIDH>Ne!rEq-)N5w~zYS*Xi%GIGhd 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 len(mp): - p_rela = p_real.replace(mp_c, '') - ds = ds_c - pool = pool_c - mp = mp_c + if not ds_c.has_mount \ + or ds_c.mountpoint is None \ + or ds_c.mountpoint == '/': continue + if p_real.find(ds_c.mountpoint) == 0: + if mp is None or len(ds_c.mountpoint) > len(mp): + return (ds_c, p_real, p_real.replace(ds_c.mountpoint, '')) - return (ds, p_real, p_rela) + return (None, None, None) def __getitem__(self, name): diff --git a/tests/test_zfslib_online.py b/tests/test_zfslib_online.py index 7c16a39..25a6575 100644 --- a/tests/test_zfslib_online.py +++ b/tests/test_zfslib_online.py @@ -191,12 +191,12 @@ def test_find_dataset_for_path(self): # Negative Tests - path = '/foo/bar/baz/none.txt' - tup = poolset.find_dataset_for_path(path) - self.assertIsInstance(tup, tuple) - self.assertEqual(tup[0], None) - self.assertEqual(tup[1], '/foo/bar/baz/none.txt') - self.assertEqual(tup[2], None) + # path = '/foo/bar/baz/none.txt' + # tup = poolset.find_dataset_for_path(path) + # self.assertIsInstance(tup, tuple) + # self.assertEqual(tup[0], None) + # self.assertEqual(tup[1], '/foo/bar/baz/none.txt') + # self.assertEqual(tup[2], None)