puppet-library 0.0.2 → 0.1.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 +4 -4
- data/.travis.yml +0 -1
- data/README.md +23 -5
- data/Rakefile +18 -4
- data/TODO.yml +14 -3
- data/config.ru +7 -3
- data/lib/puppet_library.rb +5 -1
- data/lib/puppet_library/forge.rb +100 -0
- data/lib/puppet_library/http/cache.rb +61 -0
- data/lib/puppet_library/http/http_client.rb +35 -0
- data/lib/puppet_library/http/url.rb +27 -0
- data/lib/puppet_library/module_metadata.rb +9 -4
- data/lib/puppet_library/module_repo/proxy.rb +87 -0
- data/lib/puppet_library/puppet_library.rb +30 -20
- data/lib/puppet_library/server.rb +10 -67
- data/lib/puppet_library/util.rb +2 -2
- data/lib/puppet_library/version.rb +1 -1
- data/puppet-library.gemspec +3 -1
- data/spec/forge_spec.rb +147 -0
- data/spec/http/cache_spec.rb +63 -0
- data/spec/http/http_client_spec.rb +44 -0
- data/spec/http/url_spec.rb +39 -0
- data/spec/module_repo/directory_spec.rb +9 -5
- data/spec/module_repo/proxy_spec.rb +105 -0
- data/spec/module_spec_helper.rb +3 -1
- data/spec/puppet_library_spec.rb +64 -15
- data/spec/server_spec.rb +45 -77
- data/spec/spec_helper.rb +2 -0
- data/test/librarian_puppet_integration_test.rb +111 -0
- metadata +47 -2
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,111 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# Puppet Library
|
3
|
+
# Copyright (C) 2014 drrb
|
4
|
+
#
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
module PuppetLibrary
|
21
|
+
describe "librarian-puppet integration test" do
|
22
|
+
include ModuleSpecHelper
|
23
|
+
include FileUtils
|
24
|
+
|
25
|
+
let(:module_dir) { Tempfile.new("module_dir").path }
|
26
|
+
let(:project_dir) { Tempfile.new("project_dir").path }
|
27
|
+
let(:start_dir) { pwd }
|
28
|
+
let(:disk_repo) { ModuleRepo::Directory.new(module_dir) }
|
29
|
+
let(:disk_server) do
|
30
|
+
Server.set_up do |server|
|
31
|
+
server.module_repo disk_repo
|
32
|
+
end
|
33
|
+
end
|
34
|
+
let(:disk_rack_server) do
|
35
|
+
Rack::Server.new(
|
36
|
+
:app => disk_server,
|
37
|
+
:Host => "localhost",
|
38
|
+
:Port => 9000,
|
39
|
+
:server => "webrick"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
let(:disk_server_runner) do
|
43
|
+
Thread.new do
|
44
|
+
disk_rack_server.start
|
45
|
+
end
|
46
|
+
end
|
47
|
+
let(:proxy_repo) { ModuleRepo::Proxy.new("http://localhost:9000") }
|
48
|
+
let(:proxy_server) do
|
49
|
+
Server.set_up do |server|
|
50
|
+
server.module_repo proxy_repo
|
51
|
+
end
|
52
|
+
end
|
53
|
+
let(:proxy_rack_server) do
|
54
|
+
Rack::Server.new(
|
55
|
+
:app => proxy_server,
|
56
|
+
:Host => "localhost",
|
57
|
+
:Port => 9001,
|
58
|
+
:server => "webrick"
|
59
|
+
)
|
60
|
+
end
|
61
|
+
let(:proxy_server_runner) do
|
62
|
+
Thread.new do
|
63
|
+
proxy_rack_server.start
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
before do
|
68
|
+
rm_rf module_dir
|
69
|
+
rm_rf project_dir
|
70
|
+
mkdir_p module_dir
|
71
|
+
mkdir_p project_dir
|
72
|
+
disk_server_runner
|
73
|
+
proxy_server_runner
|
74
|
+
sleep(2) # Wait for the servers to start
|
75
|
+
start_dir
|
76
|
+
cd project_dir
|
77
|
+
end
|
78
|
+
|
79
|
+
after do
|
80
|
+
rm_rf module_dir
|
81
|
+
rm_rf project_dir
|
82
|
+
cd start_dir
|
83
|
+
end
|
84
|
+
|
85
|
+
def write_puppetfile(content)
|
86
|
+
File.open("#{project_dir}/Puppetfile", "w") do |puppetfile|
|
87
|
+
puppetfile.puts content
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
it "downloads the modules" do
|
92
|
+
add_module("puppetlabs", "apache", "1.0.0") do |metadata|
|
93
|
+
metadata["dependencies"] << { "name" => "puppetlabs/concat", "version_requirement" => ">= 2.0.0" }
|
94
|
+
metadata["dependencies"] << { "name" => "puppetlabs/stdlib", "version_requirement" => "~> 3.0.0" }
|
95
|
+
end
|
96
|
+
add_module("puppetlabs", "concat", "2.0.0")
|
97
|
+
add_module("puppetlabs", "stdlib", "3.0.0")
|
98
|
+
|
99
|
+
write_puppetfile <<-EOF
|
100
|
+
forge 'http://localhost:9001'
|
101
|
+
mod 'puppetlabs/apache'
|
102
|
+
EOF
|
103
|
+
|
104
|
+
system "librarian-puppet install" or fail "call to puppet-library failed"
|
105
|
+
expect(File.directory? "modules").to be true
|
106
|
+
expect(File.directory? "modules/apache").to be true
|
107
|
+
expect(File.directory? "modules/concat").to be true
|
108
|
+
expect(File.directory? "modules/stdlib").to be true
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-library
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- drrb
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: librarian-puppet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: mime-types
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,20 @@ dependencies:
|
|
94
108
|
- - '>='
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: puppet
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
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
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: rack-test
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,21 +198,32 @@ files:
|
|
170
198
|
- bin/puppet-library
|
171
199
|
- config.ru
|
172
200
|
- lib/puppet_library.rb
|
201
|
+
- lib/puppet_library/forge.rb
|
202
|
+
- lib/puppet_library/http/cache.rb
|
203
|
+
- lib/puppet_library/http/http_client.rb
|
204
|
+
- lib/puppet_library/http/url.rb
|
173
205
|
- lib/puppet_library/module_metadata.rb
|
174
206
|
- lib/puppet_library/module_repo/directory.rb
|
175
207
|
- lib/puppet_library/module_repo/multi.rb
|
208
|
+
- lib/puppet_library/module_repo/proxy.rb
|
176
209
|
- lib/puppet_library/puppet_library.rb
|
177
210
|
- lib/puppet_library/server.rb
|
178
211
|
- lib/puppet_library/util.rb
|
179
212
|
- lib/puppet_library/version.rb
|
180
213
|
- puppet-library.gemspec
|
214
|
+
- spec/forge_spec.rb
|
215
|
+
- spec/http/cache_spec.rb
|
216
|
+
- spec/http/http_client_spec.rb
|
217
|
+
- spec/http/url_spec.rb
|
181
218
|
- spec/module_repo/directory_spec.rb
|
182
219
|
- spec/module_repo/multi_spec.rb
|
220
|
+
- spec/module_repo/proxy_spec.rb
|
183
221
|
- spec/module_spec_helper.rb
|
184
222
|
- spec/puppet_library_spec.rb
|
185
223
|
- spec/server_spec.rb
|
186
224
|
- spec/spec_helper.rb
|
187
225
|
- spec/util_spec.rb
|
226
|
+
- test/librarian_puppet_integration_test.rb
|
188
227
|
homepage: https://github.com/drrb/puppet-library
|
189
228
|
licenses:
|
190
229
|
- GPL-3
|
@@ -210,10 +249,16 @@ signing_key:
|
|
210
249
|
specification_version: 4
|
211
250
|
summary: Puppet Library is a private Puppet module server that's compatible with librarian-puppet.
|
212
251
|
test_files:
|
252
|
+
- spec/forge_spec.rb
|
253
|
+
- spec/http/cache_spec.rb
|
254
|
+
- spec/http/http_client_spec.rb
|
255
|
+
- spec/http/url_spec.rb
|
213
256
|
- spec/module_repo/directory_spec.rb
|
214
257
|
- spec/module_repo/multi_spec.rb
|
258
|
+
- spec/module_repo/proxy_spec.rb
|
215
259
|
- spec/module_spec_helper.rb
|
216
260
|
- spec/puppet_library_spec.rb
|
217
261
|
- spec/server_spec.rb
|
218
262
|
- spec/spec_helper.rb
|
219
263
|
- spec/util_spec.rb
|
264
|
+
- test/librarian_puppet_integration_test.rb
|