I have a plugin for a Python application, Sentry, which I am installing via GitHub like so:
{code:puppet} package{ 'sentry-hipchat': ensure => 'cfac72b33dc8468745669ea65998a5b911e9aae0', provider => 'pip', source => 'git+git://github.com/invisiblehand/sentry-hipchat.git' } {code} When running the Puppet agent with {{ --debug --trace --test }} , I can see Puppet checks the output of 'pip freeze', however the output from this command, for packages installed from GitHub seems to differ, and I don't believe it will match the regex used here:
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/pip.rb#L16-L22
Here is some sample output from 'pip freeze' on my system:
{noformat} raven==3.5.1 redis==2.8.0 sentry==6.3.3 -e git://github.com/invisiblehand/sentry-hipchat.git@cfac72b33dc8468745669ea65998a5b911e9aae0#egg=sentry_hipchat-master setproctitle==1.1.8 simplejson==3.3.1 {noformat} I'm using Puppet 2.7.13, installed via RubyGems, on Ubuntu 12.04 LTS 64-bit, running Ruby 1.9.3p448.
The output from the Puppet agent run is as follows:
{noformat} debug: Puppet::Type::Package::ProviderPip: Executing '/usr/bin/pip freeze' debug: Puppet::Type::Package::ProviderPip: Executing '/usr/bin/pip freeze' debug: Puppet::Type::Package::ProviderPip: Executing '/usr/bin/pip install -q -e git+git://github.com/invisiblehand/sentry-hipchat.git@cfac72b33dc8468745669ea65998a5b911e9aae0#egg=sentry-hipchat' notice: /Stage[main]/Ih-sentry/Package[sentry-hipchat]/ensure: created info: /Stage[main]/Ih-sentry/Package[sentry-hipchat]: Scheduling refresh of Service[sentry] info: /Stage[main]/Ih-sentry/Package[sentry-hipchat]: Scheduling refresh of Service[sentry-udp] info: /Stage[main]/Ih-sentry/Package[sentry-hipchat]: Scheduling refresh of Service[sentry-celery] {noformat} As you can see, the package is 'created', which triggers a refresh of the services, even though there is no need.
Does anyone have any advice?
Thanks!
Ryan
|
|