diff options
-rw-r--r-- | CHANGELOG.md | 19 | ||||
-rw-r--r-- | Rakefile | 11 | ||||
-rw-r--r-- | lib/oxidized/input/ssh.rb | 7 | ||||
-rw-r--r-- | lib/oxidized/model/ios.rb | 4 | ||||
-rw-r--r-- | lib/oxidized/model/iosxr.rb | 2 | ||||
-rw-r--r-- | lib/oxidized/model/masteros.rb | 33 | ||||
-rw-r--r-- | lib/oxidized/version.rb | 2 | ||||
-rw-r--r-- | oxidized.gemspec | 2 |
8 files changed, 50 insertions, 30 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 685d6d0..b59e03d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# 0.12.2 +- BUGFIX: more MRV model fixes (by @natm) + +# 0.12.1 +- BUGFIX: set term to vty100 +- BUGFIX: MRV model fixes (by @natm) + +# 0.12.0 +- FEATURE: enhance AOSW (by @mikebryant) +- FEATURE: F5 TMOS support (by @mikebryant) +- FEATURE: Opengear support (by @mikebryant) +- FEATURE: EdgeSwitch support (by @doogieconsulting) +- BUGFIX: rename input debug log files +- BUGFIX: powerconnect model fixes (by @Madpilot0) +- BUGFIX: fortigate model fixes (by @ElvinEfendi) +- BUGFIX: various (by @mikebryant) +- BUGFIX: write SSH debug to file without buffering +- BUGFIX: fix IOS XR prompt handling + # 0.11.0 - FEATURE: ssh proxycommand (by @ElvinEfendi) - FEATURE: basic auth in HTTP source (by @laf) @@ -19,13 +19,6 @@ task :test do end end -desc 'Build gem' -task :build do - system "gem build #{gemspec.name}.gemspec" - FileUtils.mkdir_p 'gems' - FileUtils.mv file, 'gems' -end - desc 'Install gem' task :install => :build do system "sudo -Es sh -c \'umask 022; gem install gems/#{file}\'" @@ -33,7 +26,7 @@ end desc 'Remove gems' task :clean do - FileUtils.rm_rf 'gems' + FileUtils.rm_rf 'pkg' end desc 'Tag the release' @@ -43,7 +36,7 @@ end desc 'Push to rubygems' task :push => :tag do - system "gem push gems/#{file}" + system "gem push pkg/#{file}" end task default: :test diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb index 69b36b0..e7296b5 100644 --- a/lib/oxidized/input/ssh.rb +++ b/lib/oxidized/input/ssh.rb @@ -79,11 +79,14 @@ module Oxidized def shell_open ssh @ses = ssh.open_channel do |ch| ch.on_data do |_ch, data| - @log.print data if Oxidized.config.input.debug? + if Oxidized.config.input.debug? + @log.print data + @log.fsync + end @output << data @output = @node.model.expects @output end - ch.request_pty do |_ch, success_pty| + ch.request_pty (opts={:term=>'vt100'}) do |_ch, success_pty| raise NoShell, "Can't get PTY" unless success_pty ch.send_channel_request 'shell' do |_ch, success_shell| raise NoShell, "Can't get shell" unless success_shell diff --git a/lib/oxidized/model/ios.rb b/lib/oxidized/model/ios.rb index f31303c..1f099c8 100644 --- a/lib/oxidized/model/ios.rb +++ b/lib/oxidized/model/ios.rb @@ -25,6 +25,10 @@ class IOS < Oxidized::Model cmd :secret do |cfg| cfg.gsub! /^(snmp-server community).*/, '\\1 <configuration removed>' cfg.gsub! /username (\S+) privilege (\d+) (\S+).*/, '<secret hidden>' + cfg.gsub! /^username \S+ password \d \S+/, '<secret hidden>' + cfg.gsub! /^enable password \d \S+/, '<secret hidden>' + cfg.gsub! /wpa-psk ascii \d \S+/, '<secret hidden>' + cfg.gsub! /^tacacs-server key \d \S+/, '<secret hidden>' cfg end diff --git a/lib/oxidized/model/iosxr.rb b/lib/oxidized/model/iosxr.rb index 6887217..a622b66 100644 --- a/lib/oxidized/model/iosxr.rb +++ b/lib/oxidized/model/iosxr.rb @@ -2,7 +2,7 @@ class IOSXR < Oxidized::Model # IOS XR model # - prompt /^([\w.@:\/-]+[#>]\s?)$/ + prompt /^(\r?[\w.@:\/-]+[#>]\s?)$/ comment '! ' cmd :all do |cfg| diff --git a/lib/oxidized/model/masteros.rb b/lib/oxidized/model/masteros.rb index 3f5a2fc..587fdc4 100644 --- a/lib/oxidized/model/masteros.rb +++ b/lib/oxidized/model/masteros.rb @@ -2,35 +2,36 @@ class MasterOS < Oxidized::Model # MRV MasterOS model # -comment '!' +comment '!' cmd :secret do |cfg| cfg.gsub! /^(snmp-server community).*/, '\\1 <configuration removed>' cfg.gsub! /username (\S+) password encrypted (\S+) class (\S+).*/, '<secret hidden>' - cfg - end + cfg + end cmd :all do |cfg| cfg.each_line.to_a[1..-2].join - end + cfg.gsub /^(! Configuration ).*/, '!' + end cmd 'show inventory' do |cfg| cfg = cfg.each_line.to_a[0..-2].join - comment cfg - end + comment cfg + end cmd 'show plugins' do |cfg| - comment cfg - end + comment cfg + end cmd 'show hw-config' do |cfg| - comment cfg - end + comment cfg + end cmd 'show running-config' do |cfg| cfg = cfg.each_line.to_a[3..-1].join - cfg - end + cfg + end cfg :telnet, :ssh do post_login 'no pager' @@ -38,9 +39,9 @@ comment '!' post_login do send "enable\n" send vars(:enable) + "\n" - end - end + end + end pre_logout 'exit' - end + end -end
\ No newline at end of file +end diff --git a/lib/oxidized/version.rb b/lib/oxidized/version.rb index fc4a9f8..c06a14a 100644 --- a/lib/oxidized/version.rb +++ b/lib/oxidized/version.rb @@ -1,3 +1,3 @@ module Oxidized - VERSION = '0.11.0' + VERSION = '0.12.2' end diff --git a/oxidized.gemspec b/oxidized.gemspec index 808d508..efa21db 100644 --- a/oxidized.gemspec +++ b/oxidized.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |s| s.executables = %w( oxidized ) s.require_path = 'lib' - s.required_ruby_version = '>= 1.9.3' + s.required_ruby_version = '>= 2.0.0' s.add_runtime_dependency 'asetus', '~> 0.1' s.add_runtime_dependency 'slop', '~> 3.5' s.add_runtime_dependency 'net-ssh', '~> 3.0', '>= 3.0.2' |