From a9996e8115bafd9837672c26dc9b76cbf3696840 Mon Sep 17 00:00:00 2001 From: Marno van der Molen Date: Tue, 3 Nov 2015 08:08:22 +0100 Subject: Adds optional debug output when loading hosts (resolving DNS) --- lib/oxidized/node.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/oxidized/node.rb') diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index d50317f..c847416 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -9,6 +9,9 @@ module Oxidized attr_accessor :running, :user, :msg, :from, :stats, :retry alias :running? :running def initialize opt + if CFG.debug == true or opt[:debug] == true + puts 'resolving DNS for %s...' % opt[:name] + end @name = opt[:name] @ip = IPAddr.new(opt[:ip]).to_s rescue nil @ip ||= Resolv.new.getaddress @name -- cgit v1.2.3 From f04ada741166c7c2cd5f9eee29a89127fab1f328 Mon Sep 17 00:00:00 2001 From: Marno van der Molen Date: Tue, 3 Nov 2015 08:30:44 +0100 Subject: Log crashes on node name instead of ip to ease troubleshooting --- lib/oxidized/node.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/oxidized/node.rb') diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index c847416..974b2d1 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -70,7 +70,7 @@ module Oxidized Log.send(level, '%s raised %s%s with msg "%s"' % [self.ip, err.class, resc, err.message]) return false rescue => err - file = Oxidized::Config::Crash + '.' + self.ip.to_s + file = Oxidized::Config::Crash + '.' + opt[:name] open file, 'w' do |fh| fh.puts Time.now.utc fh.puts err.message + ' [' + err.class.to_s + ']' -- cgit v1.2.3 From dc5f7285c87dc45763a24636a95c4081552356de Mon Sep 17 00:00:00 2001 From: Marno van der Molen Date: Tue, 3 Nov 2015 09:46:41 +0100 Subject: Revert crash logging on fqdn - seems to crash oxidized... --- lib/oxidized/node.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/oxidized/node.rb') diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index 974b2d1..c847416 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -70,7 +70,7 @@ module Oxidized Log.send(level, '%s raised %s%s with msg "%s"' % [self.ip, err.class, resc, err.message]) return false rescue => err - file = Oxidized::Config::Crash + '.' + opt[:name] + file = Oxidized::Config::Crash + '.' + self.ip.to_s open file, 'w' do |fh| fh.puts Time.now.utc fh.puts err.message + ' [' + err.class.to_s + ']' -- cgit v1.2.3 From 201c02551d96a070f8d55936aba350f772649465 Mon Sep 17 00:00:00 2001 From: Nick Hilliard Date: Sun, 27 Dec 2015 18:19:36 +0000 Subject: expose git repo name and commit oid in hook mechanism and environment variables --- README.md | 2 ++ lib/oxidized/hook/exec.rb | 2 ++ lib/oxidized/node.rb | 3 ++- lib/oxidized/output/file.rb | 3 +++ lib/oxidized/output/git.rb | 7 +++++-- lib/oxidized/worker.rb | 6 ++++-- 6 files changed, 18 insertions(+), 5 deletions(-) (limited to 'lib/oxidized/node.rb') diff --git a/README.md b/README.md index 43cc89f..f2116de 100644 --- a/README.md +++ b/README.md @@ -471,6 +471,8 @@ OX_NODE_MSG OX_NODE_GROUP OX_JOB_STATUS OX_JOB_TIME +OX_REPO_COMMITREF +OX_REPO_NAME ``` Exec hook recognizes following configuration keys: diff --git a/lib/oxidized/hook/exec.rb b/lib/oxidized/hook/exec.rb index af2aeb1..58d6fd5 100644 --- a/lib/oxidized/hook/exec.rb +++ b/lib/oxidized/hook/exec.rb @@ -71,6 +71,8 @@ class Exec < Oxidized::Hook "OX_NODE_MSG" => ctx.node.msg.to_s, "OX_NODE_GROUP" => ctx.node.group.to_s, "OX_EVENT" => ctx.event.to_s, + "OX_REPO_COMMITREF" => ctx.commitref.to_s, + "OX_REPO_NAME" => ctx.node.repo.to_s, ) end if ctx.job diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index c847416..df5b830 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -5,7 +5,7 @@ module Oxidized class MethodNotFound < OxidizedError; end class ModelNotFound < OxidizedError; end class Node - attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :vars, :last + attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :vars, :last, :repo attr_accessor :running, :user, :msg, :from, :stats, :retry alias :running? :running def initialize opt @@ -24,6 +24,7 @@ module Oxidized @vars = opt[:vars] @stats = Stats.new @retry = 0 + @repo = CFG.output.git.repo # model instance needs to access node instance @model.node = self diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index d1a8c17..eb915c3 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -2,6 +2,8 @@ module Oxidized class OxidizedFile < Output require 'fileutils' + attr_reader :commitref + def initialize @cfg = CFG.output.file end @@ -22,6 +24,7 @@ class OxidizedFile < Output FileUtils.mkdir_p file file = File.join file, node open(file, 'w') { |fh| fh.write outputs.to_cfg } + @commitref = file end def fetch node, group diff --git a/lib/oxidized/output/git.rb b/lib/oxidized/output/git.rb index 3757cfc..fff3941 100644 --- a/lib/oxidized/output/git.rb +++ b/lib/oxidized/output/git.rb @@ -7,6 +7,8 @@ class Git < Output raise OxidizedError, 'rugged not found: sudo gem install rugged' end + attr_reader :commitref + def initialize @cfg = CFG.output.git end @@ -27,6 +29,7 @@ class Git < Output @user = (opt[:user] or @cfg.user) @email = (opt[:email] or @cfg.email) @opt = opt + @commitref = nil repo = @cfg.repo outputs.types.each do |type| @@ -63,7 +66,7 @@ class Git < Output end end - #give a hash of all oid revision for the givin node, and the date of the commit + #give a hash of all oid revision for the given node, and the date of the commit def version node, group begin repo = @cfg.repo @@ -176,7 +179,7 @@ class Git < Output if tree_old != tree_new repo.config['user.name'] = user repo.config['user.email'] = email - Rugged::Commit.create(repo, + @commitref = Rugged::Commit.create(repo, :tree => index.write_tree(repo), :message => msg, :parents => repo.empty? ? [] : [repo.head.target].compact, diff --git a/lib/oxidized/worker.rb b/lib/oxidized/worker.rb index eea747e..c886a5b 100644 --- a/lib/oxidized/worker.rb +++ b/lib/oxidized/worker.rb @@ -39,11 +39,13 @@ module Oxidized msg = "update #{node.name}" msg += " from #{node.from}" if node.from msg += " with message '#{node.msg}'" if node.msg - if node.output.new.store node.name, job.config, + output = node.output.new + if output.store node.name, job.config, :msg => msg, :user => node.user, :group => node.group Log.info "Configuration updated for #{node.group}/#{node.name}" Oxidized.Hooks.handle :post_store, :node => node, - :job => job + :job => job, + :commitref => output.commitref end node.reset else -- cgit v1.2.3