Jira (PUP-10526) pip3 package provider fails manage multiple environments

37 views
Skip to first unread message

Vadym Chepkov (Jira)

unread,
May 21, 2020, 11:34:04 AM5/21/20
to puppe...@googlegroups.com
Vadym Chepkov created an issue
 
Puppet / Bug PUP-10526
pip3 package provider fails manage multiple environments
Issue Type: Bug Bug
Assignee: Unassigned
Created: 2020/05/21 8:33 AM
Priority: Normal Normal
Reporter: Vadym Chepkov

Puppet Version: 6.15.0
Puppet Server Version: 6.11.1

OS Name/Version: CentOS 8

Desired Behavior:

Would like to manage multiple python environments with pip3 package provider

Actual Behavior:

Catalog fails if you try to manage multiple environments

Here is a reproducer:

 

exec { 'python env1':
  command => "/bin/python3 -m venv --clear /opt/env1 && /opt/env1/bin/pip3 install --upgrade pip && /opt/env1/bin/pip3 install --upgrade setuptools",
  creates => "/opt/env1/bin/activate",
}
package { 'cfn-lint':
  ensure   => latest,
  provider => 'pip3',
  command  => '/opt/env1/bin/pip3',
}
exec { 'python env2':
  command => "/bin/python3 -m venv --clear /opt/env2 && /opt/env2/bin/pip3 install --upgrade pip && /opt/env2/bin/pip3 install --upgrade setuptools",
  creates => "/opt/env2/bin/activate",
}
package { 'puppetboard':
  ensure   => latest,
  provider => 'pip3',
  command  => '/opt/env2/bin/pip3',
}

Error: Could not prefetch package provider 'pip3': Provider pip3 package command '/opt/env2/bin/pip3' does not exist on this host
Error: Failed to apply catalog: Provider pip3 package command '/opt/env2/bin/pip3' does not exist on this host

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo

Josh Cooper (Jira)

unread,
May 21, 2020, 6:12:04 PM5/21/20
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
May 22, 2020, 3:45:04 PM5/22/20
to puppe...@googlegroups.com

Mihai Buzgau (Jira)

unread,
May 26, 2020, 10:44:03 AM5/26/20
to puppe...@googlegroups.com

Bogdan Irimie (Jira)

unread,
Nov 5, 2020, 3:51:05 AM11/5/20
to puppe...@googlegroups.com

Bogdan Irimie (Jira)

unread,
Nov 5, 2020, 3:52:05 AM11/5/20
to puppe...@googlegroups.com

Ciprian Badescu (Jira)

unread,
Oct 29, 2021, 5:19:01 AM10/29/21
to puppe...@googlegroups.com
Ciprian Badescu updated an issue
Change By: Ciprian Badescu
Sprint: ready for triage
This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo

Ciprian Badescu (Jira)

unread,
Oct 29, 2021, 5:20:02 AM10/29/21
to puppe...@googlegroups.com

Ciprian Badescu (Jira)

unread,
Nov 2, 2021, 10:39:05 AM11/2/21
to puppe...@googlegroups.com
Ciprian Badescu commented on Bug PUP-10526
 
Re: pip3 package provider fails manage multiple environments

The issues is caused by how providers are implemented: first time a pip3 package resource is evaluated will execute a pre-fetche on provider and the existence of command is checked at this step.

This could be solved by add dependency from all pip3 packages to all `env creation` resources. Something like this:

exec { 'python env1':
  command => "/bin/python3 -m venv --clear /opt/env1 && /opt/env1/bin/pip3 install --upgrade pip && /opt/env1/bin/pip3 install --upgrade setuptools",
  creates => "/opt/env1/bin/activate",
}
package { 'cfn-lint':
  ensure   => latest,
  provider => 'pip3',
  command  => '/opt/env1/bin/pip3',
  require  => [Exec['python env1'],Exec['python env2']],
}
exec { 'python env2':
  command => "/bin/python3 -m venv --clear /opt/env2 && /opt/env2/bin/pip3 install --upgrade pip && /opt/env2/bin/pip3 install --upgrade setuptools",
  creates => "/opt/env2/bin/activate",
}
package { 'puppetboard':
  ensure   => latest,
  provider => 'pip3',
  command  => '/opt/env2/bin/pip3',
  require  => [Exec['python env1'],Exec['python env2']],
}

 

Ciprian Badescu (Jira)

unread,
Nov 8, 2021, 3:48:02 AM11/8/21
to puppe...@googlegroups.com

Ciprian Badescu (Jira)

unread,
Nov 9, 2021, 6:47:03 AM11/9/21
to puppe...@googlegroups.com
 
Re: pip3 package provider fails manage multiple environments

Hi Vadym Chepkov, will a solution like the above one help in your use case?

Ciprian Badescu (Jira)

unread,
Dec 13, 2021, 6:40:01 AM12/13/21
to puppe...@googlegroups.com
Ciprian Badescu assigned an issue to Vadym Chepkov
 
Change By: Ciprian Badescu
Assignee: Vadym Chepkov
This message was sent by Atlassian Jira (v8.20.2#820002-sha1:829506d)
Atlassian logo

Josh Cooper (Jira)

unread,
Oct 6, 2022, 12:50:01 AM10/6/22
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team: Night's Watch Phoenix
This message was sent by Atlassian Jira (v8.20.11#820011-sha1:0629dd8)
Atlassian logo

Josh Cooper (Jira)

unread,
Oct 6, 2022, 12:50:03 AM10/6/22
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Jan 17, 2023, 11:49:03 PM1/17/23
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-10526
 
Re: pip3 package provider fails manage multiple environments

The same issue was reported in PUP-11681, so I'm going to close this as well.

Reply all
Reply to author
Forward
0 new messages