Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-2905

When installing PIP packages from sources different than pypi, the install and any notifies are triggered during every run.

    Details

      Description

      I have a plugin for a Python application, Sentry, which I am installing via GitHub like so:

          package{ 'sentry-hipchat':
            ensure   => 'cfac72b33dc8468745669ea65998a5b911e9aae0',
            provider => 'pip',
            source   => 'git+git://github.com/invisiblehand/sentry-hipchat.git'
          }
      

      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:

          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
      

      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:

          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]
      

      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

        Attachments

          Activity

            jsd-sla-details-panel

              People

              • Assignee:
                Unassigned
                Reporter:
                redmine.exporter redmine.exporter
              • Votes:
                6 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated: