librarian-puppet 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef4fd59f2a6e41ed320ea0bb94eb6374af121092
|
4
|
+
data.tar.gz: a8575338727993713ef495723986d28e71007244
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d006b91e46d7c964aacbeed2a88e4e385e9c8357e1a9f2920dced67d008ee0acba6d868f7dffccca7acc5ddc0642de1e43f680a96a7379b8f0b767090fe3222a
|
7
|
+
data.tar.gz: 666b2ee1a3d469fd23272495d228a9d6c64b8df70a2e7ae9a29ef8eee64bee06fca3bfdb495e06b23757413263c93d993bb637309ea292c127f8845c48097396
|
@@ -91,7 +91,7 @@ module Librarian
|
|
91
91
|
|
92
92
|
command = %W{puppet module install --version #{version} --target-dir}
|
93
93
|
command.push(*[path.to_s, "--module_repository", module_repository, "--modulepath", path.to_s, "--module_working_dir", path.to_s, "--ignore-dependencies", target])
|
94
|
-
debug { "Executing puppet module install for #{name} #{version}" }
|
94
|
+
debug { "Executing puppet module install for #{name} #{version}: #{command.join(" ")}" }
|
95
95
|
|
96
96
|
begin
|
97
97
|
Librarian::Posix.run!(command)
|
@@ -136,11 +136,34 @@ module Librarian
|
|
136
136
|
|
137
137
|
private
|
138
138
|
|
139
|
+
# Issue #223 dependencies may be duplicated
|
140
|
+
def clear_duplicated_dependencies(data)
|
141
|
+
return nil if data.nil?
|
142
|
+
data.each do |m,versions|
|
143
|
+
versions.each do |v|
|
144
|
+
if v["dependencies"] and !v["dependencies"].empty?
|
145
|
+
dependency_names = v["dependencies"].map {|d| d[0]}
|
146
|
+
duplicated = dependency_names.select{ |e| dependency_names.count(e) > 1 }
|
147
|
+
unless duplicated.empty?
|
148
|
+
duplicated.uniq.each do |module_duplicated|
|
149
|
+
to_remove = []
|
150
|
+
v["dependencies"].each_index{|i| to_remove << i if module_duplicated == v["dependencies"][i][0]}
|
151
|
+
warn { "Module #{m}@#{v["version"]} contains duplicated dependencies for #{module_duplicated}, ignoring all but the first of #{to_remove.map {|i| v["dependencies"][i]}}" }
|
152
|
+
to_remove.slice(1..-1).reverse.each {|i| v["dependencies"].delete_at(i) }
|
153
|
+
v["dependencies"] = v["dependencies"] - to_remove.slice(1..-1)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
data
|
160
|
+
end
|
161
|
+
|
139
162
|
# get and cache the API data for a specific module with all its versions and dependencies
|
140
163
|
def api_data(module_name)
|
141
164
|
return @api_data[module_name] if @api_data
|
142
165
|
# call API and cache data
|
143
|
-
@api_data = api_call(module_name)
|
166
|
+
@api_data = clear_duplicated_dependencies(api_call(module_name))
|
144
167
|
if @api_data.nil?
|
145
168
|
raise Error, "Unable to find module '#{name}' on #{source}"
|
146
169
|
end
|
@@ -152,7 +175,7 @@ module Librarian
|
|
152
175
|
# if we already got all the versions, find in cached data
|
153
176
|
return @api_data[module_name].detect{|x| x['version'] == version.to_s} if @api_data
|
154
177
|
# otherwise call the api for this version if not cached already
|
155
|
-
@api_version_data[version] = api_call(name, version) if @api_version_data[version].nil?
|
178
|
+
@api_version_data[version] = clear_duplicated_dependencies(api_call(name, version)) if @api_version_data[version].nil?
|
156
179
|
@api_version_data[version]
|
157
180
|
end
|
158
181
|
|
@@ -28,10 +28,14 @@ module Librarian
|
|
28
28
|
return vendor_checkout! if vendor_cached?
|
29
29
|
|
30
30
|
if environment.local?
|
31
|
-
raise Error, "Could not find a local copy of #{uri} at #{sha}."
|
31
|
+
raise Error, "Could not find a local copy of #{uri}#{" at #{sha}" unless sha.nil?}."
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
begin
|
35
|
+
super
|
36
|
+
rescue Librarian::Posix::CommandFailure => e
|
37
|
+
raise Error, "Could not checkout #{uri}#{" at #{sha}" unless sha.nil?}: #{e}"
|
38
|
+
end
|
35
39
|
|
36
40
|
cache_in_vendor(repository.path) if environment.vendor?
|
37
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librarian-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Sharpe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: librarian
|