Jira (PUP-9790) undefined method `pip_version' with pip3 provider

37 views
Skip to first unread message

Maximilian Philipps (JIRA)

unread,
Jun 21, 2019, 4:37:04 AM6/21/19
to puppe...@googlegroups.com
Maximilian Philipps created an issue
 
Puppet / Bug PUP-9790
undefined method `pip_version' with pip3 provider
Issue Type: Bug Bug
Affects Versions: PUP 6.5.0
Assignee: Unassigned
Components: Types and Providers
Created: 2019/06/21 1:36 AM
Labels: regression type_and_provider
Priority: Major Major
Reporter: Maximilian Philipps

Puppet Version: 6.5.0
Puppet Server Version: 6.4.0
OS Name/Version: Debian stretch

After updating puppet-agent to 6.5.0 and the puppet server to 6.4.0 package resources with a pip3 provider throw the following error:

Debug: Prefetching pip3 resources for package                                                                                                                Debug: Executing '/usr/bin/pip3 --version'                                                                                                               
Debug: Executing '/usr/bin/pip3 freeze --all'                                                                                                                Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}                                            
Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}                                                             
Error: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3                                                                                                                                   
Info: Unknown failure using insync_values? on type: Package[checkdmarc] / property: ensure to compare values [:latest] and 4.1.10                            Error: /Stage[main]/Main/Node[redacted]/Mail::Dmarc_report[redacted]/Package[checkdmarc]/ensure: change from '4.1.10' to 'latest
' failed: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::Provide
rPip3

The code from the module is just:

package { 'checkdmarc':
 ensure => 'latest'
 , provider => 'pip3'
 , require => Package['python3-pip']
 }

 

$ /usr/bin/pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)

 

 

 

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Maximilian Philipps (JIRA)

unread,
Jun 21, 2019, 4:39:03 AM6/21/19
to puppe...@googlegroups.com
Maximilian Philipps updated an issue
Change By: Maximilian Philipps
*Puppet Version: 6.5.0*
*Puppet Server Version: 6.4.0*
*OS Name/Version: Debian stretch*


After updating puppet-agent to 6.5.0 and the puppet server to 6.4.0 package resources with a pip3 provider throw the following error:
{noformat}
Debug: Prefetching pip3 resources for package                     Debug packageDebug : Executing '/usr/bin/pip3 --version'                     

Debug: Executing '/usr/bin/pip3 freeze --all'                     Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}                     

Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}                     

Error: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3                     

Info: Unknown failure using insync_values? on type: Package[checkdmarc] / property: ensure to compare values [:latest] and 4.1. 10                     Error 10Error : /Stage[main]/Main/Node[redacted]/Mail::Dmarc_report[redacted]/Package[checkdmarc]/ensure: change from '4.1.10' to 'latest
' failed: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::
Provide
rPip3
ProviderPip3 {noformat}

The code from the module is just:
{noformat}
package { 'checkdmarc':
ensure => 'latest'
, provider => 'pip3'
, require => Package['python3-pip']
}{noformat}
 
{noformat}

$ /usr/bin/pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)
{noformat}
 

 

 

Maximilian Philipps (JIRA)

unread,
Jun 21, 2019, 4:41:03 AM6/21/19
to puppe...@googlegroups.com
Maximilian Philipps updated an issue
*Puppet Version: 6.5.0*
*Puppet Server Version: 6.4.0*
*OS Name/Version: Debian stretch*

After updating puppet-agent to 6.5.0 and the puppet server to 6.4.0 package resources with a pip3 provider throw the following error:
{noformat}Debug: Prefetching pip3 resources for packageDebug: Executing '/usr/bin/pip3 --version'

Debug: Executing '/usr/bin/pip3 freeze --all'Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}
Debug: Puppet::Type::Package::ProviderPip3: Prefetched instance: %{name} via command: %{command}
Error: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3
Info: Unknown failure using insync_values? on type: Package[checkdmarc] / property: ensure to compare values [:latest] and 4.1. 10Error 10 Error : /Stage[main]/Main/Node[redacted]/Mail::Dmarc_report[redacted]/Package[checkdmarc]/ensure: change from '4.1.10' to 'latest' failed: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3{noformat}

The code from the module is just:
{noformat}package { 'checkdmarc':
ensure => 'latest'
, provider => 'pip3'
, require => Package['python3-pip']
}{noformat}
 
{noformat}$ /usr/bin/pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)
{noformat}
 

 

 

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 4:13:04 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790
 
Re: undefined method `pip_version' with pip3 provider

root@azd3qyugalnzusl:~# puppet --version
6.5.0
root@azd3qyugalnzusl:~# cat manifest.pp
package { 'checkdmarc':
 ensure => 'latest'
 , provider => 'pip3'
 , require => Package['python3-pip']
}
 
package { 'python3-pip':
  ensure => latest
}
root@azd3qyugalnzusl:~# puppet apply manifest.pp
Notice: Compiled catalog for azd3qyugalnzusl.delivery.puppetlabs.net in environment production in 0.38 seconds
Notice: /Stage[main]/Main/Package[python3-pip]/ensure: created
Notice: /Stage[main]/Main/Package[checkdmarc]/ensure: created
Notice: Applied catalog in 33.69 seconds
root@azd3qyugalnzusl:~# puppet apply manifest.pp
Notice: Compiled catalog for azd3qyugalnzusl.delivery.puppetlabs.net in environment production in 0.38 seconds
Error: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3
Error: /Stage[main]/Main/Package[checkdmarc]/ensure: change from '4.1.10' to 'latest' failed: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3
Notice: Applied catalog in 2.51 seconds

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 4:13:04 PM6/24/19
to puppe...@googlegroups.com

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 6:34:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790
 
Re: undefined method `pip_version' with pip3 provider

This is reproducible in 5.5.x also:

root@geptbdpg2wqx9ro:~/puppet# bundle exec puppet --version
5.5.15
root@geptbdpg2wqx9ro:~/puppet# bundle exec puppet apply manifest.pp
Notice: Compiled catalog for geptbdpg2wqx9ro.delivery.puppetlabs.net in environment production in 0.44 seconds
Notice: /Stage[main]/Main/Package[python3-pip]/ensure: created
Notice: /Stage[main]/Main/Package[checkdmarc]/ensure: created
Notice: Applied catalog in 23.79 seconds
root@geptbdpg2wqx9ro:~/puppet# bundle exec puppet apply manifest.pp
Notice: Compiled catalog for geptbdpg2wqx9ro.delivery.puppetlabs.net in environment production in 0.45 seconds
Error: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3
Error: /Stage[main]/Main/Package[checkdmarc]/ensure: change from '4.1.10' to 'latest' failed: Could not get latest version: undefined method `pip_version' for Package[checkdmarc](provider=pip3)(command=default):Puppet::Type::Package::ProviderPip3
Notice: Applied catalog in 2.48 seconds

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 6:43:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790

git bisect:

12d6bd592be53ed3916e5b90491e07a71ea81169 is the first bad commit
commit 12d6bd592be53ed3916e5b90491e07a71ea81169
Author: tkishel <tki...@gmail.com>
Date:   Wed Apr 3 15:05:03 2019 -0700
 
    (PUP-1082) targetable package command
 
    With this commit, the pip package provider implements a targetable `command`.
 
:040000 040000 4cdce046cae40caf8a5af2141642a5dcf399821a 1a086aa517c99ab41b50d7304352246884b68a51 M	lib
:040000 040000 5a6a79c342317db8156f7491b628424efd0df938 80a3fd706224a9290bc0305c5b925e7ee61e5e48 M	spec

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 6:47:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790

diff --git a/lib/puppet/provider/package/pip.rb b/lib/puppet/provider/package/pip.rb
index ad4af1f532..a5cce507a2 100644
--- a/lib/puppet/provider/package/pip.rb
+++ b/lib/puppet/provider/package/pip.rb
@@ -106,7 +106,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
     command = resource_or_provider_command
     self.class.validate_command(command)
 
-    command_version = self.pip_version(command)
+    command_version = self.class.pip_version(command)
     if Puppet::Util::Package.versioncmp(command_version, '1.5.4') == -1
       latest_with_old_pip
     else

Thomas Kishel (JIRA)

unread,
Jun 24, 2019, 7:31:03 PM6/24/19
to puppe...@googlegroups.com
Thomas Kishel commented on Bug PUP-9790

Found, fixed, and spec updated: https://github.com/puppetlabs/puppet/pull/7593

Even when I added a receive count to the older/incorrect stub, the test passes?

allow(@provider).to receive(:pip_version).with("/fake/bin/pip").and_return('1.0.1').exactly(99).times

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 8:27:03 PM6/24/19
to puppe...@googlegroups.com

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 8:28:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Sprint: Platform Core KANBAN

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 8:30:04 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790
 
Re: undefined method `pip_version' with pip3 provider

The change had to be made in 5.5.x since that's where the original change was made. However, the regression was only released in 6.5.0, so that's the only fix version needed.

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 8:31:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Fix Version/s: PUP 6.y

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 9:07:03 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team: Coremunity Puppet Romania

Josh Cooper (JIRA)

unread,
Jun 24, 2019, 9:07:04 PM6/24/19
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Sprint: Platform Core KANBAN

Kenn Hussey (JIRA)

unread,
Jun 25, 2019, 12:12:04 PM6/25/19
to puppe...@googlegroups.com
Kenn Hussey updated an issue
Change By: Kenn Hussey
Fix Version/s: PUP 6.y
Fix Version/s: PUP 6.6.0

Maximilian Philipps (JIRA)

unread,
Jun 28, 2019, 4:41:03 AM6/28/19
to puppe...@googlegroups.com
Maximilian Philipps commented on Bug PUP-9790
 
Re: undefined method `pip_version' with pip3 provider

Josh Cooper: Is there any chance of getting an 6.5.1 release with this fixed?

Jean Bond (JIRA)

unread,
Jun 28, 2019, 12:58:02 PM6/28/19
to puppe...@googlegroups.com
Jean Bond updated an issue
 
Change By: Jean Bond
Labels: regression resolved-issue-added type_and_provider

Josh Cooper (JIRA)

unread,
Jun 28, 2019, 1:35:20 PM6/28/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9790
 
Re: undefined method `pip_version' with pip3 provider

Maximilian Philipps for various reasons we'll be releasing 6.6.0 early next week

Maximilian Philipps (JIRA)

unread,
Jul 1, 2019, 2:30:03 AM7/1/19
to puppe...@googlegroups.com

Gheorghe Popescu (JIRA)

unread,
Jul 3, 2019, 4:49:03 AM7/3/19
to puppe...@googlegroups.com
Gheorghe Popescu updated an issue
 
Change By: Gheorghe Popescu
Fix Version/s: PUP 6.4.3
Fix Version/s: PUP 6.0.10
Fix Version/s: PUP 5.5.15
Reply all
Reply to author
Forward
0 new messages