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 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