Issue #1238 has been updated by Gerard Bernabeu.

After some failed attempts to workaround this using stages I found a (dirty) 
workaround playing with failing dependencies. The first run will always fail, 
but later on it will work:

          $reporpm='XXX'
          package { "$reporpm": ensure => latest; } #On updates it will not be 
an issue because the same prefetching will prevent puppet to see that it needs 
to change 'enabled' anyway.

          exec{"/usr/bin/yum -y install $reporpm; /bin/false": #We have to do 
this due to bug http://projects.puppetlabs.com/issues/1238. This is a 
workaround that will make the requirements fail if reporpm is about to be 
installed in that run. This way we do not suffer from the prefetching bug, 
because the repo will be 'tuned' on the next run, not in this.
                before => Package["$reporpm"],
                unless => "/bin/rpm -q $reporpm",
          }

        yumrepo {
          'XXX':
            enabled  => "1", #We want to ensure that we get updates
            require => [Package["$reporpm"],Exec["/usr/bin/yum -y install 
$reporpm; /bin/false"]],
        }

Hope you find it useful.
----------------------------------------
Bug #1238: strange yumrepo/package interaction
https://projects.puppetlabs.com/issues/1238#change-82605

Author: BMDan -
Status: Accepted
Priority: Normal
Assignee: David  Lutterkort
Category: yumrepo
Target version: 
Affected Puppet version: 
Keywords: 
Branch: 


Yumrepo appears to be checking file existence before allowing the package 
command to complete, meaning that it creates a file containing only "[remi]" 
and "enabled=1", overwriting the file that the RPM installed.

Manifests, additional debug output, etc., available upon request.  Just tell me 
what you need to know.  Workarounds especially welcomed.  Puppet v. 0.24.4, 
running with --debug --test, on Ruby 1.8.6.114-1, compiled from source with 
default options.

<pre>
debug: //Node[default]/remi_enabled/Yumrepo[remi]/require: requires 
Package[remi-release-5-4.el5.remi]
</pre>
...
<pre>
debug: Puppet::Type::Package::ProviderRpm: Not suitable: false value
debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm -q 
remi-release-5-4.el5.remi --nosignature --nodigest --qf %{NAME} 
%|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}'
debug: /Package[remi-release-5-4.el5.remi]: Changing ensure
debug: /Package[remi-release-5-4.el5.remi]: 1 change(s)
debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm -i --oldpackage 
http://rpms.famillecollet.com/el5.x86_64/remi-release-5-4.el5.remi.noarch.rpm'
notice: /Package[remi-release-5-4.el5.remi]/ensure: created
info: create new repo remi in file /etc/yum.repos.d/remi.repo
debug: //Node[default]/remi_enabled/Yumrepo[remi]: Changing enabled
debug: //Node[default]/remi_enabled/Yumrepo[remi]: 1 change(s)
notice: //Node[default]/remi_enabled/Yumrepo[remi]/enabled: defined 'enabled' 
as '1'
info: Filebucket[/var/lib/puppet/clientbucket]: Adding 
/etc/yum.repos.d/remi.repo(18f7009978e772c9c646b9410fa3a8b6)
</pre>


-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to