puppet-forge-server 1.2.0 → 1.3.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28febe12a43d2784047f7ff01e604133d403d1c8
|
4
|
+
data.tar.gz: d99f6193d61655797445bf4ac8d4d7979f1af571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0be3a7fa83dcebef6f88c8fb93f8250244c9490dd6a7e9a32a0a74cb5ee66125eac7995b4489bcc37d9d6c52bea887ab427dba0a430a77ef6aed30470f0fcae
|
7
|
+
data.tar.gz: f6f396a4cb6cbf4c8586b797bff5d978d6fcf305a3341afc5e3599ede7dbc1fc1c0c7a8a6e9f660fbbebc830063b2e459854269560dc96d1ba7c9f7bad5bc1da
|
@@ -30,19 +30,19 @@ module PuppetForgeServer::Api::V3
|
|
30
30
|
modules[element[:metadata].name][:releases] = (modules[element[:metadata].name][:releases] + releases_version(element[:metadata])).version_sort_by { |r| r[:version] }.reverse
|
31
31
|
else
|
32
32
|
name = element[:metadata].name.sub(/^[^-]+-/, '')
|
33
|
+
author = element[:metadata].name.split('-')[0]
|
33
34
|
modules[element[:metadata].name] = {
|
34
35
|
:uri => "/v3/modules/#{element[:metadata].name}",
|
35
36
|
:name => name,
|
36
37
|
:homepage_url => element[:metadata].project_page,
|
37
38
|
:issues_url => element[:metadata].issues_url,
|
38
39
|
:releases => releases_version(element[:metadata]),
|
39
|
-
:current_release => get_releases([element]).first
|
40
|
+
:current_release => get_releases([element]).first,
|
41
|
+
:owner => {:username => author, :uri => "/v3/users/#{author}"}
|
40
42
|
}
|
41
43
|
end
|
42
44
|
end
|
43
|
-
|
44
|
-
PuppetForgeServer::Logger.get.error "Requested module count is more than 1:\n#{modules.values}" if modules.values.count > 1
|
45
|
-
modules.values.first
|
45
|
+
modules.values
|
46
46
|
end
|
47
47
|
|
48
48
|
private
|
@@ -19,12 +19,13 @@ module PuppetForgeServer::Api::V3
|
|
19
19
|
def get_releases(metadata)
|
20
20
|
metadata.map do |element|
|
21
21
|
name = element[:metadata].name.sub(/^[^-]+-/, '')
|
22
|
-
|
22
|
+
author = element[:metadata].name.split('-')[0]
|
23
23
|
{
|
24
24
|
:uri => "/v3/releases/#{element[:metadata].name}-#{element[:metadata].version}",
|
25
25
|
:module => {
|
26
26
|
:uri => "/v3/modules/#{element[:metadata].name}",
|
27
|
-
:name => name
|
27
|
+
:name => name,
|
28
|
+
:owner => {:username => author, :uri => "/v3/users/#{author}"}
|
28
29
|
},
|
29
30
|
:metadata => element[:metadata].to_hash,
|
30
31
|
:version => element[:metadata].version,
|
@@ -73,7 +73,23 @@ module PuppetForgeServer::App
|
|
73
73
|
backend.get_metadata(author, name)
|
74
74
|
end.flatten.compact.uniq
|
75
75
|
halt 404, json({:errors => ['404 Not found']}) if metadata.empty?
|
76
|
-
|
76
|
+
PuppetForgeServer::Logger.get(:server).error "Requested module count is more than 1:\n#{metadata}" if metadata.count > 1
|
77
|
+
json get_modules(metadata).first
|
78
|
+
end
|
79
|
+
|
80
|
+
get '/v3/modules' do
|
81
|
+
query = params[:query]
|
82
|
+
metadata = @backends.map do |backend|
|
83
|
+
backend.query_metadata(query)
|
84
|
+
end.flatten.compact.uniq
|
85
|
+
modules = metadata.empty? ? nil : get_modules(metadata)
|
86
|
+
halt 200, json({:pagination => {:next => false}, :results => []}) unless modules
|
87
|
+
json :pagination => {:next => false, :total => modules.count}, :results => modules
|
88
|
+
end
|
89
|
+
|
90
|
+
get '/v3/users/:author' do
|
91
|
+
author = params[:author]
|
92
|
+
json :username => author, :uri => "/v3/users/#{author}"
|
77
93
|
end
|
78
94
|
|
79
95
|
private
|
@@ -27,10 +27,9 @@ module PuppetForgeServer::Backends
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def get_metadata(author, name, options = {})
|
30
|
-
options = ({:with_checksum => true}).merge(options)
|
31
30
|
query ="#{author}-#{name}"
|
32
31
|
begin
|
33
|
-
releases = options[:version] ? [JSON.parse(get("/v3/releases/#{query}-#{options[:version]}"))] :
|
32
|
+
releases = options[:version] ? [JSON.parse(get("/v3/releases/#{query}-#{options[:version]}"))] : get_all_result_pages("/v3/releases?module=#{query}")
|
34
33
|
get_release_metadata(releases)
|
35
34
|
rescue OpenURI::HTTPError
|
36
35
|
#ignore
|
@@ -38,23 +37,23 @@ module PuppetForgeServer::Backends
|
|
38
37
|
end
|
39
38
|
|
40
39
|
def query_metadata(query, options = {})
|
41
|
-
author, name = query.split('-')
|
42
40
|
begin
|
43
|
-
|
41
|
+
releases = get_all_result_pages("/v3/modules?query=#{query}").map {|element| element['current_release']}
|
42
|
+
get_release_metadata(releases)
|
44
43
|
rescue OpenURI::HTTPError
|
45
44
|
#ignore
|
46
45
|
end
|
47
46
|
end
|
48
47
|
|
49
48
|
private
|
50
|
-
def
|
51
|
-
|
49
|
+
def get_all_result_pages(next_page)
|
50
|
+
results = []
|
52
51
|
begin
|
53
|
-
|
54
|
-
|
55
|
-
next_page =
|
52
|
+
current_page = JSON.parse(get(next_page))
|
53
|
+
results += current_page['results']
|
54
|
+
next_page = current_page['pagination']['next']
|
56
55
|
end while next_page
|
57
|
-
|
56
|
+
results
|
58
57
|
end
|
59
58
|
|
60
59
|
def normalize_metadata(metadata)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-forge-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilja Bobkevic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|