Hi all, I read today my first book about ruby, and try modify code: http://github.com/camptocamp/puppet-mysql Unfortunatly, creator of this code don't replay from my e-mail (may be, he don't have free time)
I'm stupid about paramters in provider. I add: _______________________________________________________ Index: mysql_grant/mysql.rb =================================================================== --- mysql_grant/mysql.rb (revision 2995) +++ mysql_grant/mysql.rb (revision 2996) @@ -30,7 +30,7 @@ commands :mysqladmin => '/usr/bin/mysqladmin' def mysql_flush - mysqladmin "flush-privileges" + mysqladmin "-p", $mrootpw, "flush-privileges" end # this parses the @@ -53,16 +53,16 @@ end end - def create_row + def create_row(mrootpw) unless @resource.should(:privileges).empty? name = split_name(@resource[:name]) case name[:type] when :user - mysql "mysql", "-e", "INSERT INTO user (host, user) VALUES ('%s', '%s')" % [ + mysql "mysql", "-p", $mrootpw, "-e", "INSERT INTO user (host, user) VALUES ('%s', '%s')" % [ name[:host], name[:user], ] when :db - mysql "mysql", "-e", "INSERT INTO db (host, user, db) VALUES ('%s', '%s', '%s')" % [ + mysql "mysql", "-p", $mrootpw, "-e", "INSERT INTO db (host, user, db) VALUES ('%s', '%s', '%s')" % [ name[:host], name[:user], name[:db], ] end @@ -80,7 +80,7 @@ if name[:type] == :db fields << :db end - not mysql( "mysql", "-NBe", 'SELECT "1" FROM %s WHERE %s' % [ name[:type], fields.map do |f| "%s = '%s'" % [f, name[f]] end.join(' AND ')]).empty? + not mysql( "mysql", "-p", $mrootpw, "-NBe", 'SELECT "1" FROM %s WHERE %s' % [ name[:type], fields.map do |f| "%s = '%s'" % [f, name[f]] end.join(' AND ')]).empty? end def all_privs_set? @@ -102,9 +102,9 @@ case name[:type] when :user - privs = mysql "mysql", "-Be", 'select * from user where user="%s" and host="%s"' % [ name[:user], name[:host] ] + privs = mysql "-p", $mrootpw, "mysql", "-Be", 'select * from user where user="%s" and host="%s"' % [ name[:user], name[:host] ] when :db - privs = mysql "mysql", "-Be", 'select * from db where user="%s" and host="%s" and db="%s"' % [ name[:user], name[:host], name[:db] ] + privs = mysql "-p", $mrootpw, "mysql", "-Be", 'select * from db where user="%s" and host="%s" and db="%s"' % [ name[:user], name[:host], name[:db] ] end if privs.match(/^$/) @@ -150,7 +150,7 @@ # puts "set:", set stmt = stmt << set << where - mysql "mysql", "-Be", stmt + mysql "-p", $mrootpw, "mysql", "-Be", stmt mysql_flush end end Index: mysql_user/mysql.rb =================================================================== --- mysql_user/mysql.rb (revision 2995) +++ mysql_user/mysql.rb (revision 2996) @@ -32,11 +32,11 @@ } end - def mysql_flush - mysqladmin "flush-privileges" + def mysql_flush(mrootpw) + mysqladmin "-p", $mrootpw, "flush-privileges" end - def query + def query(mrootpw) result = {} cmd = "#{command(:mysql)} -NBe 'select concat(user, \"@\", host), password from user where concat(user, \"@\", host) = \"%s\"'" % @resource[:name] @@ -53,17 +53,17 @@ end def create - mysql "mysql", "-e", "create user '%s' identified by PASSWORD '%s'" % [ @resource[:name].sub("@", "'@'"), @resource.should(:password_hash) ] + mysql "mysql", "-p", $mrootpw, "-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 "mysql", "-p", $mrootpw, "-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? + not mysql("mysql", "-p", $mrootpw, "-NBe", "select '1' from user where CONCAT(user, '@', host) = '%s'" % @resource[:name]).empty? end def password_hash @@ -71,7 +71,7 @@ end def password_hash=(string) - mysql "mysql", "-e", "SET PASSWORD FOR '%s' = '%s'" % [ @resource[:name].sub("@", "'@'"), string ] + mysql "mysql", "-p", $mrootpw, "-e", "SET PASSWORD FOR '%s' = '%s'" % [ @resource[:name].sub("@", "'@'"), string ] mysql_flush end end Index: mysql_database/mysql.rb =================================================================== --- mysql_database/mysql.rb (revision 2995) +++ mysql_database/mysql.rb (revision 2996) @@ -7,7 +7,7 @@ #commands :mysqladmin => '/usr/local/bin/mysqladmin' #commands :mysql => '/usr/local/bin/mysql' commands :mysql => '/usr/bin/mysql' - commands :mysqladmin => '/usr/bin/mysqladmin' + commands :mysqladmin => '/usr/bin/mysqladmin' # retrieve the current set of mysql users def self.instances ____________________________________________ Also, i modify puppet defenitions: ========================== define mysql::database($rpw=$mysql_rootpw, $ensure) { if $mysql_exists == "true" { mysql_database { $name: ensure => $ensure, require => File["/root/.my.cnf"], mrootpw => $rpw, } } } define mysql::rights($rpw=$mysql_rootpw, $database, $user, $password, $host="localhost", $ensure="present", $priv="all") { if $mysql_exists == "true" and $ensure == "present" { mysql_user { "${us...@${host}": password_hash => mysql_password($password), require => File["/root/.my.cnf"], mrootpw => $rpw, } mysql_grant { "${us...@${host}/${database}": privileges => $priv, require => File["/root/.my.cnf"], mrootpw => $rootpw, } } } ============== I add my variable, mrootpw. But, ruby don't provide value variable in my custom provider/type: Jul 5 01:05:42 web-test01 puppetd[23778]: Could not prefetch mysql_user provider 'mysql': #<IO:0xb7c5bf40> Jul 5 01:05:56 web-test01 puppetd[23778]: (//Node[web-test01.int.ha- systems.ru]/Mysql::Rights[joom_user01]/mysql_user[...@localhost]) Failed to retrieve current state of resource: Execution of '/usr/bin/ mysql mysql -p -NBe select '1' from user where CONCAT(user, '@', host) = 'f...@localhost'' returned 1: /usr/bin/mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1 Copyright (C) 2000-2008 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Usage: /usr/bin/mysql [OPTIONS] [database] -?, --help Display this help and exit. -I, --help Synonym for -? --auto-rehash Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable- auto-rehash. -A, --no-auto-rehash No auto Jul 5 01:05:56 web-test01 puppetd[23778]: (//Node[web-test01.int.ha- systems.ru]/Mysql::Rights[joom_user01]/mysql_grant[...@localhost/ joomla01]) Dependency mysql_user[...@localhost] has 1 failures Jul 5 01:05:56 web-test01 puppetd[23778]: (//Node[web-test01.int.ha- systems.ru]/Mysql::Rights[joom_user01]/mysql_grant[...@localhost/ joomla01]) Skipping because of failed dependencies Jul 5 01:05:58 web-test01 puppetd[23778]: Finished catalog run in 16.55 seconds ======================================= where i'm wrong? -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-us...@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.