David Campos
2013-Oct-30 11:09 UTC
[Puppet Users] Custom providers and feature confinement
Hello all, I have been searching through previous posts and documentation and I have not been able to find out what is happening with my provider... I have declared a custom provider that depends on a custom feature (in fact, in a set) that are not present at the machine but installed during the puppet run. The provider is never loaded at the same run as the feature is satisfied but on subsequents. Here is the sample of my provider and feature: *Feature* require ''puppet/util/feature'' Puppet.features.add(:json_compare, :libs => ["json-compare"]) *Provider* Puppet::Type.type(:selenium_node).provide(:json, :parent => Puppet::Provider::Selenium_node) do desc "Supports JSON as configuration method" confine :feature => [ :json, :json_compare, :yajl ] [...] Whenever I execute the first puppet run the following message is thrown when the provider is to be used: Error: /Stage[main]/Selenium::Modules::Server::Config/Selenium::Modules::Server::Config::Node[auto-bct]/Selenium_node[/opt/selenium/conf/nodes/auto-bct.json]: Provider json is not functional on this host Doing some traces through the execution I have found that the code is executed only once at the Provider loading but not anymore (even though the dependency is satisfied later on). May it be due to the fact that is a gem dependency and that must be loaded at current ruby execution? There is any restriction on using confine and setting that check to be lazy? Thanks. -- 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+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/91a0050d-ed78-40d9-b523-9d17e70c4ac9%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.