diff options
author | MrRJ45 <couton@gmail.com> | 2015-03-30 09:09:07 +0100 |
---|---|---|
committer | MrRJ45 <couton@gmail.com> | 2015-03-30 09:09:07 +0100 |
commit | 82dc9fad5d59fa2bc9533a62af35f0985dabadec (patch) | |
tree | 8ea63b17fd7f624ce264e69f8649d2aa1050afba | |
parent | 1a33c9671c52345e8d09f2284a07fc2b454c91a0 (diff) |
PowerConnect Model not skipping some details
Some PowerConnect models were skipping fine as "Uptime" for example is shown across one line. Some models show this as a heading, and then lines for each stack member and so this was being included in the configuration. This will skip that "section" which is terminated by the next blank line.
-rw-r--r-- | lib/oxidized/model/powerconnect.rb | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/oxidized/model/powerconnect.rb b/lib/oxidized/model/powerconnect.rb index 429f1c8..17674f1 100644 --- a/lib/oxidized/model/powerconnect.rb +++ b/lib/oxidized/model/powerconnect.rb @@ -19,9 +19,8 @@ class PowerConnect < Oxidized::Model end cmd 'show system' do |cfg| - cfg = cfg.split("\n").select { |line| not line[/Up\sTime/] } - cfg = cfg[0..-28]<<" " - comment cfg.join("\n") + @model = $1 if cfg.match /Power[C|c]onnect (\d{4}[A-Z]?)/ + clean cfg end cmd 'show running-config' @@ -46,4 +45,24 @@ class PowerConnect < Oxidized::Model end + def clean cfg + out = [] + skip_block = false + cfg.each_line do |line| + if line.match /Up\sTime|Temperature|Power Supplies/i + # For 34xx, 54xx, 55xx, and 8024F we should skip this block (terminated by a blank line) + skip_block = true if @model =~ /^34(24|48)$|^54(24|48)$|^55(24|48)$|^8024F$/ + end + # If we have lines to skip do this until we reach and empty line + if skip_block + skip_block = false if /\S/ !~ line + next + end + out << line.strip + end + out = comment out.join "\n" + out << "\n" + end + + end |