diff options
author | Saku Ytti <saku@ytti.fi> | 2013-04-17 17:48:50 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2013-04-17 17:48:50 +0300 |
commit | 9d217025fac3e335c308f02e7377e14ccfdc0e66 (patch) | |
tree | b90d4d04947fe26a9e592e12d8c4352142380c03 /lib/oxidized/model/junos.rb |
Initial commit
Silly for shit-and-giggles attempt at rancid
Diffstat (limited to 'lib/oxidized/model/junos.rb')
-rw-r--r-- | lib/oxidized/model/junos.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/oxidized/model/junos.rb b/lib/oxidized/model/junos.rb new file mode 100644 index 0000000..caa6536 --- /dev/null +++ b/lib/oxidized/model/junos.rb @@ -0,0 +1,47 @@ +class JunOS < Oxidized::Model + + comment '# ' + + def telnet + @input.class.to_s.match /Telnet/ + end + + cmd 'show configuration' do |cfg| + # example how to handle different output from different methods. Other option would be to + # pass string to helper method, which checks if top/bottom has prompts and removes + cfg = cfg.lines[1..-2].join if telnet + cfg + end + + cmd 'show version' do |cfg| + chassis = model $1 if cfg.match /^Model: (\S+)/ + comment cfg << chassis.to_s + end + + def model chassis + case chassis + when 'mx960' + cmd('show chassis fabric reachability') { |cfg| comment cfg } + end + end + + cmd 'show chassis hardware' do |cfg| + comment cfg + end + + cfg :telnet do + username /^login:/ + password /^Password:/ + end + + cfg :ssh do + exec true # don't run shell, run each command in exec channel + end + + cfg :telnet, :ssh do + post_login 'set cli screen-length 0' + post_login 'set cli screen-width 0' + pre_logout 'exit' + end + +end |