poise-python 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +36 -16
- data/CHANGELOG.md +4 -0
- data/Gemfile +1 -1
- data/README.md +28 -2
- data/lib/poise_python/python_providers/base.rb +5 -3
- data/lib/poise_python/python_providers/scl.rb +4 -26
- data/lib/poise_python/resources/python_runtime.rb +8 -10
- data/lib/poise_python/resources/python_runtime_pip.rb +2 -4
- data/lib/poise_python/version.rb +1 -1
- data/poise-python.gemspec +2 -1
- data/test/gemfiles/chef-12.1.gemfile +1 -0
- data/test/gemfiles/chef-12.10.gemfile +20 -0
- data/test/gemfiles/chef-12.11.gemfile +20 -0
- data/test/gemfiles/chef-12.12.gemfile +19 -0
- data/test/gemfiles/chef-12.13.gemfile +19 -0
- data/test/gemfiles/chef-12.2.gemfile +1 -0
- data/test/gemfiles/chef-12.3.gemfile +1 -0
- data/test/gemfiles/chef-12.4.gemfile +1 -1
- data/test/gemfiles/chef-12.5.gemfile +1 -0
- data/test/gemfiles/chef-12.6.gemfile +1 -0
- data/test/gemfiles/chef-12.7.gemfile +20 -0
- data/test/gemfiles/chef-12.8.gemfile +20 -0
- data/test/gemfiles/chef-12.9.gemfile +20 -0
- data/test/gemfiles/chef-12.gemfile +1 -1
- data/test/gemfiles/master.gemfile +1 -1
- data/test/spec/python_providers/scl_spec.rb +8 -2
- data/test/spec/resources/python_runtime_pip_spec.rb +3 -1
- data/test/spec/resources/python_runtime_spec.rb +83 -0
- metadata +35 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7500de072f7a8087c804a127c870a8c6b16b5aca
|
|
4
|
+
data.tar.gz: d600e7a8144e251e8d2faa81bb8da5d1a58dcdad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0673eb2b7dfe1d1b3e946edb8de5d8ff4c8a7253ce7499f608e8f6321698bba79c21b9d66b8df3706f2855d71225ef8c3278bda434dbad5e5d2b9d17869bf73
|
|
7
|
+
data.tar.gz: b995f972baacd4f6482cae93ec8405194a7e1ad9584b7df66bab06066aa2df5a54e9ba270b2778c62c0a7df3d88336efbf2924d51400af8cb7af9e4bd5559136
|
data/.travis.yml
CHANGED
|
@@ -1,22 +1,42 @@
|
|
|
1
|
-
---
|
|
2
1
|
sudo: false
|
|
3
2
|
cache: bundler
|
|
4
3
|
language: ruby
|
|
5
|
-
rvm:
|
|
6
|
-
- '2.2'
|
|
7
4
|
env:
|
|
8
5
|
global:
|
|
9
|
-
|
|
10
|
-
before_install:
|
|
11
|
-
bundler_args:
|
|
6
|
+
- secure: j4GV/0NXC6p/+XxgK2isMCzccR7ry8cxLJZZbJN5P+958lLGmYtPPsfAN+aRzcR3Uc/alLcsjXvceCjJWU7qYpkN1x9cn564J1X3OIOygi6xdYQIMLL5Guxp01QYabFlrmZeUnTVMTkdR1H4aRrpzW4kTuc5hbIZaJl0enEe1Dd+vbCw2GOTXFnPTeLDCaCSNXXhXmqqWD64leFR2PTwx8fwrXyCB/bDRXhFdsFA5Q/tCGW7PDaYujbqSCegpuz+uvHoM5S2k2XY3pShWZm9WcmEzCLEfhOGCc1s+ia7TZ0iV7kzEq11mNTdSl6nJtBUiKsgqw1TRPFhhUj2Bp/K+cNsd06rtFE3In2zbqbgyJ0qnyQHs2FZO//ve8bug+B0lA3i6SantruS1Fc9NjwjqzOmqmaqNhnVl1jEQTOB3JUC465QShySF0aJtjE5khD7PzGwCw6cqhPBLH5ZTmqCYvl/egYLMlvVr1Nboa+0YFdzUqoTFJpRTsu89l8+1+Eu9pvHn0CwsjWmEVHahIw/GEBjhLPDinquJNxWz1q49ozlohntbRmWhbgzz6D4wPrbBdyW7rYm8p6d2sOy6Op2zsVv4c7Dj3pcLLd9J5o6RaNxf4wLd5VFLNJR6/wldsZXGxV/iP16oyasabYIQYZNbP0U1hZiUpLQ5cvKYc6xRTM=
|
|
7
|
+
before_install: gem install bundler
|
|
8
|
+
bundler_args: '--binstubs=$PWD/bin --jobs 3 --retry 3'
|
|
12
9
|
script:
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
-
|
|
10
|
+
- ./bin/rake travis
|
|
11
|
+
matrix:
|
|
12
|
+
include:
|
|
13
|
+
- rvm: 2.1.9
|
|
14
|
+
gemfile: test/gemfiles/chef-12.gemfile
|
|
15
|
+
- rvm: 2.1.4
|
|
16
|
+
gemfile: test/gemfiles/chef-12.1.gemfile
|
|
17
|
+
- rvm: 2.1.4
|
|
18
|
+
gemfile: test/gemfiles/chef-12.2.gemfile
|
|
19
|
+
- rvm: 2.1.4
|
|
20
|
+
gemfile: test/gemfiles/chef-12.3.gemfile
|
|
21
|
+
- rvm: 2.1.6
|
|
22
|
+
gemfile: test/gemfiles/chef-12.4.gemfile
|
|
23
|
+
- rvm: 2.1.6
|
|
24
|
+
gemfile: test/gemfiles/chef-12.5.gemfile
|
|
25
|
+
- rvm: 2.1.6
|
|
26
|
+
gemfile: test/gemfiles/chef-12.6.gemfile
|
|
27
|
+
- rvm: 2.1.6
|
|
28
|
+
gemfile: test/gemfiles/chef-12.7.gemfile
|
|
29
|
+
- rvm: 2.1.6
|
|
30
|
+
gemfile: test/gemfiles/chef-12.8.gemfile
|
|
31
|
+
- rvm: 2.1.8
|
|
32
|
+
gemfile: test/gemfiles/chef-12.9.gemfile
|
|
33
|
+
- rvm: 2.1.8
|
|
34
|
+
gemfile: test/gemfiles/chef-12.10.gemfile
|
|
35
|
+
- rvm: 2.1.8
|
|
36
|
+
gemfile: test/gemfiles/chef-12.11.gemfile
|
|
37
|
+
- rvm: 2.1.8
|
|
38
|
+
gemfile: test/gemfiles/chef-12.12.gemfile
|
|
39
|
+
- rvm: 2.1.9
|
|
40
|
+
gemfile: test/gemfiles/chef-12.13.gemfile
|
|
41
|
+
- rvm: 2.3.1
|
|
42
|
+
gemfile: test/gemfiles/master.gemfile
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -27,6 +27,30 @@ end
|
|
|
27
27
|
pip_requirements '/opt/myapp/requirements.txt'
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
## Installing a Package From a URI
|
|
31
|
+
|
|
32
|
+
While using `python_package 'git+https://github.com/example/mypackage.git'` will
|
|
33
|
+
sometimes work, this approach is not recommended. Unfortunately pip's support
|
|
34
|
+
for installing directly from URI sources is limited and cannot support the API
|
|
35
|
+
used for the `python_package` resource. You can run the install either directly
|
|
36
|
+
from the URI or through an intermediary `git` resource:
|
|
37
|
+
|
|
38
|
+
```ruby
|
|
39
|
+
# Will re-install on every converge unless you add a not_if/only_if.
|
|
40
|
+
python_execute '-m pip install git+https://github.com/example/mypackage.git'
|
|
41
|
+
|
|
42
|
+
# Will only re-install when the git repository updates.
|
|
43
|
+
python_execute 'install mypackage' do
|
|
44
|
+
action :nothing
|
|
45
|
+
command '-m pip install .'
|
|
46
|
+
cwd '/opt/mypackage'
|
|
47
|
+
end
|
|
48
|
+
git '/opt/mypackage' do
|
|
49
|
+
repository 'https://github.com/example/mypackage.git'
|
|
50
|
+
notifies :run, 'python_execute[install mypackage]', :immediately
|
|
51
|
+
end
|
|
52
|
+
```
|
|
53
|
+
|
|
30
54
|
## Supported Python Versions
|
|
31
55
|
|
|
32
56
|
This cookbook can install at least Python 2.7, Python 3, and PyPy on all
|
|
@@ -77,9 +101,11 @@ python_runtime '2'
|
|
|
77
101
|
|
|
78
102
|
* `version` – Version of Python to install. If a partial version is given, use the
|
|
79
103
|
latest available version matching that prefix. *(name property)*
|
|
104
|
+
* `get_pip_url` – URL to download the `get-pip.py` bootstrap script from.
|
|
105
|
+
*(default: https://bootstrap.pypa.io/get-pip.py)*
|
|
80
106
|
* `pip_version` – Version of pip to install. If set to `true`, use the latest.
|
|
81
|
-
If set to `false`, do not install pip.
|
|
82
|
-
|
|
107
|
+
If set to `false`, do not install pip. For backward compatibility, can also be
|
|
108
|
+
set to a URL instead of `get_pip_url`. *(default: true)*
|
|
83
109
|
* `setuptools_version` – Version of Setuptools to install. If set to `true`, use
|
|
84
110
|
the latest. If set to `false`, do not install Setuptools. *(default: true)*
|
|
85
111
|
* `virtualenv_version` – Version of virtualenv to install. If set to `true`,
|
|
@@ -28,6 +28,7 @@ module PoisePython
|
|
|
28
28
|
# @api private
|
|
29
29
|
def self.default_inversion_options(node, new_resource)
|
|
30
30
|
super.merge({
|
|
31
|
+
get_pip_url: new_resource.get_pip_url,
|
|
31
32
|
pip_version: new_resource.pip_version,
|
|
32
33
|
setuptools_version: new_resource.setuptools_version,
|
|
33
34
|
version: new_resource.version,
|
|
@@ -103,13 +104,14 @@ module PoisePython
|
|
|
103
104
|
def install_pip
|
|
104
105
|
pip_version_or_url = options[:pip_version]
|
|
105
106
|
return unless pip_version_or_url
|
|
106
|
-
# If there is a : in the version, use it as a URL
|
|
107
|
+
# If there is a : in the version, use it as a URL and ignore the actual
|
|
108
|
+
# URL option.
|
|
107
109
|
if pip_version_or_url.is_a?(String) && pip_version_or_url.include?(':')
|
|
108
110
|
pip_version = nil
|
|
109
111
|
pip_url = pip_version_or_url
|
|
110
112
|
else
|
|
111
113
|
pip_version = pip_version_or_url
|
|
112
|
-
pip_url =
|
|
114
|
+
pip_url = options[:get_pip_url]
|
|
113
115
|
end
|
|
114
116
|
Chef::Log.debug("[#{new_resource}] Installing pip #{pip_version || 'latest'}")
|
|
115
117
|
# Install or bootstrap pip.
|
|
@@ -117,7 +119,7 @@ module PoisePython
|
|
|
117
119
|
parent new_resource
|
|
118
120
|
# If the version is `true`, don't pass it at all.
|
|
119
121
|
version pip_version if pip_version.is_a?(String)
|
|
120
|
-
get_pip_url pip_url
|
|
122
|
+
get_pip_url pip_url
|
|
121
123
|
end
|
|
122
124
|
end
|
|
123
125
|
|
|
@@ -26,32 +26,10 @@ module PoisePython
|
|
|
26
26
|
class Scl < Base
|
|
27
27
|
include PoiseLanguages::Scl::Mixin
|
|
28
28
|
provides(:scl)
|
|
29
|
-
scl_package('3.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
})
|
|
35
|
-
scl_package('3.3.2', 'python33', 'python33-python-devel', {
|
|
36
|
-
['redhat', 'centos'] => {
|
|
37
|
-
'~> 7.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm',
|
|
38
|
-
'~> 6.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python33/epel-6-x86_64/download/rhscl-python33-epel-6-x86_64.noarch.rpm',
|
|
39
|
-
},
|
|
40
|
-
'fedora' => {
|
|
41
|
-
'~> 21.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python33/fedora-21-x86_64/download/rhscl-python33-fedora-21-x86_64.noarch.rpm',
|
|
42
|
-
'~> 20.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python33/fedora-20-x86_64/download/rhscl-python33-fedora-20-x86_64.noarch.rpm',
|
|
43
|
-
},
|
|
44
|
-
})
|
|
45
|
-
scl_package('2.7.8', 'python27', 'python27-python-devel', {
|
|
46
|
-
['redhat', 'centos'] => {
|
|
47
|
-
'~> 7.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python27/epel-7-x86_64/download/rhscl-python27-epel-7-x86_64.noarch.rpm',
|
|
48
|
-
'~> 6.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python27/epel-6-x86_64/download/rhscl-python27-epel-6-x86_64.noarch.rpm',
|
|
49
|
-
},
|
|
50
|
-
'fedora' => {
|
|
51
|
-
'~> 21.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python27/fedora-21-x86_64/download/rhscl-python27-fedora-21-x86_64.noarch.rpm',
|
|
52
|
-
'~> 20.0' => 'https://www.softwarecollections.org/en/scls/rhscl/python27/fedora-20-x86_64/download/rhscl-python27-fedora-20-x86_64.noarch.rpm',
|
|
53
|
-
},
|
|
54
|
-
})
|
|
29
|
+
scl_package('3.5.1', 'rh-python35', 'rh-python35-python-devel', '>= 7.0')
|
|
30
|
+
scl_package('3.4.2', 'rh-python34', 'rh-python34-python-devel')
|
|
31
|
+
scl_package('3.3.2', 'python33', 'python33-python-devel')
|
|
32
|
+
scl_package('2.7.8', 'python27', 'python27-python-devel')
|
|
55
33
|
|
|
56
34
|
def python_binary
|
|
57
35
|
::File.join(scl_folder, 'root', 'usr', 'bin', 'python')
|
|
@@ -46,22 +46,20 @@ module PoisePython
|
|
|
46
46
|
# @example Install Python 2.7
|
|
47
47
|
# python_runtime '2.7'
|
|
48
48
|
attribute(:version, kind_of: String, name_attribute: true)
|
|
49
|
+
# @!attribute get_pip_url
|
|
50
|
+
# URL to download the get-pip.py script from. If not sure, the default
|
|
51
|
+
# of https://bootstrap.pypa.io/get-pip.py is used. If you want to skip
|
|
52
|
+
# the pip installer entirely, set {#pip_version} to `false`.
|
|
53
|
+
# @return [String]
|
|
54
|
+
attribute(:get_pip_url, kind_of: String, default: 'https://bootstrap.pypa.io/get-pip.py')
|
|
49
55
|
# @!attribute pip_version
|
|
50
56
|
# Version of pip to install. If set to `true`, the latest available
|
|
51
57
|
# pip will be used. If set to `false`, pip will not be installed. If
|
|
52
|
-
# set to a URL, that will be used as the URL to get-pip.py
|
|
53
|
-
#
|
|
54
|
-
# downloaded from the internet.
|
|
55
|
-
# @note Due to https://github.com/pypa/pip/issues/1087, the latest
|
|
56
|
-
# version of pip will always be installed initially. It will then
|
|
57
|
-
# downgrade to the requested version if needed.
|
|
58
|
+
# set to a URL, that will be used as the URL to get-pip.py instead of
|
|
59
|
+
# {#get_pip_url}.
|
|
58
60
|
# @note Disabling the pip install may result in other resources being
|
|
59
61
|
# non-functional.
|
|
60
62
|
# @return [String, Boolean]
|
|
61
|
-
# @example Install from a locally-hosted copy of get-pip.py
|
|
62
|
-
# python_runtime '2' do
|
|
63
|
-
# pip_version 'http://myserver/get-pip.py'
|
|
64
|
-
# end
|
|
65
63
|
attribute(:pip_version, kind_of: [String, TrueClass, FalseClass], default: true)
|
|
66
64
|
# @!attribute setuptools_version
|
|
67
65
|
# Version of Setuptools to install. It set to `true`, the latest
|
|
@@ -26,8 +26,6 @@ module PoisePython
|
|
|
26
26
|
# @since 1.0.0
|
|
27
27
|
# @api private
|
|
28
28
|
module PythonRuntimePip
|
|
29
|
-
# URL for the default get-pip.py script.
|
|
30
|
-
DEFAULT_GET_PIP_URL = 'https://bootstrap.pypa.io/get-pip.py'
|
|
31
29
|
# Earliest version of pip we will try upgrading in-place.
|
|
32
30
|
PIP_INPLACE_VERSION = Gem::Version.create('7.0.0')
|
|
33
31
|
|
|
@@ -49,9 +47,9 @@ module PoisePython
|
|
|
49
47
|
# @return [String]
|
|
50
48
|
attribute(:version, kind_of: String)
|
|
51
49
|
# @!attribute get_pip_url
|
|
52
|
-
# URL to the get-pip.py script.
|
|
50
|
+
# URL to the get-pip.py script.
|
|
53
51
|
# @return [String]
|
|
54
|
-
attribute(:get_pip_url, kind_of: String,
|
|
52
|
+
attribute(:get_pip_url, kind_of: String, required: true)
|
|
55
53
|
end
|
|
56
54
|
|
|
57
55
|
# The default provider for `python_runtime_pip`.
|
data/lib/poise_python/version.rb
CHANGED
data/poise-python.gemspec
CHANGED
|
@@ -33,9 +33,10 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
34
34
|
spec.require_paths = %w{lib}
|
|
35
35
|
|
|
36
|
+
spec.add_dependency 'chef', '~> 12.1'
|
|
36
37
|
spec.add_dependency 'halite', '~> 1.0'
|
|
37
38
|
spec.add_dependency 'poise', '~> 2.7'
|
|
38
|
-
spec.add_dependency 'poise-languages', '~>
|
|
39
|
+
spec.add_dependency 'poise-languages', '~> 2.0'
|
|
39
40
|
|
|
40
41
|
spec.add_development_dependency 'poise-boiler', '~> 1.8'
|
|
41
42
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.10.24'
|
|
20
|
+
gem 'rack', '< 2'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.11.18'
|
|
20
|
+
gem 'rack', '< 2'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.12.15'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.13.37'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.7.2'
|
|
20
|
+
gem 'rack', '< 2'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.8.1'
|
|
20
|
+
gem 'rack', '< 2'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
|
+
|
|
19
|
+
gem 'chef', '~> 12.9.41'
|
|
20
|
+
gem 'rack', '< 2'
|
|
@@ -21,5 +21,5 @@ gem 'halite', github: 'poise/halite'
|
|
|
21
21
|
gem 'poise', github: 'poise/poise'
|
|
22
22
|
gem 'poise-archive', github: 'poise/poise-archive'
|
|
23
23
|
gem 'poise-boiler', github: 'poise/poise-boiler'
|
|
24
|
-
gem 'poise-languages', github: 'poise/poise-languages'
|
|
24
|
+
# gem 'poise-languages', github: 'poise/poise-languages'
|
|
25
25
|
gem 'poise-profiler', github: 'poise/poise-profiler'
|
|
@@ -41,7 +41,7 @@ describe PoisePython::PythonProviders::Scl do
|
|
|
41
41
|
|
|
42
42
|
context 'with version ""' do
|
|
43
43
|
let(:python_version) { '' }
|
|
44
|
-
it_behaves_like 'scl provider', 'rh-
|
|
44
|
+
it_behaves_like 'scl provider', 'rh-python35'
|
|
45
45
|
end # /context with version ""
|
|
46
46
|
|
|
47
47
|
context 'with version "2"' do
|
|
@@ -51,7 +51,7 @@ describe PoisePython::PythonProviders::Scl do
|
|
|
51
51
|
|
|
52
52
|
context 'with version "3"' do
|
|
53
53
|
let(:python_version) { '3' }
|
|
54
|
-
it_behaves_like 'scl provider', 'rh-
|
|
54
|
+
it_behaves_like 'scl provider', 'rh-python35'
|
|
55
55
|
end # /context with version "3"
|
|
56
56
|
|
|
57
57
|
context 'with version "3.3"' do
|
|
@@ -59,6 +59,12 @@ describe PoisePython::PythonProviders::Scl do
|
|
|
59
59
|
it_behaves_like 'scl provider', 'python33'
|
|
60
60
|
end # /context with version "3.3"
|
|
61
61
|
|
|
62
|
+
context 'with version "" on CentOS 6' do
|
|
63
|
+
let(:chefspec_options) { {platform: 'centos', version: '6.0'} }
|
|
64
|
+
let(:python_version) { '' }
|
|
65
|
+
it_behaves_like 'scl provider', 'rh-python34'
|
|
66
|
+
end # /context with version "" on CentOS 6
|
|
67
|
+
|
|
62
68
|
context 'action :uninstall' do
|
|
63
69
|
recipe do
|
|
64
70
|
python_runtime 'test' do
|
|
@@ -20,7 +20,9 @@ describe PoisePython::Resources::PythonRuntimePip do
|
|
|
20
20
|
step_into(:python_runtime_pip)
|
|
21
21
|
recipe do
|
|
22
22
|
python_runtime 'test'
|
|
23
|
-
python_runtime_pip 'test'
|
|
23
|
+
python_runtime_pip 'test' do
|
|
24
|
+
get_pip_url 'http://example.com/'
|
|
25
|
+
end
|
|
24
26
|
end
|
|
25
27
|
before do
|
|
26
28
|
provider = PoisePython::Resources::PythonRuntimePip::Provider
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
require 'spec_helper'
|
|
18
|
+
|
|
19
|
+
class PythonRuntimeTestProvider < PoisePython::PythonProviders::Base
|
|
20
|
+
provides(:test)
|
|
21
|
+
def self.provides_auto?(*args)
|
|
22
|
+
true
|
|
23
|
+
end
|
|
24
|
+
def python_binary
|
|
25
|
+
'/python'
|
|
26
|
+
end
|
|
27
|
+
def install_python
|
|
28
|
+
end
|
|
29
|
+
def uninstall_python
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe PoisePython::Resources::PythonRuntime do
|
|
34
|
+
step_into(:python_runtime)
|
|
35
|
+
let(:venv_installed) { false }
|
|
36
|
+
before do
|
|
37
|
+
allow_any_instance_of(PythonRuntimeTestProvider).to receive(:poise_shell_out).with(%w{/python -m venv -h}, environment: {}).and_return(double(error?: !venv_installed))
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context 'with defaults' do
|
|
41
|
+
recipe do
|
|
42
|
+
python_runtime 'test' do
|
|
43
|
+
provider :test
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it { is_expected.to install_python_runtime_pip('test').with(version: nil, get_pip_url: 'https://bootstrap.pypa.io/get-pip.py') }
|
|
48
|
+
end # /context with defaults
|
|
49
|
+
|
|
50
|
+
context 'with a pip_version' do
|
|
51
|
+
recipe do
|
|
52
|
+
python_runtime 'test' do
|
|
53
|
+
provider :test
|
|
54
|
+
pip_version '1.2.3'
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it { is_expected.to install_python_runtime_pip('test').with(version: '1.2.3', get_pip_url: 'https://bootstrap.pypa.io/get-pip.py') }
|
|
59
|
+
end # /context with a pip_version
|
|
60
|
+
|
|
61
|
+
context 'with a pip_version URL' do
|
|
62
|
+
recipe do
|
|
63
|
+
python_runtime 'test' do
|
|
64
|
+
provider :test
|
|
65
|
+
pip_version 'http://example.com/get-pip.py'
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it { is_expected.to install_python_runtime_pip('test').with(version: nil, get_pip_url: 'http://example.com/get-pip.py') }
|
|
70
|
+
end # /context with a pip_version URL
|
|
71
|
+
|
|
72
|
+
context 'with a pip_version and a get_pip_url' do
|
|
73
|
+
recipe do
|
|
74
|
+
python_runtime 'test' do
|
|
75
|
+
provider :test
|
|
76
|
+
pip_version '1.2.3'
|
|
77
|
+
get_pip_url 'http://example.com/get-pip.py'
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it { is_expected.to install_python_runtime_pip('test').with(version: '1.2.3', get_pip_url: 'http://example.com/get-pip.py') }
|
|
82
|
+
end # /context with a pip_version and a get_pip_url
|
|
83
|
+
end
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: poise-python
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Noah Kantrowitz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: chef
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '12.1'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '12.1'
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: halite
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,14 +58,14 @@ dependencies:
|
|
|
44
58
|
requirements:
|
|
45
59
|
- - "~>"
|
|
46
60
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
61
|
+
version: '2.0'
|
|
48
62
|
type: :runtime
|
|
49
63
|
prerelease: false
|
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
65
|
requirements:
|
|
52
66
|
- - "~>"
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
68
|
+
version: '2.0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: poise-boiler
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -113,11 +127,18 @@ files:
|
|
|
113
127
|
- test/docker/docker.ca
|
|
114
128
|
- test/docker/docker.pem
|
|
115
129
|
- test/gemfiles/chef-12.1.gemfile
|
|
130
|
+
- test/gemfiles/chef-12.10.gemfile
|
|
131
|
+
- test/gemfiles/chef-12.11.gemfile
|
|
132
|
+
- test/gemfiles/chef-12.12.gemfile
|
|
133
|
+
- test/gemfiles/chef-12.13.gemfile
|
|
116
134
|
- test/gemfiles/chef-12.2.gemfile
|
|
117
135
|
- test/gemfiles/chef-12.3.gemfile
|
|
118
136
|
- test/gemfiles/chef-12.4.gemfile
|
|
119
137
|
- test/gemfiles/chef-12.5.gemfile
|
|
120
138
|
- test/gemfiles/chef-12.6.gemfile
|
|
139
|
+
- test/gemfiles/chef-12.7.gemfile
|
|
140
|
+
- test/gemfiles/chef-12.8.gemfile
|
|
141
|
+
- test/gemfiles/chef-12.9.gemfile
|
|
121
142
|
- test/gemfiles/chef-12.gemfile
|
|
122
143
|
- test/gemfiles/master.gemfile
|
|
123
144
|
- test/integration/default/serverspec/default_spec.rb
|
|
@@ -130,6 +151,7 @@ files:
|
|
|
130
151
|
- test/spec/resources/pip_requirements_spec.rb
|
|
131
152
|
- test/spec/resources/python_package_spec.rb
|
|
132
153
|
- test/spec/resources/python_runtime_pip_spec.rb
|
|
154
|
+
- test/spec/resources/python_runtime_spec.rb
|
|
133
155
|
- test/spec/resources/python_virtualenv_spec.rb
|
|
134
156
|
- test/spec/spec_helper.rb
|
|
135
157
|
- test/spec/utils/python_encoder_spec.rb
|
|
@@ -154,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
154
176
|
version: '0'
|
|
155
177
|
requirements: []
|
|
156
178
|
rubyforge_project:
|
|
157
|
-
rubygems_version: 2.6.
|
|
179
|
+
rubygems_version: 2.6.4
|
|
158
180
|
signing_key:
|
|
159
181
|
specification_version: 4
|
|
160
182
|
summary: A Chef cookbook for managing Python installations.
|
|
@@ -164,11 +186,18 @@ test_files:
|
|
|
164
186
|
- test/docker/docker.ca
|
|
165
187
|
- test/docker/docker.pem
|
|
166
188
|
- test/gemfiles/chef-12.1.gemfile
|
|
189
|
+
- test/gemfiles/chef-12.10.gemfile
|
|
190
|
+
- test/gemfiles/chef-12.11.gemfile
|
|
191
|
+
- test/gemfiles/chef-12.12.gemfile
|
|
192
|
+
- test/gemfiles/chef-12.13.gemfile
|
|
167
193
|
- test/gemfiles/chef-12.2.gemfile
|
|
168
194
|
- test/gemfiles/chef-12.3.gemfile
|
|
169
195
|
- test/gemfiles/chef-12.4.gemfile
|
|
170
196
|
- test/gemfiles/chef-12.5.gemfile
|
|
171
197
|
- test/gemfiles/chef-12.6.gemfile
|
|
198
|
+
- test/gemfiles/chef-12.7.gemfile
|
|
199
|
+
- test/gemfiles/chef-12.8.gemfile
|
|
200
|
+
- test/gemfiles/chef-12.9.gemfile
|
|
172
201
|
- test/gemfiles/chef-12.gemfile
|
|
173
202
|
- test/gemfiles/master.gemfile
|
|
174
203
|
- test/integration/default/serverspec/default_spec.rb
|
|
@@ -181,8 +210,8 @@ test_files:
|
|
|
181
210
|
- test/spec/resources/pip_requirements_spec.rb
|
|
182
211
|
- test/spec/resources/python_package_spec.rb
|
|
183
212
|
- test/spec/resources/python_runtime_pip_spec.rb
|
|
213
|
+
- test/spec/resources/python_runtime_spec.rb
|
|
184
214
|
- test/spec/resources/python_virtualenv_spec.rb
|
|
185
215
|
- test/spec/spec_helper.rb
|
|
186
216
|
- test/spec/utils/python_encoder_spec.rb
|
|
187
217
|
- test/spec/utils_spec.rb
|
|
188
|
-
has_rdoc:
|