From 02b95fb2f1cc935fccd6cbc82097dd8865f0b534 Mon Sep 17 00:00:00 2001 From: Saku Ytti Date: Thu, 5 May 2016 01:12:08 +0300 Subject: support catos --- README.md | 1 + lib/oxidized/model/catos.rb | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 lib/oxidized/model/catos.rb diff --git a/README.md b/README.md index 23d2015..6bc3b39 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen * Cisco * AireOS * ASA + * CatOS * IOS * IOSXR * NXOS diff --git a/lib/oxidized/model/catos.rb b/lib/oxidized/model/catos.rb new file mode 100644 index 0000000..874ebbc --- /dev/null +++ b/lib/oxidized/model/catos.rb @@ -0,0 +1,36 @@ +class Catos < Oxidized::Model + + prompt /^[\w.@-]+> \(enable\) $/ + comment '# ' + + cmd :all do |cfg| + cfg.each_line.to_a[1..-2].join + end + + cmd 'show system' do |cfg| + cfg = cfg.gsub /(\s+)\d+,\d+:\d+:\d+(\s+)/, '\1X\2' + comment cfg + end + + cmd 'show version' do |cfg| + cfg = cfg.gsub /\d+(K)/, 'X\1' + cfg = cfg.gsub /^(Uptime is ).*/, '\1X' + comment cfg + end + + cmd 'show conf all' do |cfg| + cfg = cfg.sub /^(#time: ).*/, '\1X' + cfg.each_line.drop_while { |line| not line.match /^begin/ }.join + end + + cfg :telnet do + username /^Username: / + password /^Password:/ + end + + cfg :ssh, :telnet do + post_login 'set length 0' + pre_logout 'exit' + end + +end -- cgit v1.2.1