Issue #4953 has been updated by Daniel Grafe.

File pattern_gnome added

Please don't merge. There is an issue with SUSE Patterns we observed. In short: 
You can't be sure that all packages defined by the pattern really have been 
installed after running puppet. The result depends on already installed 
packages.

Please see the exemplary SUSE pattern attached. It's the gnome pattern and it 
defines what SUSE thinks you should have installed when using the gnome 
desktop. It says you should have the x11 pattern installed (+Req section) plus 
he following list of packages.

But the problem is: The list of packages is split into required (+Prq) and 
recommended (+Prc) packages. And to decide if the pattern is already installed 
zypper only checks for the required packages. If these packages are installed 
zypper will stop doing nothing even though a lot of recommended packages are 
still missing.

On a clean system all of the packages will be installed as expected and your 
fine. But we had the situation that we were configuring the gdm autologin 
feature with puppet and we set a dependency on the gdm package. Puppet was then 
scheduling this package resource before installing the gnome pattern. We then 
suddenly had the packages defined as required by the pattern already installed 
and zypper was not installing the gnome pattern.

Puppet was running non deterministically at that time and we were surprised 
that on several installations the outcome is so different. But even running 
deterministically will not help us since puppet can still schedule package 
installations before scheduling the patterns.

Our (internal) customers currently request the installations of patterns so we 
can't avoid them. We are working around it by defining a dummy notify resource 
and we are defining "before" and "require" dependencies to this resources so 
that patterns will always be installed before running the notify reasource and 
ordinary packages will always run after this notify resource.

We can live with this work around. But it's up to you to decide whether or not 
this SUSE pattern flaw is acceptable and if you want to support this feature.
----------------------------------------
Feature #4953: Zypper Provider should support Patterns
https://projects.puppetlabs.com/issues/4953

Author: Daniel Grafe
Status: Requires CLA to be signed
Priority: Normal
Assignee: Daniel Grafe
Category: package
Target version: 
Affected Puppet version: 2.6.0
Keywords: 
Branch: 


SUSE defines software package lists called patterns. These patterns are 
combining related packages to useful software collections. For instance, the 
pattern "Basis-Devel" would give you the autotools, gcc, kernel sources etc...

Zypper can be used to install all packages from these lists by installing the 
pattern when setting the type explicitely to pattern. For example: zypper 
install -t pattern Basis-Devel

When using the zypper provider in puppet it would be nice to be able to install 
these patterns. Please find attached our quick modification of the provider. It 
will detect if the given name identifies a pattern or a package and will call 
zypper with the appropriate flags.


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