berkshelf 6.2.2 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/Gemfile.lock +9 -9
- data/lib/berkshelf/community_rest.rb +5 -2
- data/lib/berkshelf/cookbook_store.rb +3 -1
- data/lib/berkshelf/file_syncer.rb +16 -38
- data/lib/berkshelf/ssl_policies.rb +5 -3
- data/lib/berkshelf/validator.rb +6 -3
- data/lib/berkshelf/version.rb +1 -1
- data/spec/unit/berkshelf/community_rest_spec.rb +1 -0
- data/spec/unit/berkshelf/ssl_policies_spec.rb +1 -0
- data/spec/unit/berkshelf/validator_spec.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e620a63bb67ebae68ad87fad7690fe42ef45561
|
4
|
+
data.tar.gz: '093db285607a11b1d6af5006b86d2053cc42a387'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c165040371c0ac425b1bfe92d45e5355c6e2ffdb62d43648d77a877379512642f7519c3ba971d602680b9fb8af1073e2e7e05232497b17e24eaa87c053533462
|
7
|
+
data.tar.gz: f2191da269c43f42eddc36532f9b785dbfb59fd8df1cce24ac109f9ca504088b5798a0a49f7ccb6fec98db877403cec86466b2133189a4e13ed6caf25f5fd071
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [6.3.0](https://github.com/berkshelf/berkshelf/tree/6.3.0) (2017-08-08)
|
4
|
+
[Full Changelog](https://github.com/berkshelf/berkshelf/compare/v6.2.2...6.3.0)
|
5
|
+
|
6
|
+
**Merged pull requests:**
|
7
|
+
|
8
|
+
- Remove stale comment [\#1724](https://github.com/berkshelf/berkshelf/pull/1724) ([jaym](https://github.com/jaym))
|
9
|
+
- Fix up Dir.glob for windows [\#1722](https://github.com/berkshelf/berkshelf/pull/1722) ([jaym](https://github.com/jaym))
|
10
|
+
- bump the gemfile.lock [\#1721](https://github.com/berkshelf/berkshelf/pull/1721) ([lamont-granquist](https://github.com/lamont-granquist))
|
11
|
+
|
12
|
+
## [v6.2.2](https://github.com/berkshelf/berkshelf/tree/v6.2.2) (2017-08-02)
|
13
|
+
[Full Changelog](https://github.com/berkshelf/berkshelf/compare/v6.2.1...v6.2.2)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- fix verify false and add tests [\#1720](https://github.com/berkshelf/berkshelf/pull/1720) ([lamont-granquist](https://github.com/lamont-granquist))
|
18
|
+
- Docs update [\#1715](https://github.com/berkshelf/berkshelf/pull/1715) ([iennae](https://github.com/iennae))
|
19
|
+
|
3
20
|
## [v6.2.1](https://github.com/berkshelf/berkshelf/tree/v6.2.1) (2017-07-18)
|
4
21
|
[Full Changelog](https://github.com/berkshelf/berkshelf/compare/v6.2.0...v6.2.1)
|
5
22
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
berkshelf (6.
|
4
|
+
berkshelf (6.3.0)
|
5
5
|
buff-config (~> 2.0)
|
6
6
|
buff-extensions (~> 2.0)
|
7
7
|
chef (>= 12.7.2)
|
@@ -119,7 +119,7 @@ GEM
|
|
119
119
|
domain_name (0.5.20170404)
|
120
120
|
unf (>= 0.0.5, < 1.0.0)
|
121
121
|
erubis (2.7.0)
|
122
|
-
faraday (0.12.
|
122
|
+
faraday (0.12.2)
|
123
123
|
multipart-post (>= 1.2, < 3)
|
124
124
|
faraday-http-cache (2.0.0)
|
125
125
|
faraday (~> 0.8)
|
@@ -142,7 +142,7 @@ GEM
|
|
142
142
|
hashdiff (0.3.4)
|
143
143
|
hashie (3.5.6)
|
144
144
|
highline (1.7.8)
|
145
|
-
hitimes (1.2.
|
145
|
+
hitimes (1.2.6)
|
146
146
|
http (2.2.2)
|
147
147
|
addressable (~> 2.3)
|
148
148
|
http-cookie (~> 1.0)
|
@@ -160,7 +160,7 @@ GEM
|
|
160
160
|
json (2.1.0)
|
161
161
|
libyajl2 (1.2.0)
|
162
162
|
minitar (0.6.1)
|
163
|
-
minitest (5.10.
|
163
|
+
minitest (5.10.3)
|
164
164
|
mixlib-archive (0.4.1)
|
165
165
|
mixlib-log
|
166
166
|
mixlib-authentication (1.4.1)
|
@@ -169,7 +169,7 @@ GEM
|
|
169
169
|
mixlib-config (2.2.4)
|
170
170
|
mixlib-log (1.7.1)
|
171
171
|
mixlib-shellout (2.3.2)
|
172
|
-
molinillo (0.6.
|
172
|
+
molinillo (0.6.1)
|
173
173
|
multi_json (1.12.1)
|
174
174
|
multi_test (0.1.2)
|
175
175
|
multipart-post (2.0.0)
|
@@ -199,7 +199,7 @@ GEM
|
|
199
199
|
plist (~> 3.1)
|
200
200
|
systemu (~> 2.6.4)
|
201
201
|
wmi-lite (~> 1.0)
|
202
|
-
parallel (1.
|
202
|
+
parallel (1.12.0)
|
203
203
|
parser (2.4.0.0)
|
204
204
|
ast (~> 2.2)
|
205
205
|
plist (3.3.0)
|
@@ -262,16 +262,16 @@ GEM
|
|
262
262
|
addressable (>= 2.3.5, < 2.6)
|
263
263
|
faraday (~> 0.8, < 1.0)
|
264
264
|
semverse (2.0.0)
|
265
|
-
serverspec (2.39.
|
265
|
+
serverspec (2.39.2)
|
266
266
|
multi_json
|
267
267
|
rspec (~> 3.0)
|
268
268
|
rspec-its
|
269
269
|
specinfra (~> 2.68)
|
270
270
|
sfl (2.3)
|
271
|
-
solve (3.1.
|
271
|
+
solve (3.1.1)
|
272
272
|
molinillo (>= 0.5)
|
273
273
|
semverse (>= 1.1, < 3.0)
|
274
|
-
specinfra (2.70.
|
274
|
+
specinfra (2.70.1)
|
275
275
|
net-scp
|
276
276
|
net-ssh (>= 2.7, < 5.0)
|
277
277
|
net-telnet
|
@@ -104,9 +104,12 @@ module Berkshelf
|
|
104
104
|
if File.cookbook?(extracted)
|
105
105
|
extracted
|
106
106
|
else
|
107
|
-
Dir.
|
108
|
-
|
107
|
+
dir = Dir.chdir(extracted) do
|
108
|
+
Dir.glob("*").find do |dir|
|
109
|
+
File.cookbook?(dir)
|
110
|
+
end
|
109
111
|
end
|
112
|
+
File.join(extracted, dir) if dir
|
110
113
|
end
|
111
114
|
ensure
|
112
115
|
archive.unlink unless archive.nil?
|
@@ -48,7 +48,9 @@ module Berkshelf
|
|
48
48
|
|
49
49
|
# Destroy the contents of the initialized storage path.
|
50
50
|
def clean!
|
51
|
-
|
51
|
+
Dir.chdir(storage_path) do
|
52
|
+
FileUtils.rm_rf(Dir.glob("*"))
|
53
|
+
end
|
52
54
|
end
|
53
55
|
|
54
56
|
# Import a cookbook found on the local filesystem into this instance of the cookbook store.
|
@@ -17,6 +17,13 @@ module Berkshelf
|
|
17
17
|
# @return [Array<String>]
|
18
18
|
# the list of all files
|
19
19
|
#
|
20
|
+
# @note
|
21
|
+
# Globbing on windows is strange. Do not pass a path that contains
|
22
|
+
# "symlinked" directories. Dir.glob will not see them. As an example,
|
23
|
+
# 'C:\Documents and Settings' is not a real directory and int recent
|
24
|
+
# versions of windows points at 'C:\users'. Some users have their
|
25
|
+
# temp directory still referring to 'C:\Documents and Settings'.
|
26
|
+
#
|
20
27
|
def glob(pattern)
|
21
28
|
Dir.glob(pattern, File::FNM_DOTMATCH).sort.reject do |file|
|
22
29
|
basename = File.basename(file)
|
@@ -58,24 +65,18 @@ module Berkshelf
|
|
58
65
|
[exclude, "#{exclude}/*"]
|
59
66
|
end.flatten
|
60
67
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
source_files = glob(File.join(source, "**/*"))
|
67
|
-
source_files = source_files.reject do |source_file|
|
68
|
-
basename = relative_path_for(source_file, source)
|
69
|
-
excludes.any? { |exclude| File.fnmatch?(exclude, basename, File::FNM_DOTMATCH) }
|
68
|
+
source_files = Dir.chdir(source) do
|
69
|
+
glob("**/*").reject do |source_file|
|
70
|
+
excludes.any? { |exclude| File.fnmatch?(exclude, source_file, File::FNM_DOTMATCH) }
|
71
|
+
end
|
70
72
|
end
|
71
73
|
|
72
74
|
# Ensure the destination directory exists
|
73
75
|
FileUtils.mkdir_p(destination) unless File.directory?(destination)
|
74
76
|
|
75
77
|
# Copy over the filtered source files
|
76
|
-
source_files.each do |
|
77
|
-
|
78
|
-
|
78
|
+
source_files.each do |relative_path|
|
79
|
+
source_file = File.join(source, relative_path)
|
79
80
|
# Create the parent directory
|
80
81
|
parent = File.join(destination, File.dirname(relative_path))
|
81
82
|
FileUtils.mkdir_p(parent) unless File.directory?(parent)
|
@@ -102,20 +103,13 @@ module Berkshelf
|
|
102
103
|
|
103
104
|
if options[:delete]
|
104
105
|
# Remove any files in the destination that are not in the source files
|
105
|
-
destination_files =
|
106
|
-
|
107
|
-
# Calculate the relative paths of files so we can compare to the
|
108
|
-
# source.
|
109
|
-
relative_source_files = source_files.map do |file|
|
110
|
-
relative_path_for(file, source)
|
111
|
-
end
|
112
|
-
relative_destination_files = destination_files.map do |file|
|
113
|
-
relative_path_for(file, destination)
|
106
|
+
destination_files = Dir.chdir(destination) do
|
107
|
+
glob("**/*")
|
114
108
|
end
|
115
109
|
|
116
110
|
# Remove any extra files that are present in the destination, but are
|
117
111
|
# not in the source list
|
118
|
-
extra_files =
|
112
|
+
extra_files = destination_files - source_files
|
119
113
|
extra_files.each do |file|
|
120
114
|
FileUtils.rm_rf(File.join(destination, file))
|
121
115
|
end
|
@@ -123,21 +117,5 @@ module Berkshelf
|
|
123
117
|
|
124
118
|
true
|
125
119
|
end
|
126
|
-
|
127
|
-
private
|
128
|
-
|
129
|
-
#
|
130
|
-
# The relative path of the given +path+ to the +parent+.
|
131
|
-
#
|
132
|
-
# @param [String] path
|
133
|
-
# the path to get relative with
|
134
|
-
# @param [String] parent
|
135
|
-
# the parent where the path is contained (hopefully)
|
136
|
-
#
|
137
|
-
# @return [String]
|
138
|
-
#
|
139
|
-
def relative_path_for(path, parent)
|
140
|
-
Pathname.new(path).relative_path_from(Pathname.new(parent)).to_s
|
141
|
-
end
|
142
120
|
end
|
143
121
|
end
|
@@ -31,9 +31,11 @@ module Berkshelf
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def set_custom_certs
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
Dir.chdir(trusted_certs_dir) do
|
35
|
+
::Dir.glob("{*.crt,*.pem}").each do |cert|
|
36
|
+
cert = OpenSSL::X509::Certificate.new(IO.read(cert))
|
37
|
+
add_trusted_cert(cert)
|
38
|
+
end
|
37
39
|
end
|
38
40
|
end
|
39
41
|
end
|
data/lib/berkshelf/validator.rb
CHANGED
@@ -24,9 +24,12 @@ module Berkshelf
|
|
24
24
|
Array(cookbooks).each do |cookbook|
|
25
25
|
path = cookbook.path.to_s
|
26
26
|
|
27
|
-
files = Dir.
|
28
|
-
|
29
|
-
|
27
|
+
files = Dir.chdir(path) do
|
28
|
+
Dir.glob(File.join("**", "*.rb")).select do |f|
|
29
|
+
f = File.join(path, f)
|
30
|
+
parent = Pathname.new(path).dirname.to_s
|
31
|
+
f.gsub(parent, "") =~ /[[:space:]]/
|
32
|
+
end
|
30
33
|
end
|
31
34
|
|
32
35
|
raise InvalidCookbookFiles.new(cookbook, files) unless files.empty?
|
data/lib/berkshelf/version.rb
CHANGED
@@ -78,6 +78,7 @@ describe Berkshelf::SSLPolicy do
|
|
78
78
|
before do
|
79
79
|
allow(chef_config).to receive_messages(trusted_certs_dir: self_signed_crt_path_windows_backslashes)
|
80
80
|
allow(File).to receive(:exist?).with(self_signed_crt_path_windows_forwardslashes).and_return(true)
|
81
|
+
allow(Dir).to receive(:chdir).with(self_signed_crt_path_windows_forwardslashes)
|
81
82
|
end
|
82
83
|
|
83
84
|
it "replaces the backslashes in trusted_certs_dir from Berkshelf config with forwardslashes" do
|
@@ -4,6 +4,10 @@ describe Berkshelf::Validator do
|
|
4
4
|
describe "#validate_files" do
|
5
5
|
let(:cookbook) { double("cookbook", cookbook_name: "cookbook", path: "path") }
|
6
6
|
|
7
|
+
before do
|
8
|
+
allow(Dir).to receive(:chdir) { |&block| block.call }
|
9
|
+
end
|
10
|
+
|
7
11
|
it "raises an error when the cookbook has spaces in the files" do
|
8
12
|
allow(Dir).to receive(:glob).and_return(["/there are/spaces/in this/recipes/default.rb"])
|
9
13
|
expect do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkshelf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Winsor
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-08-
|
15
|
+
date: 2017-08-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: buff-config
|