zfs_mgmt 0.3.3 → 0.3.4

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: 2d748c3781993440f81add0c6f609501457dfee0f66c39bd1ca6013534312608
4
- data.tar.gz: 71349e6012f6ece929a66d0df3626c9adabff11cd520f10120639d7fb72a5380
3
+ metadata.gz: cf232dcb9239cd6f1858e5f26430227bf19c8c33a8b537708fa9cfe1ac7fcde4
4
+ data.tar.gz: beaf85ba9e0fcadd8dd03962989592b1d33415cbafadfbf0b3c654f243fc7c0e
5
5
  SHA512:
6
- metadata.gz: e6de5cb8f68d59a336a4a295afa297a836007a457e944cd8bb80ade1aba8b9869144b7eddd71eeb9b536d85685050bd77c92cb5721ce2b49beffe9faf8ff6914
7
- data.tar.gz: '02569c3d29effdc5be76672513ef6c2e338416b59dd7496025bd75a3f8fe751f57bfb27db56b136dd35879889cf9708000f760adaed61d9587f869b83c7e10cb'
6
+ metadata.gz: 831fb028c42c67942afbac8b35ec6b908ab10c0c9acb3183b19facd32e009ea512629c86af2ad3bc7f8dff9a2c31cf90e4e0317a4c1e32f72a297da3fc826b19
7
+ data.tar.gz: 7a3d8b9c734302d828298b6507d31f1539cc34739f41ff0fc8adddd1c3842a78dbd62b8ba5876ab0893ffb5f8295e187ba1e4232f6aaadfd211fffb0d00f0d0e
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /vendor/
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zfs_mgmt (0.3.1)
4
+ zfs_mgmt (0.3.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/bin/zfsmgr CHANGED
@@ -35,6 +35,8 @@ class ZfsMgr < Thor
35
35
  end
36
36
  desc "snapshot SUBCOMMAND ...ARGS", "manage snapshots"
37
37
  subcommand "snapshot", Snapshot
38
+ desc "list SUBCOMMAND ...ARGS", "list filesystems"
39
+ subcommand "list", ZfsMgrList
38
40
  end
39
41
 
40
42
  ZfsMgr.start(ARGV)
data/lib/zfs_mgmt.rb CHANGED
@@ -325,3 +325,26 @@ module ZfsMgmt
325
325
  end
326
326
  end
327
327
  end
328
+ class ZfsMgrList < Thor
329
+ class_option :filter, :type => :string, :default => '.+',
330
+ :desc => 'only act on zfs matching this regexp'
331
+ desc "stale", "list all zfs with stale snapshots"
332
+ method_option :age, :desc => "timeframe outside of which the zfs will be considered stale", :default => '1d'
333
+ def stale()
334
+ cutoff = Time.at(Time.now.to_i - ZfsMgmt.timespec_to_seconds(options[:age]))
335
+ table = Text::Table.new
336
+ table.head = ['zfs','snapshot','age']
337
+ table.rows = []
338
+ ZfsMgmt.zfs_managed_list(filter: options[:filter]).each do |blob|
339
+ zfs,props,snaps = blob
340
+ last = snaps.keys.sort { |a,b| snaps[a]['creation'] <=> snaps[b]['creation'] }.last
341
+ snap_time = Time.at(snaps[last]['creation'])
342
+ if snap_time < cutoff
343
+ table.rows << [zfs,last,snap_time]
344
+ end
345
+ end
346
+ if table.rows.count > 0
347
+ print table.to_s
348
+ end
349
+ end
350
+ end
@@ -1,3 +1,3 @@
1
1
  module ZfsMgmt
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zfs_mgmt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aran Cox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-27 00:00:00.000000000 Z
11
+ date: 2021-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler