]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/puppetmaster/lib/puppet/parser/functions/gen_tlsa_entry.rb
Fix scoping
[dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / gen_tlsa_entry.rb
1 module Puppet::Parser::Functions
2   newfunction(:gen_tlsa_entry, :type => :rvalue) do |args|
3     certfile = args.shift()
4     hostname = args.shift()
5     port = args.shift()
6
7     res = []
8     if File.exist?(certfile)
9       cmd = ['swede', 'create', '--usage=3', '--selector=1', '--mtype=1', '--certificate', certfile, '--port', port.to_s, hostname]
10       IO.popen(cmd, "r") {|i| res << i.read }
11     else
12       res << "; certfile #{certfile} did not exist to create TLSA record for #{hostname}:#{port}."
13     end
14
15     certfile += ".new"
16     if File.exist?(certfile)
17       cmd = ['swede', 'create', '--usage=3', '--selector=1', '--mtype=1', '--certificate', certfile, '--port', port.to_s, hostname]
18       new_entry = ''
19       IO.popen(cmd, "r") {|i| new_entry = i.read }
20       if not res.include?(new_entry)
21         res << new_entry
22       end
23     end
24
25     return res.join("\n")
26   end
27 end