On Tue, Dec 22, 2009 at 1:36 AM, Tony G. <tony...@gmail.com> wrote:
> Thanks for the comments Silviu, here what I found:
>
> I ran:
> /usr/sbin/puppetd -vdt --fqdn `hostname` --environment=development --test
>
> This is the excerpt of the output:
> debug:
> //Node[puppetclient.example.com]/common/common::nagios/Package[nrpe_custom]:
> Changing ensure
> debug:
> //Node[puppetclient.example.com]/common/common::nagios/Package[nrpe_custom]:
> 1 change(s)
> debug: Package[nrpe_custom](provider=yum): Ensuring => 01.1-10
> debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -d 0 -e 0
> -y install nrpe_custom-01.1-10'
> debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q
> nrpe_custom --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}|
> %{VERSION} %{RELEASE} %{ARCH}'
>
> err:
> //Node[puppetclient.example.com]/common/common::nagios/Package[nrpe_custom]/ensure:
> change from 01.2-20 to 01.1-10 failed: Could not update: Failed to update to
> version 01.1-10, got version 01.2-20 instead at
> /opt/puppet/development/classes/common.pp:61
>
> Running it manually I got:
>
> 1. /usr/bin/yum -d 0 -e 0 -y install nrpe_custom-01.1-10
> Package matching nrpe_custom-01.1-10.x86_64 already installed. Checking for
> update.
>
> Which is not true, but for some reason yum "believes" it is already
> installed
>
> 2. /bin/rpm -q nrpe_custom --nosignature --nodigest --qf "%{NAME}
> %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}"
> nrpe_custom 0 01.2 20 x86_64
>
> Then Puppet after matching the versions complains with the Error saying the
> update didn't happen.
>
> From my point of view this is an issue with yum that is not installing the
> version defined in puppet.
>
> As I previously said, if I do a /usr/bin/yum -d 0 -e 0 -y downgrade
> nrpe_custom-01.1-10 it successfully installs the defined version.
>
> My concern is that Puppet states that the handling of packages via yum is
> versionable(The provider is capable of interrogating the package database
> for installed version(s), and can select which out of a set of available
> versions of a package to install if asked), which I assumed puppet will find
> the way to exec yum to update *or downgrade* as in this case, but I guess I
> took that too literal, and perhaps that is the definition of what a
> versionable package handler as YUM does, but not exactly with Puppet.
>
> Wish I'll be wrong, but seems like I won't be able to downgrade packages via
> yum.
>
> Comments?
>

Downgrade via yum is done by a plugin that comes with some caveats
(like how do you "downgrade" a post script that creates a user in
version 2, but not in version 1). This plugin is also not supported on
some earlier versions of yum.

It might be possible to modify the yum provider in puppet to check for
the existence of the plugin, and if the requested version is less than
the installed version, call yum with the downgrade option. My
recommendation would be to open a feature request in the bug tracker
and let someone more versed in ruby and the provider than I am
comment.

Matt

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.


Reply via email to