summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMrRJ45 <couton@gmail.com>2015-03-30 09:09:07 +0100
committerMrRJ45 <couton@gmail.com>2015-03-30 09:09:07 +0100
commit82dc9fad5d59fa2bc9533a62af35f0985dabadec (patch)
tree8ea63b17fd7f624ce264e69f8649d2aa1050afba /lib
parent1a33c9671c52345e8d09f2284a07fc2b454c91a0 (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.
Diffstat (limited to 'lib')
-rw-r--r--lib/oxidized/model/powerconnect.rb25
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