vanagon 0.16.0 → 0.19.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/README.md +48 -23
- data/bin/build +3 -1
- data/bin/build_host_info +3 -1
- data/bin/build_requirements +3 -1
- data/bin/inspect +3 -1
- data/bin/render +3 -1
- data/bin/repo +3 -1
- data/bin/ship +3 -1
- data/bin/sign +3 -1
- data/extras/completions/vanagon.bash +38 -0
- data/extras/completions/vanagon.zsh +41 -0
- data/lib/vanagon/cli.rb +12 -2
- data/lib/vanagon/cli/build.rb +12 -3
- data/lib/vanagon/cli/build_host_info.rb +12 -3
- data/lib/vanagon/cli/build_requirements.rb +13 -5
- data/lib/vanagon/cli/completion.rb +44 -0
- data/lib/vanagon/cli/inspect.rb +12 -3
- data/lib/vanagon/cli/list.rb +74 -0
- data/lib/vanagon/cli/render.rb +11 -2
- data/lib/vanagon/cli/ship.rb +6 -5
- data/lib/vanagon/cli/sign.rb +3 -2
- data/lib/vanagon/component.rb +11 -9
- data/lib/vanagon/component/dsl.rb +6 -5
- data/lib/vanagon/component/source.rb +2 -1
- data/lib/vanagon/component/source/git.rb +7 -6
- data/lib/vanagon/component/source/http.rb +3 -2
- data/lib/vanagon/component/source/local.rb +2 -1
- data/lib/vanagon/component/source/rewrite.rb +3 -2
- data/lib/vanagon/driver.rb +35 -34
- data/lib/vanagon/engine/always_be_scheduling.rb +272 -1
- data/lib/vanagon/engine/docker.rb +2 -1
- data/lib/vanagon/engine/ec2.rb +5 -4
- data/lib/vanagon/engine/hardware.rb +4 -3
- data/lib/vanagon/engine/pooler.rb +13 -8
- data/lib/vanagon/environment.rb +3 -2
- data/lib/vanagon/logger.rb +31 -0
- data/lib/vanagon/platform.rb +6 -5
- data/lib/vanagon/platform/deb.rb +2 -0
- data/lib/vanagon/platform/dsl.rb +5 -4
- data/lib/vanagon/platform/windows.rb +3 -1
- data/lib/vanagon/project.rb +20 -14
- data/lib/vanagon/project/dsl.rb +6 -5
- data/lib/vanagon/utilities.rb +35 -12
- data/resources/deb/control.erb +1 -1
- data/resources/osx/postinstall.erb +5 -1
- data/resources/rpm/project.spec.erb +1 -1
- data/resources/solaris/10/depend.erb +2 -2
- data/resources/solaris/10/postinstall.erb +10 -2
- data/resources/solaris/11/p5m.erb +2 -2
- data/spec/lib/vanagon/cli_spec.rb +143 -0
- data/spec/lib/vanagon/component/dsl_spec.rb +9 -2
- data/spec/lib/vanagon/component_spec.rb +3 -2
- data/spec/lib/vanagon/driver_spec.rb +1 -1
- data/spec/lib/vanagon/engine/always_be_scheduling_spec.rb +113 -1
- data/spec/lib/vanagon/engine/ec2_spec.rb +2 -0
- data/spec/lib/vanagon/engine/pooler_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +32 -27
data/resources/deb/control.erb
CHANGED
@@ -18,7 +18,7 @@ Breaks: <%= get_replaces.map { |replace| "#{replace.replacement} #{replace.versi
|
|
18
18
|
Conflicts: <%= get_conflicts.map { |conflict| "#{conflict.pkgname} #{conflict.version ? "(#{conflict.version})" : ""}" }.join(", ") %>
|
19
19
|
<%- end -%>
|
20
20
|
<%- unless get_requires.empty? -%>
|
21
|
-
Depends: <%= get_requires.join(", ") %>
|
21
|
+
Depends: <%= get_requires.map { |req| "#{req.requirement} #{req.version ? "(#{req.version})" : ""}" }.join(", ") %>
|
22
22
|
<%- end -%>
|
23
23
|
<%- unless get_provides.empty? -%>
|
24
24
|
Provides: <%= get_provides.map { |prov| prov.provide }.join(", ") %>
|
@@ -6,7 +6,11 @@
|
|
6
6
|
dest_file = config.path.gsub(/\.pristine$/, '') -%>
|
7
7
|
|
8
8
|
if [ -f "<%= dest_file %>" ]; then
|
9
|
-
|
9
|
+
if diff "<%= config.path %>" "<%= dest_file %>" > /dev/null; then
|
10
|
+
rm -f "<%= config.path %>"
|
11
|
+
else
|
12
|
+
echo "Detected file at '<%= dest_file %>'; updated file at '<%= config.path %>'."
|
13
|
+
fi
|
10
14
|
else
|
11
15
|
mv '<%= config.path %>' '<%= dest_file %>'
|
12
16
|
fi
|
@@ -77,7 +77,7 @@ Source1: file-list-for-rpm
|
|
77
77
|
Autoprov: 0
|
78
78
|
Autoreq: 0
|
79
79
|
<%- get_requires.each do |requires| -%>
|
80
|
-
Requires: <%= requires %>
|
80
|
+
Requires: <%= requires.requirement %><%= requires.version ? " #{requires.version}" : "" %>
|
81
81
|
<%- end -%>
|
82
82
|
|
83
83
|
# All rpm packages built by vanagon have the pre-/post-install script
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%- get_requires.each do |
|
2
|
-
P <%= requirement %>
|
1
|
+
<%- get_requires.each do |requires| -%>
|
2
|
+
P <%= requires.requirement %>
|
3
3
|
<%- end -%>
|
@@ -10,7 +10,11 @@
|
|
10
10
|
dest_file = config.path.gsub(/\.pristine$/, '') -%>
|
11
11
|
|
12
12
|
if [ -f "<%= dest_file %>" ]; then
|
13
|
-
|
13
|
+
if diff "<%= config.path %>" "<%= dest_file %>" > /dev/null; then
|
14
|
+
rm -f "<%= config.path %>"
|
15
|
+
else
|
16
|
+
echo "Detected file at '<%= dest_file %>'; updated file at '<%= config.path %>'."
|
17
|
+
fi
|
14
18
|
else
|
15
19
|
cp -pr '<%= config.path %>' '<%= dest_file %>'
|
16
20
|
fi
|
@@ -19,7 +23,11 @@ fi
|
|
19
23
|
|
20
24
|
# Set up any specific permissions needed...
|
21
25
|
<%- (get_directories + get_configfiles + get_files).select { |pathname| pathname.has_overrides? }.uniq.each do |file_or_directory| -%>
|
22
|
-
|
26
|
+
<%- if file_or_directory.mode -%>
|
27
|
+
if [ -f "<%= file_or_directory.path %>" ] || [ -d "<%= file_or_directory.path %>" ]; then
|
28
|
+
chmod '<%= file_or_directory.mode %>' '<%= file_or_directory.path %>'
|
29
|
+
fi
|
30
|
+
<%- end -%>
|
23
31
|
<%- if file_or_directory.owner -%>
|
24
32
|
if getent passwd '<%= file_or_directory.owner %>' &> /dev/null; then
|
25
33
|
chown '<%= file_or_directory.owner %>' '<%= file_or_directory.path %>'
|
@@ -17,8 +17,8 @@ set name=variant.opensolaris.zone value=global value=nonglobal
|
|
17
17
|
%>
|
18
18
|
|
19
19
|
# Add any needed dependencies
|
20
|
-
<%- get_requires.each do |
|
21
|
-
depend fmri=pkg:/<%= requirement %> type=require
|
20
|
+
<%- get_requires.each do |requires| -%>
|
21
|
+
depend fmri=pkg:/<%= requires.requirement %> type=require
|
22
22
|
<%- end -%>
|
23
23
|
|
24
24
|
# Always drop /etc, /usr, and /var, it will cause conflicts with other system packages
|
@@ -78,3 +78,146 @@ describe Vanagon::CLI do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
81
|
+
|
82
|
+
describe Vanagon::CLI::List do
|
83
|
+
let(:cli) { Vanagon::CLI::List.new }
|
84
|
+
|
85
|
+
describe "#output" do
|
86
|
+
let(:list) { ['a', 'b', 'c']}
|
87
|
+
it "returns an array if space is false" do
|
88
|
+
expect(cli.output(list, false)).to eq(list)
|
89
|
+
end
|
90
|
+
it "returns space separated if space is true" do
|
91
|
+
expect(cli.output(list, true)).to eq('a b c')
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "#run" do
|
96
|
+
let(:projects){ ['foo', 'bar', 'baz'] }
|
97
|
+
let(:platforms){ ['1', '2', '3'] }
|
98
|
+
let(:output_both){
|
99
|
+
"- Projects
|
100
|
+
foo
|
101
|
+
bar
|
102
|
+
baz
|
103
|
+
|
104
|
+
- Platforms
|
105
|
+
1
|
106
|
+
2
|
107
|
+
3
|
108
|
+
"
|
109
|
+
}
|
110
|
+
context "specs with standard config path" do
|
111
|
+
before(:each) do
|
112
|
+
expect(Dir).to receive(:exist?)
|
113
|
+
.with("#{File.join(Dir.pwd, 'configs', 'platforms')}")
|
114
|
+
.and_return(true)
|
115
|
+
expect(Dir).to receive(:exist?)
|
116
|
+
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
117
|
+
.and_return(true)
|
118
|
+
expect(Dir).to receive(:children)
|
119
|
+
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
120
|
+
.and_return(projects)
|
121
|
+
expect(Dir).to receive(:children)
|
122
|
+
.with("#{File.join(Dir.pwd, 'configs', 'platforms')}")
|
123
|
+
.and_return(platforms)
|
124
|
+
end
|
125
|
+
let(:options_empty) { {
|
126
|
+
nil=>false,
|
127
|
+
:configdir=>"#{Dir.pwd}/configs",
|
128
|
+
:platforms=>false,
|
129
|
+
:projects=>false,
|
130
|
+
:use_spaces=>false
|
131
|
+
} }
|
132
|
+
let(:options_platforms_only) { {
|
133
|
+
nil=>false,
|
134
|
+
:configdir=>"#{Dir.pwd}/configs",
|
135
|
+
:platforms=>true,
|
136
|
+
:projects=>false,
|
137
|
+
:use_spaces=>false
|
138
|
+
} }
|
139
|
+
let(:options_projects_only) { {
|
140
|
+
nil=>false,
|
141
|
+
:configdir=>"#{Dir.pwd}/configs",
|
142
|
+
:platforms=>false,
|
143
|
+
:projects=>true,
|
144
|
+
:use_spaces=>false
|
145
|
+
} }
|
146
|
+
let(:options_space_only) { {
|
147
|
+
nil=>false,
|
148
|
+
:configdir=>"#{Dir.pwd}/configs",
|
149
|
+
:platforms=>false,
|
150
|
+
:projects=>false,
|
151
|
+
:use_spaces=>true
|
152
|
+
} }
|
153
|
+
|
154
|
+
it "outputs projects and platforms with no options passed" do
|
155
|
+
expect do
|
156
|
+
cli.run(options_empty)
|
157
|
+
end.to output(output_both).to_stdout
|
158
|
+
end
|
159
|
+
|
160
|
+
let(:output_both_space){
|
161
|
+
"- Projects
|
162
|
+
foo bar baz
|
163
|
+
|
164
|
+
- Platforms
|
165
|
+
1 2 3
|
166
|
+
"
|
167
|
+
}
|
168
|
+
it "outputs projects and platforms space separated" do
|
169
|
+
expect do
|
170
|
+
cli.run(options_space_only)
|
171
|
+
end.to output(output_both_space).to_stdout
|
172
|
+
end
|
173
|
+
|
174
|
+
let(:output_platforms){
|
175
|
+
"- Platforms
|
176
|
+
1
|
177
|
+
2
|
178
|
+
3
|
179
|
+
"
|
180
|
+
}
|
181
|
+
it "outputs only platforms when platforms is passed" do
|
182
|
+
expect do
|
183
|
+
cli.run(options_platforms_only)
|
184
|
+
end.to output(output_platforms).to_stdout
|
185
|
+
end
|
186
|
+
|
187
|
+
let(:output_projects){
|
188
|
+
"- Projects
|
189
|
+
foo
|
190
|
+
bar
|
191
|
+
baz
|
192
|
+
"
|
193
|
+
}
|
194
|
+
it "outputs only projects when projects is passed" do
|
195
|
+
expect do
|
196
|
+
cli.run(options_projects_only)
|
197
|
+
end.to output(output_projects).to_stdout
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
context "spec with a configdir specified" do
|
202
|
+
let(:options_configdir) { {
|
203
|
+
nil=>false,
|
204
|
+
:configdir=> '/configs',
|
205
|
+
:platforms=>false,
|
206
|
+
:projects=>false,
|
207
|
+
:use_spaces=>false} }
|
208
|
+
it "it successfully takes the configs directory" do
|
209
|
+
expect(Dir).to receive(:exist?).with('/configs' + '/platforms')
|
210
|
+
.and_return(true)
|
211
|
+
expect(Dir).to receive(:exist?).with('/configs' + '/projects')
|
212
|
+
.and_return(true)
|
213
|
+
expect(Dir).to receive(:children).with('/configs' + '/projects')
|
214
|
+
.and_return(projects)
|
215
|
+
expect(Dir).to receive(:children).with('/configs' + '/platforms')
|
216
|
+
.and_return(platforms)
|
217
|
+
expect do
|
218
|
+
cli.run(options_configdir)
|
219
|
+
end.to output(output_both).to_stdout
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
223
|
+
end
|
@@ -313,11 +313,18 @@ end" }
|
|
313
313
|
comp = Vanagon::Component::DSL.new('requires-test', {}, {})
|
314
314
|
comp.requires('library1')
|
315
315
|
comp.requires('library2')
|
316
|
-
expect(comp._component.requires).to include('library1')
|
317
|
-
expect(comp._component.requires).to include('library2')
|
316
|
+
expect(comp._component.requires.first.requirement).to include('library1')
|
317
|
+
expect(comp._component.requires.last.requirement).to include('library2')
|
318
318
|
end
|
319
319
|
end
|
320
320
|
|
321
|
+
it 'supports versioned requires' do
|
322
|
+
comp = Vanagon::Component::DSL.new('requires-test', {}, {})
|
323
|
+
comp.requires('library1', '1.2.3')
|
324
|
+
expect(comp._component.requires.first.requirement).to eq('library1')
|
325
|
+
expect(comp._component.requires.first.version).to eq('1.2.3')
|
326
|
+
end
|
327
|
+
|
321
328
|
describe '#provides' do
|
322
329
|
it 'adds the package provide to the list of provides' do
|
323
330
|
comp = Vanagon::Component::DSL.new('provides-test', {}, {})
|
@@ -5,8 +5,9 @@ describe "Vanagon::Component" do
|
|
5
5
|
describe "#get_environment" do
|
6
6
|
subject { Vanagon::Component.new('env-test', {}, {}) }
|
7
7
|
|
8
|
-
it "
|
9
|
-
expect
|
8
|
+
it "logs a deprecation warning with VanagonLogger.info" do
|
9
|
+
expect(VanagonLogger).to receive(:info).with(/deprecated/)
|
10
|
+
subject.get_environment
|
10
11
|
end
|
11
12
|
|
12
13
|
it "returns a makefile compatible environment" do
|
@@ -50,7 +50,7 @@ describe 'Vanagon::Driver' do
|
|
50
50
|
info = create_driver(redhat).build_host_info
|
51
51
|
|
52
52
|
expect(info).to match({ 'name' => 'centos-7-x86_64',
|
53
|
-
'engine' => '
|
53
|
+
'engine' => 'always_be_scheduling' })
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'returns the vmpooler template with an explicit engine' do
|
@@ -2,6 +2,7 @@ require 'vanagon/engine/always_be_scheduling'
|
|
2
2
|
require 'vanagon/driver'
|
3
3
|
require 'vanagon/platform'
|
4
4
|
require 'logger'
|
5
|
+
require 'spec_helper'
|
5
6
|
|
6
7
|
class Vanagon
|
7
8
|
class Driver
|
@@ -45,6 +46,8 @@ describe 'Vanagon::Engine::AlwaysBeScheduling' do
|
|
45
46
|
end")
|
46
47
|
plat._platform
|
47
48
|
}
|
49
|
+
let(:pooler_token_file) { File.expand_path('~/.vanagon-token') }
|
50
|
+
let(:floaty_config) { File.expand_path('~/.vmfloaty.yml') }
|
48
51
|
|
49
52
|
describe '#validate_platform' do
|
50
53
|
it 'returns true if the platform has the required attributes' do
|
@@ -81,4 +84,113 @@ describe 'Vanagon::Engine::AlwaysBeScheduling' do
|
|
81
84
|
.to eq('always_be_scheduling')
|
82
85
|
end
|
83
86
|
end
|
84
|
-
|
87
|
+
|
88
|
+
describe '#read_vanagon_token' do
|
89
|
+
it 'takes the first line for abs token, second line is optional' do
|
90
|
+
token_value = 'decade'
|
91
|
+
allow(File).to receive(:exist?)
|
92
|
+
.with(pooler_token_file)
|
93
|
+
.and_return(true)
|
94
|
+
|
95
|
+
allow(File).to receive(:read)
|
96
|
+
.with(pooler_token_file)
|
97
|
+
.and_return(token_value)
|
98
|
+
|
99
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
100
|
+
expect(abs_service.token).to eq('decade')
|
101
|
+
expect(abs_service.token_vmpooler).to eq(nil)
|
102
|
+
end
|
103
|
+
it 'takes the second line as vmpooler token' do
|
104
|
+
token_value = "decade\nanddaycade"
|
105
|
+
allow(File).to receive(:exist?)
|
106
|
+
.with(pooler_token_file)
|
107
|
+
.and_return(true)
|
108
|
+
|
109
|
+
allow(File).to receive(:read)
|
110
|
+
.with(pooler_token_file)
|
111
|
+
.and_return(token_value)
|
112
|
+
|
113
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
114
|
+
expect(abs_service.token).to eq('decade')
|
115
|
+
expect(abs_service.token_vmpooler).to eq('anddaycade')
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe '#read_vmfloaty_token' do
|
120
|
+
before :each do
|
121
|
+
allow(File).to receive(:exist?)
|
122
|
+
.with(pooler_token_file)
|
123
|
+
.and_return(false)
|
124
|
+
|
125
|
+
allow(File).to receive(:exist?)
|
126
|
+
.with(floaty_config)
|
127
|
+
.and_return(true)
|
128
|
+
end
|
129
|
+
token_value = 'decade'
|
130
|
+
it %(reads a token from '~/.vmfloaty.yml at the top level') do
|
131
|
+
allow(YAML).to receive(:load_file)
|
132
|
+
.with(floaty_config)
|
133
|
+
.and_return({'token' => token_value})
|
134
|
+
|
135
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
136
|
+
expect(abs_service.token).to eq(token_value)
|
137
|
+
expect(abs_service.token_vmpooler).to eq(nil)
|
138
|
+
end
|
139
|
+
it %(reads a token from '~/.vmfloaty.yml in the abs service') do
|
140
|
+
allow(YAML).to receive(:load_file)
|
141
|
+
.with(floaty_config)
|
142
|
+
.and_return({'services' =>
|
143
|
+
{'MYabs' => {'type'=>'abs', 'token'=>token_value, 'url'=>'foo'}}
|
144
|
+
})
|
145
|
+
|
146
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
147
|
+
expect(abs_service.token).to eq(token_value)
|
148
|
+
expect(abs_service.token_vmpooler).to eq(nil)
|
149
|
+
end
|
150
|
+
it %(reads a token from '~/.vmfloaty.yml in the abs service and includes the vmpooler token') do
|
151
|
+
vmp_token_value = 'deecade'
|
152
|
+
allow(YAML).to receive(:load_file)
|
153
|
+
.with(floaty_config)
|
154
|
+
.and_return({'services' =>
|
155
|
+
{'MYabs' => {'type'=>'abs', 'token'=>token_value, 'url'=>'foo', 'vmpooler_fallback' => 'myvmp'},
|
156
|
+
'myvmp' => {'token'=>vmp_token_value, 'url'=>'bar'}}
|
157
|
+
})
|
158
|
+
|
159
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
160
|
+
expect(abs_service.token).to eq(token_value)
|
161
|
+
expect(abs_service.token_vmpooler).to eq(vmp_token_value)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
describe '#select_target_from' do
|
165
|
+
it 'runs successfully' do
|
166
|
+
hostname = 'faint-whirlwind.puppet.com'
|
167
|
+
stub_request(:post, "https://foobar/request").
|
168
|
+
to_return({status: 202, body: "", headers: {}},{status: 200, body: '[{"hostname":"'+hostname+'","type":"aix-6.1-ppc","engine":"nspooler"}]', headers: {}})
|
169
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
170
|
+
abs_service.select_target_from("https://foobar")
|
171
|
+
expect(abs_service.target).to eq(hostname)
|
172
|
+
end
|
173
|
+
it 'returns a warning if the first request is not a 202' do
|
174
|
+
hostname = 'fainter-whirlwind.puppet.com'
|
175
|
+
stub_request(:post, "https://foobar/request").
|
176
|
+
to_return({status: 404, body: "", headers: {}},{status: 200, body: '[{"hostname":"'+hostname+'","type":"aix-6.1-ppc","engine":"nspooler"}]', headers: {}})
|
177
|
+
allow_any_instance_of(VanagonLogger).to receive(:info)
|
178
|
+
expect_any_instance_of(VanagonLogger).to receive(:info).with("failed to request ABS with code 404")
|
179
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
180
|
+
pooler = abs_service.select_target_from("https://foobar")
|
181
|
+
expect(pooler).to eq('')
|
182
|
+
end
|
183
|
+
it 'returns a warning and retries until request is a 200' do
|
184
|
+
hostname = 'faintest-whirlwind.puppet.com'
|
185
|
+
stub_request(:post, "https://foobar/request").
|
186
|
+
to_return({status: 202, body: "", headers: {}},
|
187
|
+
{status: 503, body: "", headers: {}},
|
188
|
+
{status: 200, body: '[{"hostname":"'+hostname+'","type":"aix-6.1-ppc","engine":"nspooler"}]', headers: {}})
|
189
|
+
allow_any_instance_of(VanagonLogger).to receive(:info)
|
190
|
+
expect_any_instance_of(VanagonLogger).to receive(:info).with(/Waiting 1 seconds to check if ABS request has been filled/)
|
191
|
+
abs_service = Vanagon::Engine::AlwaysBeScheduling.new(platform, nil)
|
192
|
+
abs_service.select_target_from("https://foobar")
|
193
|
+
expect(abs_service.target).to eq(hostname)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
@@ -27,6 +27,8 @@ if defined? ::Aws
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'returns "ec2" name' do
|
30
|
+
stub_request(:get, "http://169.254.169.254/latest/meta-data/iam/security-credentials/").
|
31
|
+
to_return(status: 200, body: "", headers: {})
|
30
32
|
expect(Vanagon::Engine::Ec2.new(platform_ec2).name).to eq('ec2')
|
31
33
|
end
|
32
34
|
end
|
@@ -6,7 +6,7 @@ describe 'Vanagon::Engine::Pooler' do
|
|
6
6
|
let (:platform_with_vcloud_name) {
|
7
7
|
plat = Vanagon::Platform::DSL.new('debian-6-i386')
|
8
8
|
plat.instance_eval("platform 'debian-6-i386' do |plat|
|
9
|
-
plat.
|
9
|
+
plat.vmpooler_template 'debian-6-i386'
|
10
10
|
end")
|
11
11
|
plat._platform
|
12
12
|
}
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|
@@ -107,6 +107,8 @@ files:
|
|
107
107
|
- bin/ship
|
108
108
|
- bin/sign
|
109
109
|
- bin/vanagon
|
110
|
+
- extras/completions/vanagon.bash
|
111
|
+
- extras/completions/vanagon.zsh
|
110
112
|
- lib/git/basic_submodules.rb
|
111
113
|
- lib/git/rev_list.rb
|
112
114
|
- lib/makefile.rb
|
@@ -115,7 +117,9 @@ files:
|
|
115
117
|
- lib/vanagon/cli/build.rb
|
116
118
|
- lib/vanagon/cli/build_host_info.rb
|
117
119
|
- lib/vanagon/cli/build_requirements.rb
|
120
|
+
- lib/vanagon/cli/completion.rb
|
118
121
|
- lib/vanagon/cli/inspect.rb
|
122
|
+
- lib/vanagon/cli/list.rb
|
119
123
|
- lib/vanagon/cli/render.rb
|
120
124
|
- lib/vanagon/cli/ship.rb
|
121
125
|
- lib/vanagon/cli/sign.rb
|
@@ -144,6 +148,7 @@ files:
|
|
144
148
|
- lib/vanagon/extensions/ostruct/json.rb
|
145
149
|
- lib/vanagon/extensions/set/json.rb
|
146
150
|
- lib/vanagon/extensions/string.rb
|
151
|
+
- lib/vanagon/logger.rb
|
147
152
|
- lib/vanagon/patch.rb
|
148
153
|
- lib/vanagon/platform.rb
|
149
154
|
- lib/vanagon/platform/deb.rb
|
@@ -288,41 +293,41 @@ signing_key:
|
|
288
293
|
specification_version: 3
|
289
294
|
summary: All of your packages will fit into this van with this one simple trick.
|
290
295
|
test_files:
|
291
|
-
- spec/lib/vanagon/
|
292
|
-
- spec/lib/vanagon/platform/osx_spec.rb
|
293
|
-
- spec/lib/vanagon/platform/windows_spec.rb
|
294
|
-
- spec/lib/vanagon/platform/rpm_spec.rb
|
295
|
-
- spec/lib/vanagon/platform/deb_spec.rb
|
296
|
-
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
297
|
-
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
298
|
-
- spec/lib/vanagon/platform/dsl_spec.rb
|
299
|
-
- spec/lib/vanagon/driver_spec.rb
|
300
|
-
- spec/lib/vanagon/project/dsl_spec.rb
|
301
|
-
- spec/lib/vanagon/utilities_spec.rb
|
302
|
-
- spec/lib/vanagon/cli_spec.rb
|
303
|
-
- spec/lib/vanagon/environment_spec.rb
|
304
|
-
- spec/lib/vanagon/component/rules_spec.rb
|
305
|
-
- spec/lib/vanagon/component/source_spec.rb
|
296
|
+
- spec/lib/vanagon/component/dsl_spec.rb
|
306
297
|
- spec/lib/vanagon/component/source/local_spec.rb
|
307
|
-
- spec/lib/vanagon/component/source/git_spec.rb
|
308
|
-
- spec/lib/vanagon/component/source/http_spec.rb
|
309
298
|
- spec/lib/vanagon/component/source/rewrite_spec.rb
|
310
|
-
- spec/lib/vanagon/component/
|
311
|
-
- spec/lib/vanagon/
|
299
|
+
- spec/lib/vanagon/component/source/http_spec.rb
|
300
|
+
- spec/lib/vanagon/component/source/git_spec.rb
|
301
|
+
- spec/lib/vanagon/component/rules_spec.rb
|
302
|
+
- spec/lib/vanagon/component/source_spec.rb
|
312
303
|
- spec/lib/vanagon/extensions/set/json_spec.rb
|
313
304
|
- spec/lib/vanagon/extensions/string_spec.rb
|
314
305
|
- spec/lib/vanagon/extensions/ostruct/json_spec.rb
|
306
|
+
- spec/lib/vanagon/platform/dsl_spec.rb
|
307
|
+
- spec/lib/vanagon/platform/windows_spec.rb
|
308
|
+
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
309
|
+
- spec/lib/vanagon/platform/rpm/aix_spec.rb
|
310
|
+
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
311
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
312
|
+
- spec/lib/vanagon/platform/osx_spec.rb
|
313
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
314
|
+
- spec/lib/vanagon/common/pathname_spec.rb
|
315
|
+
- spec/lib/vanagon/common/user_spec.rb
|
316
|
+
- spec/lib/vanagon/utilities_spec.rb
|
317
|
+
- spec/lib/vanagon/project_spec.rb
|
318
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
315
319
|
- spec/lib/vanagon/component_spec.rb
|
320
|
+
- spec/lib/vanagon/utilities/shell_utilities_spec.rb
|
321
|
+
- spec/lib/vanagon/environment_spec.rb
|
322
|
+
- spec/lib/vanagon/driver_spec.rb
|
323
|
+
- spec/lib/vanagon/cli_spec.rb
|
316
324
|
- spec/lib/vanagon/platform_spec.rb
|
317
325
|
- spec/lib/vanagon/engine/local_spec.rb
|
318
|
-
- spec/lib/vanagon/engine/
|
326
|
+
- spec/lib/vanagon/engine/ec2_spec.rb
|
319
327
|
- spec/lib/vanagon/engine/always_be_scheduling_spec.rb
|
320
|
-
- spec/lib/vanagon/engine/pooler_spec.rb
|
321
328
|
- spec/lib/vanagon/engine/base_spec.rb
|
322
|
-
- spec/lib/vanagon/engine/ec2_spec.rb
|
323
329
|
- spec/lib/vanagon/engine/docker_spec.rb
|
324
|
-
- spec/lib/vanagon/
|
325
|
-
- spec/lib/vanagon/
|
326
|
-
- spec/lib/vanagon/project_spec.rb
|
330
|
+
- spec/lib/vanagon/engine/hardware_spec.rb
|
331
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|
327
332
|
- spec/lib/makefile_spec.rb
|
328
333
|
- spec/lib/git/rev_list_spec.rb
|