librarian-puppet-maestrodev 0.9.9.8 → 0.9.10.1
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.
data/README.md
CHANGED
@@ -170,25 +170,6 @@ Please include:
|
|
170
170
|
* Please run the `librarian-puppet` commands in verbose mode by using the
|
171
171
|
`--verbose` flag, and include the verbose output in the bug report as well.
|
172
172
|
|
173
|
-
## Changelog
|
174
|
-
|
175
|
-
### 0.9.0
|
176
|
-
|
177
|
-
* Initial release
|
178
|
-
|
179
|
-
### 0.9.1
|
180
|
-
|
181
|
-
* Proper error message when a module that is sourced from the forge does not
|
182
|
-
exist.
|
183
|
-
* Added support for annotated tags as git references.
|
184
|
-
* `librarian-puppet init` adds `.tmp/` to gitignore instead of `tmp/`.
|
185
|
-
* Fixed syntax error in the template Puppetfile created by `librarian-puppet
|
186
|
-
init`.
|
187
|
-
* Checks for `lib/puppet` as well as `manifests/` when checking if the git
|
188
|
-
repository is a valid module.
|
189
|
-
* When a user specifies `<foo>/<bar>` as the name of a module sources from a
|
190
|
-
git repository, assume the module name is actually `<bar>`.
|
191
|
-
* Fixed gem description and summary in gemspec.
|
192
173
|
|
193
174
|
## License
|
194
175
|
Please see the [LICENSE](https://github.com/rodjek/librarian-puppet/blob/master/LICENSE)
|
@@ -102,15 +102,118 @@ module Librarian
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
-
class
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
105
|
+
class Manifest
|
106
|
+
|
107
|
+
class PreReleaseVersion
|
108
|
+
|
109
|
+
# Compares pre-release component ids using Semver 2.0.0 spec
|
110
|
+
def self.compare_components(this_id,other_id)
|
111
|
+
case # Strings have higher precedence than numbers
|
112
|
+
when (this_id.is_a?(Integer) and other_id.is_a?(String))
|
113
|
+
-1
|
114
|
+
when (this_id.is_a?(String) and other_id.is_a?(Integer))
|
115
|
+
1
|
116
|
+
else
|
117
|
+
this_id <=> other_id
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Parses pre-release components `a.b.c` into an array ``[a,b,c]`
|
122
|
+
# Converts numeric components into +Integer+
|
123
|
+
def self.parse(prerelease)
|
124
|
+
if prerelease.nil?
|
125
|
+
[]
|
126
|
+
else
|
127
|
+
prerelease.split('.').collect do |id|
|
128
|
+
id = Integer(id) if /^[0-9]+$/ =~ id
|
129
|
+
id
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
include Comparable
|
135
|
+
|
136
|
+
attr_reader :components
|
137
|
+
|
138
|
+
def initialize(prerelease)
|
139
|
+
@prerelease = prerelease
|
140
|
+
@components = PreReleaseVersion.parse(prerelease)
|
141
|
+
end
|
142
|
+
|
143
|
+
def to_s
|
144
|
+
@prerelease
|
145
|
+
end
|
146
|
+
|
147
|
+
def <=>(other)
|
148
|
+
# null-fill zip array to prevent loss of components
|
149
|
+
z = Array.new([components.length,other.components.length])
|
150
|
+
|
151
|
+
# Compare each component against the other
|
152
|
+
comp = z.zip(components,other.components).collect do |ids|
|
153
|
+
case # All components being equal, the version with more of them takes precedence
|
154
|
+
when ids[1].nil? # Self has less elements, other wins
|
155
|
+
-1
|
156
|
+
when ids[2].nil? # Other has less elements, self wins
|
157
|
+
1
|
158
|
+
else
|
159
|
+
PreReleaseVersion.compare_components(ids[1],ids[2])
|
160
|
+
end
|
161
|
+
end
|
162
|
+
# Chose the first non-zero comparison or return 0
|
163
|
+
comp.delete_if {|c| c == 0}[0] || 0
|
164
|
+
end
|
165
|
+
end
|
166
|
+
class Version
|
167
|
+
@@SEMANTIC_VERSION_PATTERN = /^([0-9]+\.[0-9]+(?:\.[0-9]+)?)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/
|
168
|
+
def self.parse_semver(version_string)
|
169
|
+
parsed = @@SEMANTIC_VERSION_PATTERN.match(version_string.strip)
|
170
|
+
if parsed
|
171
|
+
{
|
172
|
+
:full_version => parsed[0],
|
173
|
+
:version => parsed[1],
|
174
|
+
:prerelease => (PreReleaseVersion.new(parsed[2]) if parsed[2]),
|
175
|
+
:build => parsed[3]
|
176
|
+
}
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
attr_reader :prerelease
|
181
|
+
|
182
|
+
def initialize(*args)
|
183
|
+
args = initialize_normalize_args(args)
|
184
|
+
semver = Version.parse_semver(*args)
|
185
|
+
if semver
|
186
|
+
self.backing = Gem::Version.new(semver[:version])
|
187
|
+
@prerelease = semver[:prerelease]
|
188
|
+
@full_version = semver[:full_version]
|
189
|
+
else
|
190
|
+
self.backing = Gem::Version.new(*args)
|
191
|
+
@full_version = to_gem_version.to_s
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
def <=>(other)
|
196
|
+
cmp = to_gem_version <=> other.to_gem_version
|
197
|
+
|
198
|
+
# Should compare pre-release versions?
|
199
|
+
if cmp == 0 and not (prerelease.nil? and other.prerelease.nil?)
|
200
|
+
case # Versions without prerelease take precedence
|
201
|
+
when (prerelease.nil? and not other.prerelease.nil?)
|
202
|
+
1
|
203
|
+
when (not prerelease.nil? and other.prerelease.nil?)
|
204
|
+
-1
|
205
|
+
else
|
206
|
+
prerelease <=> other.prerelease
|
207
|
+
end
|
208
|
+
else
|
209
|
+
cmp
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
def to_s
|
214
|
+
@full_version
|
215
|
+
end
|
114
216
|
end
|
115
217
|
end
|
218
|
+
|
116
219
|
end
|
@@ -152,8 +152,10 @@ module Librarian
|
|
152
152
|
def api_call(module_name)
|
153
153
|
debug { "Querying Forge API for module #{name}" }
|
154
154
|
base_url = source.uri
|
155
|
+
path = "api/v1/releases.json?module=#{module_name}"
|
156
|
+
|
155
157
|
begin
|
156
|
-
data = open("#{base_url}
|
158
|
+
data = open("#{base_url}/#{path}") {|f| f.read}
|
157
159
|
JSON.parse(data)
|
158
160
|
rescue OpenURI::HTTPError => e
|
159
161
|
case e.io.status[0].to_i
|
@@ -125,10 +125,20 @@ module Librarian
|
|
125
125
|
"librarian-puppet v#{Librarian::Puppet::VERSION}"
|
126
126
|
|
127
127
|
resp = http.request(request)
|
128
|
-
|
128
|
+
data = resp.body
|
129
|
+
|
130
|
+
if resp.code.to_i == 403
|
131
|
+
begin
|
132
|
+
message = JSON.parse(data)['message']
|
133
|
+
if message.include? 'API rate limit exceeded'
|
134
|
+
raise Error, message
|
135
|
+
end
|
136
|
+
rescue JSON::ParserError
|
137
|
+
# 403 response does not return json, skip.
|
138
|
+
end
|
139
|
+
elsif resp.code.to_i != 200
|
129
140
|
nil
|
130
141
|
else
|
131
|
-
data = resp.body
|
132
142
|
JSON.parse(data)
|
133
143
|
end
|
134
144
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librarian-puppet-maestrodev
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: librarian
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.1.
|
21
|
+
version: 0.1.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.1.
|
29
|
+
version: 0.1.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: json
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,6 +107,22 @@ dependencies:
|
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: puppet
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
110
126
|
description: ! "Simplify deployment of your Puppet infrastructure by\n automatically
|
111
127
|
pulling in modules from the forge and git repositories with\n a single command."
|
112
128
|
email:
|
@@ -149,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
165
|
version: '0'
|
150
166
|
segments:
|
151
167
|
- 0
|
152
|
-
hash: -
|
168
|
+
hash: -2861496222512018377
|
153
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
170
|
none: false
|
155
171
|
requirements:
|
@@ -158,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
174
|
version: '0'
|
159
175
|
segments:
|
160
176
|
- 0
|
161
|
-
hash: -
|
177
|
+
hash: -2861496222512018377
|
162
178
|
requirements: []
|
163
179
|
rubyforge_project:
|
164
180
|
rubygems_version: 1.8.25
|