From 23a70eee76ae051b9f67ec7e28c0078ad28b1755 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:04:55 -0700 Subject: [PATCH 1/6] Add support for passing pip arguments (e.g. --exists-action) via config --- providers/django.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/django.rb b/providers/django.rb index bf66e59..f4facd5 100644 --- a/providers/django.rb +++ b/providers/django.rb @@ -58,7 +58,7 @@ if new_resource.requirements Chef::Log.info("Installing using requirements file: #{new_resource.requirements}") pip_cmd = ::File.join(new_resource.virtualenv, 'bin', 'pip') - execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements}" do + execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{new_resource.pip_arguments}" do cwd new_resource.release_path # seems that if we don't set the HOME env var pip tries to log to /root/.pip, which fails due to permissions # setting HOME also enables us to control pip behavior on per-project basis by dropping off a pip.conf file there From 20c452956c375598080d98e2f01f581d476f6fb6 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:08:26 -0700 Subject: [PATCH 2/6] Fix empty pip_arguments handling --- providers/django.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/providers/django.rb b/providers/django.rb index f4facd5..31f943f 100644 --- a/providers/django.rb +++ b/providers/django.rb @@ -58,7 +58,8 @@ if new_resource.requirements Chef::Log.info("Installing using requirements file: #{new_resource.requirements}") pip_cmd = ::File.join(new_resource.virtualenv, 'bin', 'pip') - execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{new_resource.pip_arguments}" do + pip_arguments = new_resource.pip_arguments_is_a?(String) : new_resources.pip_arguments : "" + execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{pip_arguments}" do cwd new_resource.release_path # seems that if we don't set the HOME env var pip tries to log to /root/.pip, which fails due to permissions # setting HOME also enables us to control pip behavior on per-project basis by dropping off a pip.conf file there From 89249743fa4c773608b8d29cc12eb3d97d6ab232 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:09:57 -0700 Subject: [PATCH 3/6] Fix typo --- providers/django.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/django.rb b/providers/django.rb index 31f943f..3bc1fe4 100644 --- a/providers/django.rb +++ b/providers/django.rb @@ -58,7 +58,7 @@ if new_resource.requirements Chef::Log.info("Installing using requirements file: #{new_resource.requirements}") pip_cmd = ::File.join(new_resource.virtualenv, 'bin', 'pip') - pip_arguments = new_resource.pip_arguments_is_a?(String) : new_resources.pip_arguments : "" + pip_arguments = new_resource.pip_arguments_is_a?(String) : new_resource.pip_arguments : "" execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{pip_arguments}" do cwd new_resource.release_path # seems that if we don't set the HOME env var pip tries to log to /root/.pip, which fails due to permissions From ca6bb2b141470162eb4a754a156cf8297859fbec Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:10:42 -0700 Subject: [PATCH 4/6] Fix another expression typo --- providers/django.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/django.rb b/providers/django.rb index 3bc1fe4..456a417 100644 --- a/providers/django.rb +++ b/providers/django.rb @@ -58,7 +58,7 @@ if new_resource.requirements Chef::Log.info("Installing using requirements file: #{new_resource.requirements}") pip_cmd = ::File.join(new_resource.virtualenv, 'bin', 'pip') - pip_arguments = new_resource.pip_arguments_is_a?(String) : new_resource.pip_arguments : "" + pip_arguments = new_resource.pip_arguments_is_a?(String) ? new_resource.pip_arguments : "" execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{pip_arguments}" do cwd new_resource.release_path # seems that if we don't set the HOME env var pip tries to log to /root/.pip, which fails due to permissions From 23067ce1ed7079dc011c999eaec2637c0452f9a4 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:13:08 -0700 Subject: [PATCH 5/6] Add pip_arguments attribute --- resources/django.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/django.rb b/resources/django.rb index 7282df5..d9e4f2e 100644 --- a/resources/django.rb +++ b/resources/django.rb @@ -30,6 +30,7 @@ attribute :local_settings_file, :kind_of => String, :default => 'local_settings.py' attribute :debug, :kind_of => [TrueClass, FalseClass], :default => false attribute :collectstatic, :kind_of => [TrueClass, FalseClass, String], :default => false +attribute :pip_arguments, :kind_of => [NilClass, String], :default => nil def local_settings_base local_settings_file.split(/[\\\/]/).last From 8b2408f1e54286c457a036bb39cbeb0047ccde58 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Wed, 26 Jun 2013 09:14:23 -0700 Subject: [PATCH 6/6] Fix typo --- providers/django.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/django.rb b/providers/django.rb index 456a417..cf5bbdc 100644 --- a/providers/django.rb +++ b/providers/django.rb @@ -58,7 +58,7 @@ if new_resource.requirements Chef::Log.info("Installing using requirements file: #{new_resource.requirements}") pip_cmd = ::File.join(new_resource.virtualenv, 'bin', 'pip') - pip_arguments = new_resource.pip_arguments_is_a?(String) ? new_resource.pip_arguments : "" + pip_arguments = new_resource.pip_arguments.is_a?(String) ? new_resource.pip_arguments : "" execute "#{pip_cmd} install --source=#{Dir.tmpdir} -r #{new_resource.requirements} #{pip_arguments}" do cwd new_resource.release_path # seems that if we don't set the HOME env var pip tries to log to /root/.pip, which fails due to permissions