hi,guys-

I have a mysql database which stores host informations,so I wrote a 
function to get some values.

   - Here is the function rb(this function should return the type I defined 
   in the database):
   
#hosttype.rb

require "mysql"

module Puppet::Parser::Functions

    newfunction(:hosttype, :type => :rvalue, :doc => "Gets host type from 
db.") do |args|

        dbh = Mysql.real_connect("mysql_server_ip", "username", "password", 
"puppet")

        res = dbh.query("SELECT host_type FROM host_extra_info where 
name='" + args[0] + "'")

#        return res.fetch_row

        puts res.fetch_row

          res.free

         dbh.close if dbh

    end

end



   - Also I wrote a .pp file to test it:
   
#/tmp/1.pp

$extraaaaa = hosttype("my_hostname")

notify { $extraaaaa: }


Test results(the red value is the query result from db):

[root@pm tmp]# puppet 1.pp

notice: server

notice: /Stage[main]//Notify[server]/message: defined 'message' as 'server'

notice: Finished catalog run in 0.06 seconds


It looks right,but when I use it in my module manifests,it didn't work!


   - my custom module manifests:
   
#extracache.pp

class custom::extracache {

    $extra_info = hosttype($hostname)

    notify { test:

        message => "$extra_info"

    }

 

    file { "/etc/puppet/host_extra_info.cache":

        content => "$extra_info",

    }

}


Puppet run results:

[root@pm tmp]# puppet agent --onetime --no-daemonize --verbose

info: Retrieving plugin

notice: 
/File[/var/lib/puppet/lib/puppet/parser/functions/hosttype.rb]/content: 
content changed '{md5}2493078b3c7e78b5c9e26b35bb1ccd85' to 
'{md5}614766f30295d33d8d27fa6dab768cc4'

info: Loading downloaded plugin 
/var/lib/puppet/lib/puppet/parser/functions/hosttype.rb

info: Caching catalog for xxxxxxx

info: Applying configuration version '1362562073'

notice:

notice: /Stage[main]/Custom::Extracache/Notify[test]/message: defined 
'message' as ''

notice: Finished catalog run in 0.73 seconds


It becomes nil,and I just don't know why.


Any reply I will appreciate!

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to