lib/zfs_mgmt.rb in zfs_mgmt-0.3.4 vs lib/zfs_mgmt.rb in zfs_mgmt-0.3.5
- old
+ new
@@ -1,7 +1,8 @@
# coding: utf-8
require "zfs_mgmt/version"
+require "zfs_mgmt/restic"
require 'pp'
require 'date'
require 'logger'
require 'text-table'
require 'open3'
@@ -308,12 +309,19 @@
else
$logger.level = Logger::INFO
end
dt = DateTime.now
zfsget(properties: custom_properties()).each do |zfs,props|
+ unless /#{filter}/ =~ zfs
+ next
+ end
# zfs must have snapshot set to true or recursive
- if props.has_key?('zfsmgmt:snapshot') and props['zfsmgmt:snapshot'] == 'true' or ( props['zfsmgmt:snapshot'] == 'recursive' and props['zfsmgmt:snapshot@source'] == 'local' )
+ if props.has_key?('zfsmgmt:snapshot') and
+ props['zfsmgmt:snapshot'] == 'true' or
+ ( props['zfsmgmt:snapshot'] == 'recursive' and props['zfsmgmt:snapshot@source'] == 'local' ) or
+ ( props['zfsmgmt:snapshot'] == 'local' and props['zfsmgmt:snapshot@source'] == 'local' )
+
prefix = ( props.has_key?('zfsmgmt:snap_prefix') ? props['zfsmgmt:snap_prefix'] : 'zfsmgmt' )
ts = ( props.has_key?('zfsmgmt:snap_timestamp') ? props['zfsmgmt:snap_timestamp'] : '%FT%T%z' )
com = ['zfs','snapshot']
if props['zfsmgmt:snapshot'] == 'recursive' and props['zfsmgmt:snapshot@source'] == 'local'
com.push('-r')
@@ -323,11 +331,11 @@
system(com.join(' '))
end
end
end
end
-class ZfsMgrList < Thor
+class ZfsMgmtList < Thor
class_option :filter, :type => :string, :default => '.+',
:desc => 'only act on zfs matching this regexp'
desc "stale", "list all zfs with stale snapshots"
method_option :age, :desc => "timeframe outside of which the zfs will be considered stale", :default => '1d'
def stale()
@@ -338,10 +346,10 @@
ZfsMgmt.zfs_managed_list(filter: options[:filter]).each do |blob|
zfs,props,snaps = blob
last = snaps.keys.sort { |a,b| snaps[a]['creation'] <=> snaps[b]['creation'] }.last
snap_time = Time.at(snaps[last]['creation'])
if snap_time < cutoff
- table.rows << [zfs,last,snap_time]
+ table.rows << [zfs,last.split('@')[1],snap_time]
end
end
if table.rows.count > 0
print table.to_s
end