forked from ytti/oxidized
-
Notifications
You must be signed in to change notification settings - Fork 0
/
slxos.rb
59 lines (48 loc) · 1.54 KB
/
slxos.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class SLXOS < Oxidized::Model
prompt /^.*[>#]\s?$/i
comment '! '
cmd 'show version' do |cfg|
cfg.gsub! /(^((.*)[Ss]ystem [Uu]ptime(.*))$)/, '' # remove unwanted line system uptime
cfg.gsub! /[Uu]p\s?[Tt]ime is .*/, ''
comment cfg
end
cmd 'show chassis' do |cfg|
cfg.encode!("UTF-8", :invalid => :replace, :undef => :replace) # sometimes ironware returns broken encoding
cfg.gsub! /.*Power Usage.*/, '' # remove unwanted lines power usage
cfg.gsub! /Time A(live|wake).*/, '' # remove unwanted lines time alive/awake
cfg.gsub! /([\[]*)1([\]]*)<->([\[]*)2([\]]*)(<->([\[]*)3([\]]*))*/, ''
comment cfg
end
cmd 'show system' do |cfg|
cfg.gsub! /Up Time.*/, '' # removes uptime line
cfg.gsub! /Current Time.*/, '' # remove current time line
cfg.gsub! /.*speed is.*/, '' # removes fan speed lines
comment cfg
end
cmd 'show slots' do |cfg|
cfg.gsub! /^-*^$/, '' # some slx devices are fixed config
cfg.gsub! /syntax error: element does not exist/, '' # same as above
comment cfg
end
cmd 'show running-config' do |cfg|
arr = cfg.each_line.to_a
arr[2..-1].join unless arr.length < 2
end
cfg :telnet do
# match expected prompts
username /^(Please Enter Login Name|Username):/
password /^(Please Enter Password ?|Password):/
end
# handle pager with enable
cfg :telnet, :ssh do
if vars :enable
post_login do
send "enable\n"
cmd vars(:enable)
end
end
post_login ''
post_login 'terminal length 0'
pre_logout 'exit'
end
end