diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/oxidized/model/sgos.rb | 46 | ||||
-rw-r--r-- | lib/oxidized/node.rb | 4 | ||||
-rw-r--r-- | lib/oxidized/nodes.rb | 1 | ||||
-rw-r--r-- | lib/oxidized/worker.rb | 2 |
4 files changed, 50 insertions, 3 deletions
diff --git a/lib/oxidized/model/sgos.rb b/lib/oxidized/model/sgos.rb new file mode 100644 index 0000000..3d42a53 --- /dev/null +++ b/lib/oxidized/model/sgos.rb @@ -0,0 +1,46 @@ +class SGOS < Oxidized::Model + + comment '!- ' + prompt /\w+>|#/ + + expect /--More--/ do |data, re| + send ' ' + data.sub re, '' + end + + cmd :all do |cfg| + cfg.each_line.to_a[1..-3].join + end + + cmd 'show licenses' do |cfg| + comment cfg + end + + cmd 'show general' do |cfg| + comment cfg + end + + cmd :secret do |cfg| + cfg.gsub! /^(security hashed-enable-password).*/, '\\1 <secret hidden>' + cfg.gsub! /^(security hashed-password).*/, '\\1 <secret hidden>' + cfg + end + + cmd 'show configuration expanded noprompts with-keyrings unencrypted' do |cfg| + cfg.gsub! /^(!- Local time).*/,"" + cfg.gsub! /^(archive-configuration encrypted-password).*/, "" + cfg.gsub! /^(download encrypted-password).*/, "" + cfg + end + + cfg :telnet, :ssh do + # preferred way to handle additional passwords + if vars :enable + post_login do + send "enable\n" + cmd vars(:enable) + end + end + pre_logout 'exit' + end +end diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index 4f9ae54..2b15d4e 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -6,7 +6,7 @@ module Oxidized class ModelNotFound < OxidizedError; end class Node attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :vars, :last, :repo - attr_accessor :running, :user, :msg, :from, :stats, :retry + attr_accessor :running, :user, :email, :msg, :from, :stats, :retry alias :running? :running def initialize opt @@ -121,7 +121,7 @@ module Oxidized end def reset - @user = @msg = @from = nil + @user = @email = @msg = @from = nil @retry = 0 end diff --git a/lib/oxidized/nodes.rb b/lib/oxidized/nodes.rb index 6751c7a..3f84e15 100644 --- a/lib/oxidized/nodes.rb +++ b/lib/oxidized/nodes.rb @@ -68,6 +68,7 @@ module Oxidized with_lock do n = del node n.user = opt['user'] + n.email = opt['email'] n.msg = opt['msg'] n.from = opt['from'] # set last job to nil so that the node is picked for immediate update diff --git a/lib/oxidized/worker.rb b/lib/oxidized/worker.rb index dfe9803..4173680 100644 --- a/lib/oxidized/worker.rb +++ b/lib/oxidized/worker.rb @@ -52,7 +52,7 @@ module Oxidized msg += " with message '#{node.msg}'" if node.msg output = node.output.new if output.store node.name, job.config, - :msg => msg, :user => node.user, :group => node.group + :msg => msg, :email => node.email, :user => node.user, :group => node.group Oxidized.logger.info "Configuration updated for #{node.group}/#{node.name}" Oxidized.Hooks.handle :post_store, :node => node, :job => job, |