diff options
author | Wild Kat <wk@futureinquestion.net> | 2018-03-17 11:30:47 +0100 |
---|---|---|
committer | Wild Kat <wk@futureinquestion.net> | 2018-03-17 11:30:47 +0100 |
commit | f17736cabf0edda6788eff206aa12c9e35a22341 (patch) | |
tree | 113fa19d95571137018e5465e07f499cfa551bd1 /lib/oxidized/model/aricentiss.rb | |
parent | 81fc3a4b423d8ce9fe69def57007312a96db6f67 (diff) | |
parent | 7ecd5abe1cc2f2bbc6b29687352564cb7f087a5a (diff) |
refactor supermicro support
Diffstat (limited to 'lib/oxidized/model/aricentiss.rb')
-rw-r--r-- | lib/oxidized/model/aricentiss.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/oxidized/model/aricentiss.rb b/lib/oxidized/model/aricentiss.rb new file mode 100644 index 0000000..8675263 --- /dev/null +++ b/lib/oxidized/model/aricentiss.rb @@ -0,0 +1,45 @@ +class AricentISS < Oxidized::Model + + prompt (/^(\e\[27m)?[ \r]*\w+# ?$/) + + cfg :ssh do + post_login 'no cli pagignation' + pre_logout 'exit' + end + + cmd :all do |cfg| + # * Drop first line that contains the command, and the last line that + # contains a prompt + # * Strip carriage returns + cfg.delete("\r").each_line.to_a[1..-2].join + end + + cmd :secret do |cfg| + cfg.gsub(/^(snmp community) .*/, '\1 <hidden>') + end + + cmd 'show system information' do |cfg| + cfg.sub! /^Device Up Time.*\n/, '' + cfg.delete! "\r" + comment(cfg).gsub(/ +$/, '') + end + + cmd 'show running-config' do |cfg| + comment_next = 0 + cfg.each_line.map { |l| + next '' if l.match /^Building configuration/ + + if l.match /^Switch ID.*Hardware Version.*Firmware Version/ then + comment_next = 2 + end + + if comment_next > 0 then + comment_next -= 1 + next comment(l) + end + + l + }.join.gsub(/ +$/, '') + end + +end |