puppet-forge-server 1.0.3 → 1.0.4

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: 973bfb424267e3db596e1568f4781d7ef102e46a
4
- data.tar.gz: aaaba8e6de5e1a55e7842e92b28caab624df37c1
3
+ metadata.gz: d43c453a3985b2f4f66fd7198884c4399ab3a2d7
4
+ data.tar.gz: 8799890fdd90141a7c0451376ebe7e41fe41511b
5
5
  SHA512:
6
- metadata.gz: e01143d845d1c664ff7490ac231cae20e0616de8dcad0ccd745695c04279384763433b3b998bba6546dc57e634d0dcf6f9bb98d045704f55d1f6ec982bac7a09
7
- data.tar.gz: be411f8e681736089b3026ba66f1a7c132b75f338f8dd02fca8fa5c8c831af3a404461ef66c99ff12826c72134165fa091ce29c4c2e95e2fc06c7f8b75ce4e5c
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
- STDERR.puts 'WARNING: Requested module count is more than 1' unless modules.values.count == 1
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 => 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.compact
63
+ end
65
64
  end
66
65
  end
67
66
  end
@@ -71,7 +71,7 @@ module PuppetForgeServer::Backends
71
71
  :tags => tags
72
72
  }
73
73
  end
74
- end.compact
74
+ end
75
75
  end
76
76
  end
77
77
  end
@@ -65,7 +65,7 @@ module PuppetForgeServer::Backends
65
65
  :path => element['file_uri'],
66
66
  :tags => (element['tags'] + (element['metadata']['tags'] ? element['metadata']['tags'] : [])).flatten.uniq
67
67
  }
68
- end.compact
68
+ end
69
69
  end
70
70
  end
71
71
  end
@@ -35,10 +35,19 @@ module PuppetForgeServer
35
35
  end
36
36
 
37
37
  def method_missing (method_name, *args, &block)
38
- method_name = method_name == :write ? :'<<' : 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
- STDERR.puts "ERROR: Method #{method_name} with args #{args} not found in #{self.class.to_s}" unless method_name == :to_ary
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
@@ -15,5 +15,5 @@
15
15
  # limitations under the License.
16
16
 
17
17
  module PuppetForgeServer
18
- VERSION = '1.0.3'
18
+ VERSION = '1.0.4'
19
19
  end
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.3
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-13 00:00:00.000000000 Z
11
+ date: 2014-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra