puppet-forge-server 1.0.3 → 1.0.4
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/README.md +17 -0
- data/lib/puppet_forge_server/api/v3/modules.rb +1 -1
- data/lib/puppet_forge_server/app/version1.rb +3 -2
- data/lib/puppet_forge_server/app/version3.rb +3 -2
- data/lib/puppet_forge_server/backends/directory.rb +2 -3
- data/lib/puppet_forge_server/backends/proxy_v1.rb +1 -1
- data/lib/puppet_forge_server/backends/proxy_v3.rb +1 -1
- data/lib/puppet_forge_server/logger.rb +10 -1
- data/lib/puppet_forge_server/models/builder.rb +1 -1
- data/lib/puppet_forge_server/version.rb +1 -1
- 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: d43c453a3985b2f4f66fd7198884c4399ab3a2d7
|
4
|
+
data.tar.gz: 8799890fdd90141a7c0451376ebe7e41fe41511b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 601977f75107f924d31a14f74b820236a6ef3e29c05a4b00f8b6125838515d223dac4566ada0f43b5ab42247fe0f1929134f18e68b96cc85b3d23917482533c9
|
7
|
+
data.tar.gz: 0260ec708cad578c3c5a4b80d9d345e3d24e91fe51b26dd04762cd7da39279f7b71b29e6579ac5ec58fba64d44fe5d3f269ffc1badbe82a28b46712fe901e001
|
data/README.md
CHANGED
@@ -90,6 +90,23 @@ Run librarian-puppet with *--no-use-v1-api* option to instruct it to use v3 API
|
|
90
90
|
```
|
91
91
|
librarian-puppet install --no-use-v1-api
|
92
92
|
```
|
93
|
+
|
94
|
+
### Daemon
|
95
|
+
|
96
|
+
Normally one would want to run server as a deamon:
|
97
|
+
|
98
|
+
```
|
99
|
+
# Assuming puppet-forge-server gem was installed
|
100
|
+
# Create deamon user
|
101
|
+
sudo adduser forge -d /opt/forge -s /bin/false
|
102
|
+
# Create log, cache and modules directories
|
103
|
+
sudo -u forge mkdir -p /opt/forge/log /opt/forge/modules /opt/forge/cache
|
104
|
+
# Start the server
|
105
|
+
sudo -u forge puppet-forge-server -D -m /opt/forge/modules -x https://forgeapi.puppetlabs.com --log-dir /opt/forge/log --cache-basedir /opt/forge/cache --pidfile /opt/forge/server.pid
|
106
|
+
```
|
107
|
+
|
108
|
+
You are done. Now go install some puppet modules.
|
109
|
+
|
93
110
|
## Architecture
|
94
111
|
|
95
112
|
Code is structured with MVC in mind to allow easier maintenance and readability
|
@@ -41,7 +41,7 @@ module PuppetForgeServer::Api::V3
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
PuppetForge::Logger.get.error 'WARNING: Requested module count is more than 1' unless modules.values.count == 1
|
45
45
|
modules.values.first
|
46
46
|
end
|
47
47
|
|
@@ -24,6 +24,7 @@ module PuppetForgeServer::App
|
|
24
24
|
include PuppetForgeServer::Utils::Buffer
|
25
25
|
|
26
26
|
configure do
|
27
|
+
enable :logging
|
27
28
|
use ::Rack::CommonLogger, PuppetForgeServer::Logger.get(:access)
|
28
29
|
end
|
29
30
|
|
@@ -46,7 +47,7 @@ module PuppetForgeServer::App
|
|
46
47
|
|
47
48
|
metadata = @backends.map do |backend|
|
48
49
|
backend.get_metadata(author, name, {:version => version, :with_checksum => false})
|
49
|
-
end.flatten.uniq
|
50
|
+
end.flatten.compact.uniq
|
50
51
|
|
51
52
|
halt 400, {'errors' => ["'#{params[:module]}' is not a valid module slug"]}.to_json if metadata.empty?
|
52
53
|
|
@@ -68,7 +69,7 @@ module PuppetForgeServer::App
|
|
68
69
|
query = params[:q]
|
69
70
|
metadata = @backends.map do |backend|
|
70
71
|
backend.query_metadata(query, {:with_checksum => false})
|
71
|
-
end.flatten.uniq
|
72
|
+
end.flatten.compact.uniq
|
72
73
|
get_modules(metadata).to_json
|
73
74
|
end
|
74
75
|
end
|
@@ -23,6 +23,7 @@ module PuppetForgeServer::App
|
|
23
23
|
include PuppetForgeServer::Utils::Buffer
|
24
24
|
|
25
25
|
configure do
|
26
|
+
enable :logging
|
26
27
|
use ::Rack::CommonLogger, PuppetForgeServer::Logger.get(:access)
|
27
28
|
end
|
28
29
|
|
@@ -41,7 +42,7 @@ module PuppetForgeServer::App
|
|
41
42
|
author, name, version = params[:module].split '-'
|
42
43
|
metadata = @backends.map do |backend|
|
43
44
|
backend.get_metadata(author, name, {:version => version})
|
44
|
-
end.flatten.uniq
|
45
|
+
end.flatten.compact.uniq
|
45
46
|
|
46
47
|
halt 404, {'pagination' => {'next' => false}, 'results' => []}.to_json if metadata.empty?
|
47
48
|
|
@@ -68,7 +69,7 @@ module PuppetForgeServer::App
|
|
68
69
|
|
69
70
|
metadata = @backends.map do |backend|
|
70
71
|
backend.get_metadata(author, name)
|
71
|
-
end.flatten.uniq
|
72
|
+
end.flatten.compact.uniq
|
72
73
|
|
73
74
|
halt 404, {'errors' => ['404 Not found']}.to_json if metadata.empty?
|
74
75
|
|
@@ -55,13 +55,12 @@ module PuppetForgeServer::Backends
|
|
55
55
|
def get_file_metadata(file_name, options)
|
56
56
|
options = ({:with_checksum => true}).merge(options)
|
57
57
|
Dir["#{@module_dir}/**/#{file_name}"].map do |path|
|
58
|
-
checksum = Digest::MD5.hexdigest(File.read(path)) if options[:with_checksum] == true
|
59
58
|
{
|
60
59
|
:metadata => PuppetForgeServer::Models::Metadata.new(read_metadata(path)),
|
61
|
-
:checksum =>
|
60
|
+
:checksum => options[:with_checksum] == true ? Digest::MD5.hexdigest(File.read(path)) : nil,
|
62
61
|
:path => "/#{Pathname.new(path).relative_path_from(Pathname.new(@module_dir))}"
|
63
62
|
}
|
64
|
-
end
|
63
|
+
end
|
65
64
|
end
|
66
65
|
end
|
67
66
|
end
|
@@ -35,10 +35,19 @@ module PuppetForgeServer
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def method_missing (method_name, *args, &block)
|
38
|
-
method_name =
|
38
|
+
method_name = case method_name
|
39
|
+
when :write, :puts
|
40
|
+
'<<'
|
41
|
+
else
|
42
|
+
method_name
|
43
|
+
end
|
39
44
|
@loggers.each { |logger| logger.send(method_name, args.first) }
|
40
45
|
end
|
41
46
|
|
47
|
+
def respond_to?(method_name, include_private = false)
|
48
|
+
@loggers.each { |logger| false unless logger.respond_to? method_name }
|
49
|
+
end
|
50
|
+
|
42
51
|
class << self
|
43
52
|
def get(type = :server)
|
44
53
|
set unless @static_loggers[type]
|
@@ -23,7 +23,7 @@ module PuppetForgeServer::Models
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def method_missing (method_name, *args, &block)
|
26
|
-
|
26
|
+
PuppetForge::Logger.get.error "Method #{method_name} with args #{args} not found in #{self.class.to_s}" unless method_name == :to_ary
|
27
27
|
end
|
28
28
|
|
29
29
|
def to_hash
|
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.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilja Bobkevic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|