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.

Reply via email to