Issue #2198 has been updated by Jo Rhett.

FYI, I'd like to note some experiences I had working on the package management 
for cfengine, which dealt with this situation properly.

Honestly, I see no reason why the yum provider could not stack up the list of 
packages to add and the packages to remove and do them separately. This is what 
cfengine did, although we limited the size of the array because we found that 
rpm got stupid slow when the list was too big.

What we did not implement at that time, was the idea of a group operation. This 
could easily be a generic thing on the resource. You could then run the entire 
list of installs or removes for a specific group.  In reality, the "undefined" 
group would be one normal one, and then people could tag certain packages to be 
installed or uninstalled together with their own group name. This works very 
well for distributed groups, who can test that their package installs work 
properly together but aren't sure how they would relate to another group's 
changes.

In short, very simply:

1. For package providers who can handle more than one package at a time (new 
attribute) build an array of things to remove.
2. Each "group" (or whatever) would have its own array. Each array would be 
processed independently.
3. Uninstalls and Installs from the same group would be processed together, 
before the same from another group.

This change should be fairly simple to implement, consistent in usage across 
all of the providers (group/whatever could be used even by single-package 
providers), and be an improvement over what was available in cfengine2 -- which 
is ahead of puppet at this point in time.
----------------------------------------
Feature #2198: Install multiple package within a single call to the package 
manager
https://projects.puppetlabs.com/issues/2198#change-80045

Author: Stéphan Gorget
Status: Investigating
Priority: Normal
Assignee: 
Category: transactions
Target version: 
Affected Puppet version: 0.25.0
Keywords: communitypatch
Branch: 
http://github.com/phantez/puppet/commit/51ff88c950c172e6060ae63c1c71968e7898b462


During the configuration applying process the package manager is called for 
each package installation.
It is possible to reduce the number of calls to the package manager by 
gathering package installation and delayed some package installation.
Naturally, this modification should not break the dependency graph.



-- 
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