module GreenHat::Disk
Sidekiq
Log Helpers
Public Class Methods
data()
click to toggle source
# File lib/greenhat/accessors/disk.rb, line 4 def self.data df.map(&:data).flatten.compact end
df(args = {})
click to toggle source
# File lib/greenhat/accessors/disk.rb, line 23 def self.df(args = {}) things = Thing.where(name: 'df_h') # Host / Archive things.select! { |x| x.archive? args.archive } if args.archive things end
format_output(file, name = false, limit = nil, filter = %w[tmpfs loop])
click to toggle source
Unified Output Handler rubocop:disable Metrics/MethodLength
# File lib/greenhat/accessors/disk.rb, line 34 def self.format_output(file, name = false, limit = nil, filter = %w[tmpfs loop]) output = [] output << file.friendly_name if name # Reject TMPFS disks = file.data.sort_by { |x| x.use.to_i }.reverse # Filter disks.reject! { |x| filter.any? { |y| x.filesystem.include? y } } disks = disks[0..limit - 1] if limit pad_mount, pad_size, pad_used, pad_avail = GreenHat::Disk.padding(disks) # Headers output << [ 'Mount'.ljust(pad_mount).pastel(:blue), 'Size'.ljust(pad_size).pastel(:magenta), 'Used'.ljust(pad_used).pastel(:cyan), 'Avail'.ljust(pad_avail).pastel(:white), '% Use'.ljust(pad_avail).pastel(:green) ].join # Table Summary disks.map do |disk| # Pretty Disk Use use = [ disk.use.rjust(5).ljust(5).pastel(:green), ' ['.pastel(:blue), ('=' * (disk.use.to_i / 2)).pastel(:green), ' ' * (50 - disk.use.to_i / 2), ']'.pastel(:blue) ].join # Whole Thing output << [ disk.mounted_on.ljust(pad_mount).pastel(:blue), disk[:size].to_s.ljust(pad_size).pastel(:magenta), disk.used.to_s.ljust(pad_used).pastel(:cyan), disk.avail.to_s.ljust(pad_avail).pastel(:white), use ].join end output end
max_padding(disks, key = :mounted_on)
click to toggle source
Get Max Size
# File lib/greenhat/accessors/disk.rb, line 9 def self.max_padding(disks, key = :mounted_on) list = disks.map do |x| x.slice(key) end list.map(&:values).flatten.max_by(&:size).size + 4 end
padding(disks, keys = %i[mounted_on size used avail])
click to toggle source
# File lib/greenhat/accessors/disk.rb, line 17 def self.padding(disks, keys = %i[mounted_on size used avail]) keys.map do |key| max_padding(disks, key) end end