Class: PowerConnect
- Inherits:
-
Oxidized::Model
- Object
- Oxidized::Model
- PowerConnect
- Defined in:
- lib/oxidized/model/powerconnect.rb
Instance Attribute Summary
Attributes inherited from Oxidized::Model
Instance Method Summary collapse
Methods inherited from Oxidized::Model
cfg, #cfg, cfgs, cmd, #cmd, cmds, comment, #comment, expect, #expect, expects, #expects, #get, inherited, #output, post, pre, prompt, #prompt, #screenscrape, #send, #xmlcomment
Methods included from Oxidized::Config::Vars
Instance Method Details
#clean(cfg) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/oxidized/model/powerconnect.rb', line 66 def clean(cfg) out = [] len1 = len2 = skip_blocks = 0 cfg.each_line do |line| # If this is a stackable switch we should skip this block of information if line.match(/Up\sTime|Temperature|Power Suppl(ies|y)|Fans/i) && (@stackable == true) skip_blocks = 1 # Some switches have another empty line. This is identified by this line having a colon skip_blocks = 2 if line =~ /:/ end # If we have lines to skip do this until we reach and empty line if skip_blocks.positive? skip_blocks -= 1 if /\S/ !~ line next end line = line.strip # If the temps were not removed by skipping blocks, then mask them out wih XXX # The most recent set of dashes has the spacing we want to match if (match = line.match(/^(---+ +)(---+ +)/)) one, two = match.captures len1 = one.length len2 = two.length end # This can only be a temperature, right? ;-) if (match = line.match(/^(\d{1,2}) {3,}\d+ (.*)$/)) one, two = match.captures line = one.to_s + (' ' * (len1 - one.length)) + "XXX" + (' ' * (len2 - 3)) + two.to_s end out << line end out = out.reject { |line| line[/Up\sTime/] } # Filter out Up Time out = comment out.join "\n" out << "\n" end |