zfs_mgmt 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/zfs_mgmt.rb +52 -22
- data/lib/zfs_mgmt/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0e8d3af1ac03924544fff40f3978ba979b8b4b2adfa968971de7f9c571e503d
|
4
|
+
data.tar.gz: e555e236db39683a9b8fd3c7d12bcb5b9c7800aee285898670acef966f7bd321
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b6f60006226fe6664c3d9ec3364900354d4fbca988615956f6df27f8d76901428845ed122180cb647dd7c391ca6a518516e1734875f6968e57c0c78f2e0ad60
|
7
|
+
data.tar.gz: fa4cd0c9018def638b438fc27ddf855651e61c62d739c5f0c34eb880098bc3558e895826b7de0392d0c10f342d938fc20b524bea67fbcc2ce84b20411b6d4189
|
data/lib/zfs_mgmt.rb
CHANGED
@@ -250,6 +250,40 @@ module ZfsMgmt
|
|
250
250
|
(saved,saved_snaps,deleteme) = snapshot_destroy_policy(zfs,props,snaps)
|
251
251
|
|
252
252
|
$logger.info("deleting #{deleteme.length} snapshots for #{zfs}")
|
253
|
+
deleteme.reverse! # oldest first for removal
|
254
|
+
|
255
|
+
# holdme = deleteme
|
256
|
+
# holds = []
|
257
|
+
# while holdme.length > 0
|
258
|
+
# for i in 0..(holdme.length - 1) do
|
259
|
+
# max = holdme.length - 1 - i
|
260
|
+
# bigarg = holdme[0..max].join(" ") # snaps joined by
|
261
|
+
# com = "zfs holds -H #{bigarg}"
|
262
|
+
# $logger.debug("size of bigarg: #{bigarg.length} size of com: #{com.length}")
|
263
|
+
# if bigarg.length >= 131072 or com.length >= (2097152-10000)
|
264
|
+
# next
|
265
|
+
# end
|
266
|
+
# $logger.info(com)
|
267
|
+
# so,se,status = Open3.capture3(com)
|
268
|
+
# if status.signaled?
|
269
|
+
# $logger.error("process was signalled \"#{com}\", termsig #{status.termsig}")
|
270
|
+
# raise 'ZfsHoldsError'
|
271
|
+
# end
|
272
|
+
# unless status.success?
|
273
|
+
# $logger.error("failed to execute \"#{com}\", exit status #{status.exitstatus}")
|
274
|
+
# so.split("\n").each { |l| $logger.debug("stdout: #{l}") }
|
275
|
+
# se.split("\n").each { |l| $logger.error("stderr: #{l}") }
|
276
|
+
# raise 'ZfsHoldsError'
|
277
|
+
# end
|
278
|
+
# so.split("\n").each do |line|
|
279
|
+
# holds.append(line.split("\t")[0])
|
280
|
+
# end
|
281
|
+
# holdme = holdme - holdme[0..max]
|
282
|
+
# break
|
283
|
+
# end
|
284
|
+
# end
|
285
|
+
# $logger.debug("found #{holds.length} snapshots with holds: #{holds.join(',')}")
|
286
|
+
# deleteme = deleteme - holds
|
253
287
|
com_base = "zfs destroy -p"
|
254
288
|
if deleteme.length > 0
|
255
289
|
com_base = "#{com_base}d"
|
@@ -260,29 +294,25 @@ module ZfsMgmt
|
|
260
294
|
if verbopt
|
261
295
|
com_base = "#{com_base}v"
|
262
296
|
end
|
263
|
-
deleteme.
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
297
|
+
while deleteme.length > 0
|
298
|
+
for i in 0..(deleteme.length - 1) do
|
299
|
+
max = deleteme.length - 1 - i
|
300
|
+
$logger.debug("attempting to remove snaps 0 through #{max} out of #{deleteme.length} snapshots")
|
301
|
+
bigarg = "#{zfs}@#{deleteme[0..max].map { |s| s.split('@')[1] }.join(',')}"
|
302
|
+
com = "#{com_base} #{bigarg}"
|
303
|
+
$logger.debug("size of bigarg: #{bigarg.length} size of com: #{com.length}")
|
304
|
+
if bigarg.length >= 131072 or com.length >= (2097152-10000)
|
305
|
+
next
|
306
|
+
end
|
307
|
+
$logger.info(com)
|
308
|
+
deleteme = deleteme - deleteme[0..max]
|
309
|
+
system(com)
|
310
|
+
if $?.exitstatus != 0
|
311
|
+
$logger.error("zfs exited with non-zero status: #{$?.exitstatus}")
|
312
|
+
end
|
313
|
+
break
|
314
|
+
end
|
269
315
|
end
|
270
|
-
# while deleteme.length > 0
|
271
|
-
# for i in 0..(deleteme.length - 1) do
|
272
|
-
# max = deleteme.length - 1 - i
|
273
|
-
# $logger.debug("attempting to remove snaps 0 through #{max} out of #{deleteme.length} snapshots")
|
274
|
-
# bigarg = "#{zfs}@#{deleteme[0..max].map { |s| s.split('@')[1] }.join(',')}"
|
275
|
-
# com = "#{com_base} #{bigarg}"
|
276
|
-
# $logger.debug("size of bigarg: #{bigarg.length} size of com: #{com.length}")
|
277
|
-
# if bigarg.length >= 131072 or com.length >= (2097152-10000)
|
278
|
-
# next
|
279
|
-
# end
|
280
|
-
# $logger.info(com)
|
281
|
-
# deleteme = deleteme - deleteme[0..max]
|
282
|
-
# system(com)
|
283
|
-
# break
|
284
|
-
# end
|
285
|
-
# end
|
286
316
|
end
|
287
317
|
end
|
288
318
|
# parse a policy string into a hash of integers
|
data/lib/zfs_mgmt/version.rb
CHANGED