From e9ec48a85006b481007db28d0b1fb7344f1d1224 Mon Sep 17 00:00:00 2001 From: nopedial Date: Tue, 15 Oct 2013 00:13:03 +0200 Subject: enhance fetch support --- lib/oxidized/output/file.rb | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'lib/oxidized/output/file.rb') diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index 8aaae0e..08272a5 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -25,9 +25,28 @@ class OxFile < Output open(file, 'w') { |fh| fh.write data } end - def fetch node - IO.readlines File.join(@cfg[:directory], node) + + def fetch node, group + cfg_dir = @cfg[:directory] + if group != 0 # group is explicitly defined by user + IO.readlines File.join(cfg_dir, group, node) + else + if File.exists?("#{cfg_dir}/#{node}") # node configuration file is stored on base directory + IO.readlines File.join(cfg_dir, node) + else + Dir.foreach(cfg_dir) do |sub_dir| + next if sub_dir == '.' or sub_dir == '..' + if File.directory?("#{cfg_dir}/#{sub_dir}") + files = Dir.entries("#{cfg_dir}/#{sub_dir}") + files.each do |f| + next if File.directory?("#{cfg_dir}/#{sub_dir}/#{f}") or f == '.' or f == '..' + IO.readlines File.join(cfg_dir, sub_dir, f) if f == node # node configuration file found on sub directory + end + end + end + end + end end - + end end -- cgit v1.2.1 From ff5f75ad040fc40484ee186e609e8b5af668d7ae Mon Sep 17 00:00:00 2001 From: nopedial Date: Tue, 15 Oct 2013 22:20:57 +0200 Subject: fix fetch search and broken output --- lib/oxidized/output/file.rb | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'lib/oxidized/output/file.rb') diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index 08272a5..8a53f91 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -34,15 +34,11 @@ class OxFile < Output if File.exists?("#{cfg_dir}/#{node}") # node configuration file is stored on base directory IO.readlines File.join(cfg_dir, node) else - Dir.foreach(cfg_dir) do |sub_dir| - next if sub_dir == '.' or sub_dir == '..' - if File.directory?("#{cfg_dir}/#{sub_dir}") - files = Dir.entries("#{cfg_dir}/#{sub_dir}") - files.each do |f| - next if File.directory?("#{cfg_dir}/#{sub_dir}/#{f}") or f == '.' or f == '..' - IO.readlines File.join(cfg_dir, sub_dir, f) if f == node # node configuration file found on sub directory - end - end + file = Find.find('.').lazy.find{|e|e.match /#{node}/} + if file + open(file, 'r').readlines + else + "not found." end end end -- cgit v1.2.1 From c7d482c514e3d3917cbeb9a95ea8babf22116fe3 Mon Sep 17 00:00:00 2001 From: Samer Abdel-Hafez Date: Tue, 15 Oct 2013 23:17:20 +0200 Subject: Update file.rb --- lib/oxidized/output/file.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/oxidized/output/file.rb') diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index 8a53f91..6e1a231 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -34,7 +34,7 @@ class OxFile < Output if File.exists?("#{cfg_dir}/#{node}") # node configuration file is stored on base directory IO.readlines File.join(cfg_dir, node) else - file = Find.find('.').lazy.find{|e|e.match /#{node}/} + file = if file open(file, 'r').readlines else -- cgit v1.2.1 From b8150eae04924f2c45cdb0c4b3f60902c8ae3d96 Mon Sep 17 00:00:00 2001 From: nopedial Date: Wed, 23 Oct 2013 23:20:25 +0200 Subject: finalize fetch API call --- lib/oxidized/output/file.rb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'lib/oxidized/output/file.rb') diff --git a/lib/oxidized/output/file.rb b/lib/oxidized/output/file.rb index 6e1a231..2ea2302 100644 --- a/lib/oxidized/output/file.rb +++ b/lib/oxidized/output/file.rb @@ -31,15 +31,11 @@ class OxFile < Output if group != 0 # group is explicitly defined by user IO.readlines File.join(cfg_dir, group, node) else - if File.exists?("#{cfg_dir}/#{node}") # node configuration file is stored on base directory + if File.exists? File.join(cfg_dir, node) # node configuration file is stored on base directory IO.readlines File.join(cfg_dir, node) else - file = - if file - open(file, 'r').readlines - else - "not found." - end + path = Dir.glob File.join(cfg_dir, '**', node) # fetch node in all groups + open(path[0], 'r').readlines end end end -- cgit v1.2.1