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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e363218ad13dc15bae4ca2805c675482954cbd3724581998a2f9513de0f9e2a
4
- data.tar.gz: 9f836dfb859155b57b6abfafcb9271a166841162ff46736cfab2e58c054354e9
3
+ metadata.gz: b0e8d3af1ac03924544fff40f3978ba979b8b4b2adfa968971de7f9c571e503d
4
+ data.tar.gz: e555e236db39683a9b8fd3c7d12bcb5b9c7800aee285898670acef966f7bd321
5
5
  SHA512:
6
- metadata.gz: 16218b552ae7d799207d8756dad08f2d013b438a8814f8850f15f8171c2bd9eeeb1b3c52c4a1d2b4d73b82d0f48cb0b217969ddfef91b0d20f331a1d6414cea1
7
- data.tar.gz: 23c3b898ec59b05c06b1833faac058fa670d34217e6a43b973aaa20d69891e26c662d67a1658e17e3e67b3d5132f5dc959da5c4b3b158e31fa62990da23be4bc
6
+ metadata.gz: 9b6f60006226fe6664c3d9ec3364900354d4fbca988615956f6df27f8d76901428845ed122180cb647dd7c391ca6a518516e1734875f6968e57c0c78f2e0ad60
7
+ data.tar.gz: fa4cd0c9018def638b438fc27ddf855651e61c62d739c5f0c34eb880098bc3558e895826b7de0392d0c10f342d938fc20b524bea67fbcc2ce84b20411b6d4189
@@ -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.reverse! # oldest first for removal
264
- deleteme.each do |snap_name|
265
- $logger.debug("delete: #{snap_name} #{local_epoch_to_datetime(snaps[snap_name]['creation']).strftime('%F %T')}")
266
- com = "#{com_base} #{snap_name}"
267
- $logger.info(com)
268
- system(com)
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
@@ -1,3 +1,3 @@
1
1
  module ZfsMgmt
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zfs_mgmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aran Cox