X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fdebian-org%2Flib%2Ffacter%2Fonion-services.rb;h=c444ec2d11ad61863446d53e2999496342d9d967;hb=f01ae912798f256491ed13755113bf403cb48e8e;hp=08aa1349ae5b86d9af1f07f945de8177866220e5;hpb=f4b02f3ec31b4628b27567c6765a8c148c30a531;p=mirror%2Fdsa-puppet.git diff --git a/modules/debian-org/lib/facter/onion-services.rb b/modules/debian-org/lib/facter/onion-services.rb index 08aa1349a..c444ec2d1 100644 --- a/modules/debian-org/lib/facter/onion-services.rb +++ b/modules/debian-org/lib/facter/onion-services.rb @@ -1,13 +1,35 @@ -Facter.add("onion_hostname") do - services = {} - - Dir['/var/lib/tor/onion/*/hostname'].each do |p| - dir = File.dirname(p) - service = File.basename(dir) - hostname = IO.read(p).chomp - services[service] = hostname - end - setcode do - services - end +begin + require 'json' + + Facter.add("onion_tor_service_hostname") do + services = {} + + Dir['/var/lib/tor/onion/*/hostname'].each do |p| + dir = File.dirname(p) + service = File.basename(dir) + hostname = IO.read(p).chomp + services[service] = hostname + end + setcode do + services.to_json + end + end + + Facter.add("onion_balance_service_hostname") do + services = {} + + Dir['/etc/onionbalance/private_keys/*.key'].each do |p| + service = File.basename(p, '.key') + begin + services[service] = IO.popen(['/usr/local/bin/tor-onion-name', p]).read.chomp + rescue Errno::ENOENT + end + end + setcode do + services.to_json + end + end + + +rescue Exception => e end