move to stringifying our facts again
authorPeter Palfrader <peter@palfrader.org>
Thu, 28 Jul 2016 20:32:22 +0000 (20:32 +0000)
committerPeter Palfrader <peter@palfrader.org>
Thu, 28 Jul 2016 20:32:22 +0000 (20:32 +0000)
modules/debian-org/lib/facter/onion-services.rb
modules/puppetmaster/lib/puppet/parser/functions/onion_hostname.rb [new file with mode: 0644]

index 08aa134..5e3998f 100644 (file)
@@ -1,13 +1,19 @@
-Facter.add("onion_hostname") do
-       services = {}
+begin
+    require 'json'
 
-       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
+    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.to_json
+        end
+    end
+
+rescue Exception => e
 end
diff --git a/modules/puppetmaster/lib/puppet/parser/functions/onion_hostname.rb b/modules/puppetmaster/lib/puppet/parser/functions/onion_hostname.rb
new file mode 100644 (file)
index 0000000..b0d15a6
--- /dev/null
@@ -0,0 +1,14 @@
+module Puppet::Parser::Functions
+  newfunction(:onion_hostname, :type => :rvalue) do |args|
+    servicename = args.shift()
+
+    onion_hostname_fact = lookupvar('onion_hostname')
+
+    require 'json'
+    parsed = JSON.parse(onion_hostname_fact)
+    return parsed[servicename]
+  end
+end
+# vim:set ts=2:
+# vim:set et:
+# vim:set shiftwidth=2: