Hi, I''m using duritong''s puppet module and I''ve run into a bizarre issue after migrating to it that I cannot resolve and I thought I''d take it to the list in the hope someone can help. The error I get from a run is: info: Retrieving plugin info: Loading facts in dell info: Loading facts in apache-ports info: Loading facts in mysql info: Loading facts in location info: Loading facts in convera info: Loading facts in dell info: Loading facts in apache-portsinfo: Loading facts in mysql info: Loading facts in location info: Loading facts in convera info: Caching catalog for hlstestidm1.law.harvard.edu err: Could not run Puppet configuration client: Invalid parameter defaults at /etc/puppet/modules/development/mysql/manifests/server/account_security.pp:12 That file is: -------- class mysql::server::account_security { # some installations have some default users which are not required. # We remove them here. You can subclass this class to overwrite this behavior. #mysql_user{ [ "root@${fqdn}", "root@127.0.0.1", "@${fqdn}", "@localhost", "@%" ]: #ensure => absent, # require => Service[''mysqld''], #} mysql_user { "root@${fqdn}": ensure => absent, require => Service[''mysqld''], } } -------- I think the issue is something to do with mysql_user not allowing ensure to be used, but the error message doesn''t really help. Running puppetd -tvd didn''t add any extra information to help me nail this down. For reference the mysql_user type is: ---------- # This has to be a separate type to enable collecting Puppet::Type.newtype(:mysql_user) do @doc = "Manage a database user." ensurable newparam(:name) do desc "The name of the user. This uses the ''username@hostname'' form." validate do |value| if value.split(''@'').first.size > 16 raise ArgumentError, "MySQL usernames are limited to a maximum of 16 characters" else super end end end newproperty(:password_hash) do desc "The password hash of the user. Use mysql_password() for creating such a hash." end end ------- and the provider for mysql_user: require ''puppet/provider/package'' Puppet::Type.type(:mysql_user).provide(:mysql, # T''is funny business, this code is quite generic :parent => Puppet::Provider::Package) do desc "Use mysql as database." commands :mysql => ''/usr/bin/mysql'' commands :mysqladmin => ''/usr/bin/mysqladmin'' # retrieve the current set of mysql users def self.instances users = [] cmd = "#{command(:mysql)} mysql -NBe ''select concat(user, \"@\", host), password from user''" execpipe(cmd) do |process| process.each do |line| users << new( query_line_to_hash(line) ) end end return users end def self.query_line_to_hash(line) fields = line.chomp.split(/\t/) { :name => fields[0], :password_hash => fields[1], :ensure => :present } end def mysql_flush mysqladmin "flush-privileges" end def query result = {} cmd = "#{command(:mysql)} -NBe ''select concat(user, \"@\", host), password from user where concat(user, \"@\", host) = \"%s\"''" % @resource[:name] execpipe(cmd) do |process| process.each do |line| unless result.empty? raise Puppet::Error, "Got multiple results for user ''%s''" % @resource[:name] end result = query_line_to_hash(line) end end result end def create mysql "mysql", "-e", "create user ''%s'' identified by PASSWORD ''%s''" % [ @resource[:name].sub("@", "''@''"), @resource.should(:password_hash) ] mysql_flush end def destroy mysql "mysql", "-e", "drop user ''%s''" % @resource[:name].sub("@", "''@''") mysql_flush end def exists? not mysql("mysql", "-NBe", "select ''1'' from user where CONCAT(user, ''@'', host) = ''%s''" % @resource[:name]).empty? end def password_hash @property_hash[:password_hash] end def password_hash=(string) mysql "mysql", "-e", "SET PASSWORD FOR ''%s'' = ''%s''" % [ @resource[:name].sub("@", "''@''"), string ] mysql_flush end end -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.