Issue #3572 has been updated by Eric Drechsel.

Thanks for the quick response James. This is a big enough issue for me that I'm 
willing to attach myself to it long term to help create and review patches 
(maybe my "junior job" to learn puppet's architecture)

is it architecturally feasible to have a package provider which takes an 
environment as an argument, the default being to install into the global python 
environment? In this case the idea of an environment would have to be part of 
the plugin providing the package provider, would it make sense for 
python::virtualenv to be a type, rather than a define?

----------------------------------------
Feature #3572: manage python virtualenvs
http://projects.puppetlabs.com/issues/3572

Author: Eric Drechsel
Status: Needs more information
Priority: Normal
Assigned to: 
Category: package
Target version: 
Affected version: development
Keywords: python pip
Branch: 


I've been puzzling over how to do python package management via puppet for 
awhile now. 

The obvious bit is to implement a package provider for python packages using 
pip as the backend, using the gem provider as a template. The problem is that 
most python developers (people who care enough to not just use their 
distribution's python library packages) use VirtualEnv to maintain separate 
environments per deployed application. With virtualenv, there is a 1-many 
correspondence between nodes and python environments, which is incompatible 
with package providers as I understand them.

Can some Puppet core person comment on how they would ideally model managed 
virtualenvs under puppet?

just to get things working I'm planning to have two defines:

python::virtualenv(root, ...)

 * just makes an empty env

python::app(root, source (vcs, tarball, or etc), virtualenv (could be None), 
requirements (list or filename within package, in "pip freeze" format))

 * install a python app, run pip to install dependency list
 * derivative defines to config WSGI apps etc

Here are some references:

 * http://github.com/rcrowley/puppet-python/blob/master/manifests/init.pp 
(undocumented)



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to