Issue #6907 has been updated by Jacob Helwig.
This approach concerns me as well. While it looks like it will prevent Puppet from blowing up because of missing commands, I also share Stefan's concerns. It's more complex change, but it seems like a better over-all solution would be to move checking for provider suitability and pre-fetching to as late as possible (at the time we attempt to apply the first resource of that type/provider combination). If the (or a) provider is not available at this time then move the resource off into a "retry these later" list, repopulating the ready list from this "do it later" list once the ready list has been exhausted (re-checking for suitability as we try again to re-evaluate the resources). On every pass through the ready list we would still move things off into the "do it later" list, re-filling the ready list once it's exhausted until we have evaluated all resources (Yay!), or detect that we are no longer removing resources from the ready list by marking them as done. If we've detected that we're no longer removing resources form the ready list by marking them as done then the resources should fail as they would have before with a message about no suitable providers being available. If we lazily evaluate suitability and move prefetching to after we've lazily determined that a particular provider is suitable, then it should take care of Stefan's concerns, allow people to have puppet install non-standard packages needed by providers, and take care of the case where things are provided by pluginsync. ---------------------------------------- Feature #6907: Ensure providers can be used in the same puppet run that their prerequisites are delivered in https://projects.puppetlabs.com/issues/6907 Author: Nigel Kersten Status: In Topic Branch Pending Review Priority: Urgent Assignee: Jacob Helwig Category: provider Target version: 2.7.x Affected Puppet version: Keywords: Branch: https://github.com/lak/puppet/tree/tickets/2.7.x/6907-pluginsync_and_providers This is possibly more accurately described as a collection of bug fixes, as we've aimed to fix this several times, however I'm characterizing this as a feature, and we're going to associate related bugs with it. Essentially we want to be able to use a provider in the same run that it's prerequisites (like :commands and paths) are delivered in. You should not have to run puppet twice to use a provider. We're aiming this at 2.6.x initially, but if it turns out that we need significant plumbing work to make this happen, we are re-targeting at Statler. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" 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-bugs?hl=en.
