Issue #8263 has been updated by Dan Bode.

The way to work around this is to not compose classes inside of classes that 
you wish to apply stages to:

in the following code (from your example)

<pre>

class yum {
    include repos::media
    include repos::tmz-puppet
    include repos::ciupicri
    include cache

    case $operatingsystem {
        "CentOS": { include repos::epel5 }
        "Scientific": { include repos::epel6 }
    }
}

</pre>

the classes contained inside of the yum class will not have the stages applied 
to them.

the fix is to remove all of the uses of include from the yum class and inline 
all of the resources  the actual yum class
----------------------------------------
Bug #8263: stage setting does not apply to included classes
https://projects.puppetlabs.com/issues/8263

Author: Cristian Ciupitu
Status: Needs More Information
Priority: Normal
Assignee: Dan Bode
Category: stages
Target version: 
Affected Puppet version: 2.6.9
Keywords: 
Branch: 


I want to configure yum ("yum.conf", repos, mount NFS shares) before installing 
packages. For this I'm using the new stages feature.

site.pp:

    stage { "yum": before => Stage["main"] }

nodes.pp:

    node "intovps3.test-vms.tld" {
        ...
        include postfix
        include dovecot
        ...
        class { "yum": stage => yum }
    }

The yum class is part of [this puppet 
module](https://github.com/ciupicri/puppet-yum).

    # puppet agent --test --color=none
    info: Retrieving plugin
    info: Loading facts in mysql_version
    info: Loading facts in mysql_exists
    info: Loading facts in mysql_version
    info: Loading facts in mysql_exists
    info: Caching catalog for intovps3.test-vms.tld
    info: Applying configuration version '1309980613'
    info: create new repo epel in file /etc/yum.repos.d/epel.repo
    notice: /Stage[yum]/Yum::Repos::Epel5/Yumrepo[epel]/descr: descr changed '' 
to 'Extra Packages for Enterprise Linux 5 - $basearch'
    notice: /Stage[yum]/Yum::Repos::Epel5/Yumrepo[epel]/mirrorlist: mirrorlist 
changed '' to 
'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch'
    notice: /Stage[yum]/Yum::Repos::Epel5/Yumrepo[epel]/enabled: enabled 
changed '' to '1'
    notice: /Stage[yum]/Yum::Repos::Epel5/Yumrepo[epel]/gpgcheck: gpgcheck 
changed '' to '1'
    notice: /Stage[yum]/Yum::Repos::Epel5/Yumrepo[epel]/gpgkey: gpgkey changed 
'' to 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL'
    info: changing mode of /etc/yum.repos.d/epel.repo from 600 to 644
    notice: /Stage[main]/Dkim-milter::Install/Package[dkim-milter]/ensure: 
created
    notice: /File[/etc/mail/dkim-milter/keys/default.private]/ensure: defined 
content as '{md5}67e26b82a9196c93f18750e942374fb7'
    info: /File[/etc/mail/dkim-milter/keys]: Scheduling refresh of 
Service[dkim-milter]
    --- /etc/mail/dkim-milter/keys/keylist      2010-02-02 20:44:22.000000000 
+0200
    +++ /tmp/puppet-file.6066.0 2011-07-06 22:55:08.795299087 +0300
    @@ -1,2 +1,3 @@
     # *:example.com:selector
    +*:intovps3.test-vms.tld:/etc/mail/dkim-milter/keys/default
    notice: /File[/etc/mail/dkim-milter/keys/keylist]/content: content changed 
'{md5}ab6bb498c4a4a84026122f15b88b799a' to 
'{md5}8dd5d6216f01ed78f4f3cca731f69a72'
    notice: /File[/etc/mail/dkim-milter/keys/keylist]/mode: mode changed '644' 
to '600'
    info: /File[/etc/mail/dkim-milter/keys]: Scheduling refresh of 
Service[dkim-milter]
    info: /File[/etc/mail/dkim-milter/keys]: Scheduling refresh of 
Service[dkim-milter]
    notice: /File[/var/run/dkim-milter]/mode: mode changed '700' to '750'
    info: /File[/var/run/dkim-milter]: Scheduling refresh of Service[postfix]
    --- /etc/mail/dkim-milter/dkim-filter.conf  2010-02-02 20:44:22.000000000 
+0200
    +++ /tmp/puppet-file.6066.0 2011-07-06 22:55:09.615174447 +0300
    @@ -553,7 +553,7 @@
     ##  The system has its own default which will be used (usually 022).
    -# UMask                    022
    +UMask                      002
     ##         default (none)
    notice: /File[/etc/mail/dkim-milter/dkim-filter.conf]/content: content 
changed '{md5}76310fc7aef3edf31c8a2d4a415ffa56' to 
'{md5}a048231cf05d16700b5ef04e2bac19b0'
    info: /File[/etc/mail/dkim-milter/dkim-filter.conf]: Scheduling refresh of 
Service[dkim-milter]
    notice: /Stage[main]/Dkim-milter::Service/Service[dkim-milter]/ensure: 
ensure changed 'stopped' to 'running'
    notice: /Stage[main]/Dkim-milter::Service/Service[dkim-milter]: Triggered 
'refresh' from 4 events
    info: create new repo media in file /etc/yum.repos.d/media.repo
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/descr: descr 
changed '' to 'CentOS 5.6 - i386 media'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/baseurl: 
baseurl changed '' to 'file:///mnt/misc/CentOS-5.6-i386-DVD'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/enabled: 
enabled changed '' to '1'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/gpgcheck: 
gpgcheck changed '' to '0'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/gpgkey: gpgkey 
changed '' to 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch'
    notice: 
/Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/metadata_expire: 
metadata_expire changed '' to '-1'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/priority: 
priority changed '' to '1'
    notice: /Stage[main]/Yum::Repos::Media::Base/Yumrepo[media]/cost: cost 
changed '' to '500'
    info: changing mode of /etc/yum.repos.d/media.repo from 600 to 644
    notice: 
/Stage[main]/Yum::Repos::Ciupicri::Base/Mount[/mnt/misc/CentOS-ciupicri-repo]/ensure:
 ensure changed 'unmounted' to 'mounted'
    info: 
/Stage[main]/Yum::Repos::Ciupicri::Base/Mount[/mnt/misc/CentOS-ciupicri-repo]: 
Scheduling refresh of Mount[/mnt/misc/CentOS-ciupicri-repo]
    info: Mount[/mnt/misc/CentOS-ciupicri-repo](provider=parsed): Remounting
    notice: 
/Stage[main]/Yum::Repos::Ciupicri::Base/Mount[/mnt/misc/CentOS-ciupicri-repo]: 
Triggered 'refresh' from 1 events
    info: 
/Stage[main]/Yum::Repos::Ciupicri::Base/Mount[/mnt/misc/CentOS-ciupicri-repo]: 
Scheduling refresh of Mount[/mnt/misc/CentOS-ciupicri-repo]
    notice: 
/Stage[main]/Yum::Repos::Media::Base/Mount[/mnt/misc/CentOS-5.6-i386-DVD]/ensure:
 ensure changed 'unmounted' to 'mounted'
    info: 
/Stage[main]/Yum::Repos::Media::Base/Mount[/mnt/misc/CentOS-5.6-i386-DVD]: 
Scheduling refresh of Mount[/mnt/misc/CentOS-5.6-i386-DVD]
    info: Mount[/mnt/misc/CentOS-5.6-i386-DVD](provider=parsed): Remounting
    notice: 
/Stage[main]/Yum::Repos::Media::Base/Mount[/mnt/misc/CentOS-5.6-i386-DVD]: 
Triggered 'refresh' from 1 events
    info: 
/Stage[main]/Yum::Repos::Media::Base/Mount[/mnt/misc/CentOS-5.6-i386-DVD]: 
Scheduling refresh of Mount[/mnt/misc/CentOS-5.6-i386-DVD]
    notice: /Stage[main]/Yum::Cache::Base/Mount[/mnt/misc/yum-packages]/ensure: 
ensure changed 'unmounted' to 'mounted'
    info: /Stage[main]/Yum::Cache::Base/Mount[/mnt/misc/yum-packages]: 
Scheduling refresh of Mount[/mnt/misc/yum-packages]
    info: Mount[/mnt/misc/yum-packages](provider=parsed): Remounting
    notice: /Stage[main]/Yum::Cache::Base/Mount[/mnt/misc/yum-packages]: 
Triggered 'refresh' from 1 events
    info: /Stage[main]/Yum::Cache::Base/Mount[/mnt/misc/yum-packages]: 
Scheduling refresh of Mount[/mnt/misc/yum-packages]
    info: create new repo tmz-puppet in file /etc/yum.repos.d/tmz-puppet.repo
    notice: /Stage[main]/Yum::Repos::Tmz-puppet::El/Yumrepo[tmz-puppet]/descr: 
descr changed '' to 'Puppet for EL $releasever - $basearch'
    notice: 
/Stage[main]/Yum::Repos::Tmz-puppet::El/Yumrepo[tmz-puppet]/baseurl: baseurl 
changed '' to 
'http://tmz.fedorapeople.org/repo/puppet/epel/$releasever/$basearch'
    notice: 
/Stage[main]/Yum::Repos::Tmz-puppet::El/Yumrepo[tmz-puppet]/enabled: enabled 
changed '' to '1'
    notice: 
/Stage[main]/Yum::Repos::Tmz-puppet::El/Yumrepo[tmz-puppet]/gpgcheck: gpgcheck 
changed '' to '1'
    notice: /Stage[main]/Yum::Repos::Tmz-puppet::El/Yumrepo[tmz-puppet]/gpgkey: 
gpgkey changed '' to 'http://tmz.fedorapeople.org/repo/RPM-GPG-KEY-tmz'
    info: changing mode of /etc/yum.repos.d/tmz-puppet.repo from 600 to 644
    notice: /Stage[main]/Dovecot::Install/Package[dovecot]/ensure: created
    --- /etc/dovecot.conf       2009-01-21 10:22:57.000000000 +0200
    +++ /tmp/puppet-file.6066.0 2011-07-06 22:55:26.051675719 +0300
    @@ -18,6 +18,7 @@
     # Protocols we want to be serving: imap imaps pop3 pop3s
     ...
    +  }
     }
     
     # If you wish to use another authentication server than dovecot-auth, you 
can
    notice: /File[/etc/dovecot.conf]/content: content changed 
'{md5}e216b1f63a2c69703b2dad15f39fca25' to 
'{md5}839cee0cdc3dd48f40c53d8feb61d568'
    info: /File[/etc/dovecot.conf]: Scheduling refresh of Service[dovecot]
    notice: /Stage[main]/Dovecot::Service/Service[dovecot]/ensure: ensure 
changed 'stopped' to 'running'
    notice: /Stage[main]/Dovecot::Service/Service[dovecot]: Triggered 'refresh' 
from 1 events
    notice: /Stage[main]/Postfix::Install/Package[postfix]/ensure: created
    notice: /File[/etc/postfix/sender_access]/ensure: defined content as 
'{md5}5a6132594bec1fbe75f1d7dd39381f0f'
    info: /File[/etc/postfix/sender_access]: Scheduling refresh of Exec[postmap 
/etc/postfix/sender_access]
    info: /File[/etc/postfix/sender_access]: Scheduling refresh of 
Service[postfix]
    --- /etc/postfix/master.cf  2011-05-31 19:34:17.000000000 +0300
    +++ /tmp/puppet-file.6066.0 2011-07-06 22:55:45.765678735 +0300
    @@ -7,9 +7,11 @@
     #               (yes)   (yes)   (yes)   (never) (100)
     ...
     #  -o smtpd_tls_wrappermode=yes
    notice: /File[/etc/postfix/master.cf]/content: content changed 
'{md5}d4534eeb2ca247e72ac14d615bd26e3a' to 
'{md5}d297f678311fc3e8e2a650e1f6a1cc6e'
    info: /File[/etc/postfix/master.cf]: Scheduling refresh of Service[postfix]
    --- /etc/postfix/main.cf    2011-05-31 19:34:17.000000000 +0300
    +++ /tmp/puppet-file.6066.0 2011-07-06 22:55:46.505566255 +0300
    @@ -107,7 +107,7 @@
     #inet_interfaces = all
     ...
     +non_smtpd_milters = $smtpd_milters
    notice: /File[/etc/postfix/main.cf]/content: content changed 
'{md5}ea98973368322dcd5358082dc011038b' to 
'{md5}c2b893f924f081a9d0e40e61ce0f1636'
    info: /File[/etc/postfix/main.cf]: Scheduling refresh of Service[postfix]
    notice: 
/Stage[main]/Postfix::Config::Postmaps/Postfix::Postmap_config[sender_access]/Postfix::Postmap[sender_access]/Exec[postmap
 /etc/postfix/sender_access]: Triggered 'refresh' from 1 events
    info: 
/Stage[main]/Postfix::Config::Postmaps/Postfix::Postmap_config[sender_access]/Postfix::Postmap[sender_access]/Exec[postmap
 /etc/postfix/sender_access]: Scheduling refresh of Service[postfix]
    notice: /File[/etc/postfix/sender_login]/ensure: defined content as 
'{md5}d41d8cd98f00b204e9800998ecf8427e'
    info: /File[/etc/postfix/sender_login]: Scheduling refresh of Exec[postmap 
/etc/postfix/sender_login]
    info: /File[/etc/postfix/sender_login]: Scheduling refresh of 
Service[postfix]
    notice: 
/Stage[main]/Postfix::Config::Sasl/Postfix::Postmap_config[sender_login]/Postfix::Postmap[sender_login]/Exec[postmap
 /etc/postfix/sender_login]: Triggered 'refresh' from 1 events
    info: 
/Stage[main]/Postfix::Config::Sasl/Postfix::Postmap_config[sender_login]/Postfix::Postmap[sender_login]/Exec[postmap
 /etc/postfix/sender_login]: Scheduling refresh of Service[postfix]
    notice: /Stage[main]/Postfix::Service/Service[postfix]/ensure: ensure 
changed 'stopped' to 'running'
    notice: /Stage[main]/Postfix::Service/Service[postfix]: Triggered 'refresh' 
from 7 events
    notice: /Stage[main]/Yum::Cache::Base/Mount[/var/cache/yum]/ensure: ensure 
changed 'unmounted' to 'mounted'
    info: /Stage[main]/Yum::Cache::Base/Mount[/var/cache/yum]: Scheduling 
refresh of Mount[/var/cache/yum]
    info: Mount[/var/cache/yum](provider=parsed): Remounting
    notice: /Stage[main]/Yum::Cache::Base/Mount[/var/cache/yum]: Triggered 
'refresh' from 1 events
    info: /Stage[main]/Yum::Cache::Base/Mount[/var/cache/yum]: Scheduling 
refresh of Mount[/var/cache/yum]
    notice: Finished catalog run in 62.04 seconds

As you can see some classes of the **yum** module are run in the **main** stage 
and after some packages have been already installed, e.g. dkim-milter.

I'm using puppet-2.6.9-1.el5 on the client and 
puppet-server-2.6.9-1.fc15.noarch on the server.


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