zfs_mgmt 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- 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