On Dec 15, 6:46 am, Trevor Vaughan <[email protected]> wrote:
> Is is possible to spawn a puppet fact refresh from the completion of an event?

Not that I know of. All of the clients facts are submitted as params
in the initial request for a catalog. There's no client <=> server
feedback loop during catalog compilation.

> The only thing that I could come up with is a custom fact that returns
> the architecture of the installed package and then adjust the path
> based on that.

Yes. That seems like the canonical way to do it.

> However, this takes *two* puppet runs to complete and I would like to
> get this down to one run by prompting a fact refresh after the package
> is installed.

Does it? I thought if you used pluginsync you had those facts
available when you requested the actual catalog. Should take just a
moment to test. Oh, you may be able to use subscribe/notify params to
signal Service[puppet] when your target package is installed. That
would force an immediate reload and run, giving you your fact for
sure.


Is this "3rd party" software installed/managed in the same puppet
catalog as your File[foo.comf]? If so you could get clever with
manifest evaluation order and try to inspect the already defined
Package:

class foo {
    include foo::application
    include foo::config
}
class foo::config {
    require(foo::package)
    if defined(Package[foo-x86_64]) or ($foo_fact == 'x86_64')  {
        $foo_path = "lib64"
    } elsif defined(Package[foo-i686]) or ($foo_fact == 'i686'){
        $foo_path = "lib"
    } else {
        fail("Could not detect a version of Package[foo]. This is
bad.")
    }
}

This is probably too clever by half though. And using defined() is
morally wrong 95% of the time. And I'm not positive that the require
will force the manifest eval order in your favor. But if it gets the
job done....

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to