summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/trocla.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/parser/functions/trocla.rb')
-rw-r--r--lib/puppet/parser/functions/trocla.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/trocla.rb b/lib/puppet/parser/functions/trocla.rb
new file mode 100644
index 0000000..b1a7b61
--- /dev/null
+++ b/lib/puppet/parser/functions/trocla.rb
@@ -0,0 +1,33 @@
+module Puppet::Parser::Functions
+ newfunction(:trocla, :type => :rvalue, :doc => "
+This will create or get a random password from the trocla storage.
+
+Usage:
+
+ $password_user1 = trocla(key,[format='plain'[,options={}]])
+
+Means:
+
+ $password_user1 = trocla('user1')
+
+Create or get the plain text password for the key 'user1'
+
+ $password_user2 = trocla('user2','mysql')
+
+Create or get the mysql style sha1 hashed password.
+
+ $options_user3 = { 'username' => 'user3' } # Due to a puppet bug
+ # this needs to be assigned
+ # like that.
+ $password_user3 = trocla('user3','pgsql', $options_user3)
+
+Options can also be passed as a yaml string:
+
+ $password_user3 = trocla('user3','pgsql', \"username: 'user3'\")
+ "
+ ) do |*args|
+ require File.dirname(__FILE__) + '/../../util/trocla_helper'
+
+ Puppet::Util::TroclaHelper.trocla(:password,true,*args)
+ end
+end