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 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