vcloud-edge_gateway 0.5.0 → 1.0.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.
- data/.gitignore +1 -0
- data/.travis.yml +0 -3
- data/CHANGELOG.md +30 -0
- data/CONTRIBUTING.md +66 -0
- data/README.md +16 -8
- data/Rakefile +1 -1
- data/bin/vcloud-configure-edge +2 -29
- data/bin/vcloud-edge-configure +5 -0
- data/jenkins.sh +7 -0
- data/jenkins_integration_tests.sh +7 -0
- data/lib/vcloud/edge_gateway/cli.rb +137 -0
- data/lib/vcloud/edge_gateway/configuration_differ.rb +2 -1
- data/lib/vcloud/edge_gateway/configure.rb +9 -5
- data/lib/vcloud/edge_gateway/edge_gateway_configuration.rb +36 -30
- data/lib/vcloud/edge_gateway/version.rb +1 -1
- data/lib/vcloud/edge_gateway.rb +1 -0
- data/spec/integration/README.md +38 -0
- data/spec/integration/edge_gateway/{firewall_service_spec.rb → configure_firewall_spec.rb} +14 -43
- data/spec/integration/edge_gateway/{load_balancer_service_spec.rb → configure_load_balancer_spec.rb} +26 -32
- data/spec/integration/edge_gateway/{nat_service_spec.rb → configure_nat_spec.rb} +32 -44
- data/spec/integration/edge_gateway/{edge_gateway_services_spec.rb → configure_services_spec.rb} +26 -28
- data/spec/integration/vcloud_tools_testing_config.yaml.template +8 -0
- data/spec/spec_helper.rb +26 -15
- data/spec/support/integration_helper.rb +8 -20
- data/spec/vcloud/edge_gateway/cli_spec.rb +221 -0
- data/spec/vcloud/edge_gateway/configure_spec.rb +81 -0
- data/spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb +75 -0
- data/vcloud-edge_gateway.gemspec +3 -1
- metadata +59 -15
@@ -0,0 +1,221 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class CommandRun
|
4
|
+
attr_accessor :stdout, :stderr, :exitstatus
|
5
|
+
|
6
|
+
def initialize(args)
|
7
|
+
out = StringIO.new
|
8
|
+
err = StringIO.new
|
9
|
+
|
10
|
+
$stdout = out
|
11
|
+
$stderr = err
|
12
|
+
|
13
|
+
begin
|
14
|
+
Vcloud::EdgeGateway::Cli.new(args).run
|
15
|
+
@exitstatus = 0
|
16
|
+
rescue SystemExit => e
|
17
|
+
# Capture exit(n) value.
|
18
|
+
@exitstatus = e.status
|
19
|
+
end
|
20
|
+
|
21
|
+
@stdout = out.string.strip
|
22
|
+
@stderr = err.string.strip
|
23
|
+
|
24
|
+
$stdout = STDOUT
|
25
|
+
$stderr = STDERR
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe Vcloud::EdgeGateway::Cli do
|
30
|
+
subject { CommandRun.new(args) }
|
31
|
+
|
32
|
+
describe "normal usage" do
|
33
|
+
let(:mock_configure) {
|
34
|
+
double(:configure, :update => {})
|
35
|
+
}
|
36
|
+
|
37
|
+
context "when given a single config file" do
|
38
|
+
let(:args) { %w{config.yaml} }
|
39
|
+
|
40
|
+
it "should pass single argument, call update without any args, and exit normally" do
|
41
|
+
expect(Vcloud::EdgeGateway::Configure).to receive(:new).
|
42
|
+
with('config.yaml').and_return(mock_configure)
|
43
|
+
expect(mock_configure).to receive(:update).with(no_args)
|
44
|
+
expect(subject.exitstatus).to eq(0)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "when given --template-vars and config file" do
|
49
|
+
let(:args) { %w{--template-vars vars.yaml config.yaml} }
|
50
|
+
|
51
|
+
it "should pass two arguments and exit normally" do
|
52
|
+
expect(Vcloud::EdgeGateway::Configure).to receive(:new).
|
53
|
+
with('config.yaml', 'vars.yaml').and_return(mock_configure)
|
54
|
+
expect(mock_configure).to receive(:update)
|
55
|
+
expect(subject.exitstatus).to eq(0)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "when given --dry-run and config file" do
|
60
|
+
let(:args) { %w{--dry-run config.yaml} }
|
61
|
+
|
62
|
+
it "should call update(true) and exit normally" do
|
63
|
+
expect(Vcloud::EdgeGateway::Configure).to receive(:new).
|
64
|
+
with('config.yaml').and_return(mock_configure)
|
65
|
+
expect(mock_configure).to receive(:update).with(true)
|
66
|
+
expect(subject.exitstatus).to eq(0)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "when asked to display version" do
|
71
|
+
let(:args) { %w{--version} }
|
72
|
+
|
73
|
+
it "should not call Configure" do
|
74
|
+
expect(Vcloud::EdgeGateway::Configure).not_to receive(:new)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should print version and exit normally" do
|
78
|
+
expect(subject.stdout).to eq(Vcloud::EdgeGateway::VERSION)
|
79
|
+
expect(subject.exitstatus).to eq(0)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "when asked to display help" do
|
84
|
+
let(:args) { %w{--help} }
|
85
|
+
|
86
|
+
it "should not call Configure" do
|
87
|
+
expect(Vcloud::EdgeGateway::Configure).not_to receive(:new)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should print usage and exit normally" do
|
91
|
+
expect(subject.stderr).to match(/\AUsage: \S+ \[options\] config_file\n/)
|
92
|
+
expect(subject.exitstatus).to eq(0)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "diff output" do
|
98
|
+
shared_examples "diff with stdout contents" do |expected_stdout|
|
99
|
+
it "should output diff to stdout" do
|
100
|
+
expect(Vcloud::EdgeGateway::Configure).to receive(:new).
|
101
|
+
with('config.yaml').and_return(mock_configure)
|
102
|
+
expect(subject.stdout).to eq(expected_stdout.chomp)
|
103
|
+
expect(subject.exitstatus).to eq(0)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context "when diff is empty" do
|
108
|
+
let(:mock_configure) {
|
109
|
+
double(:configure, :update => {})
|
110
|
+
}
|
111
|
+
|
112
|
+
context "when given config (colour doesn't matter)" do
|
113
|
+
let(:args) { %w{config.yaml} }
|
114
|
+
|
115
|
+
it_behaves_like "diff with stdout contents", ""
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context "when diff contains two services with three types of changes" do
|
120
|
+
shared_examples "diff with colour output" do
|
121
|
+
include_examples "diff with stdout contents", <<-EOS.chomp
|
122
|
+
\033[31m- FirewallService.IsEnabled: true\033[0m
|
123
|
+
\033[32m+ FirewallService.LogDefaultAction: false\033[0m
|
124
|
+
\033[31m- NatService.IsEnabled: true\033[0m
|
125
|
+
\033[32m+ NatService.IsEnabled: false\033[0m
|
126
|
+
EOS
|
127
|
+
end
|
128
|
+
|
129
|
+
shared_examples "diff without colour output" do
|
130
|
+
include_examples "diff with stdout contents", <<-EOS.chomp
|
131
|
+
- FirewallService.IsEnabled: true
|
132
|
+
+ FirewallService.LogDefaultAction: false
|
133
|
+
- NatService.IsEnabled: true
|
134
|
+
+ NatService.IsEnabled: false
|
135
|
+
EOS
|
136
|
+
end
|
137
|
+
|
138
|
+
let(:mock_configure) {
|
139
|
+
double(:configure, :update => {
|
140
|
+
:FirewallService => [
|
141
|
+
["-", "IsEnabled", "true"],
|
142
|
+
["+", "LogDefaultAction", "false"],
|
143
|
+
],
|
144
|
+
:NatService => [
|
145
|
+
["~", "IsEnabled", "true", "false"],
|
146
|
+
],
|
147
|
+
})
|
148
|
+
}
|
149
|
+
|
150
|
+
context "STDOUT is not redirected" do
|
151
|
+
before(:each) {
|
152
|
+
STDOUT.stub(:tty?).and_return(true)
|
153
|
+
}
|
154
|
+
|
155
|
+
context "when colour argument is not specified" do
|
156
|
+
let(:args) { %w{config.yaml} }
|
157
|
+
|
158
|
+
it_behaves_like "diff with colour output"
|
159
|
+
end
|
160
|
+
|
161
|
+
context "when given --no-colour" do
|
162
|
+
let(:args) { %w{--no-colour config.yaml} }
|
163
|
+
|
164
|
+
it_behaves_like "diff without colour output"
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
context "STDOUT is redirected" do
|
169
|
+
before(:each) {
|
170
|
+
STDOUT.stub(:tty?).and_return(false)
|
171
|
+
}
|
172
|
+
|
173
|
+
context "when colour argument is not specified" do
|
174
|
+
let(:args) { %w{config.yaml} }
|
175
|
+
|
176
|
+
it_behaves_like "diff without colour output"
|
177
|
+
end
|
178
|
+
|
179
|
+
context "when given --colour" do
|
180
|
+
let(:args) { %w{--colour config.yaml} }
|
181
|
+
|
182
|
+
it_behaves_like "diff with colour output"
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
describe "incorrect usage" do
|
189
|
+
shared_examples "print usage and exit abnormally" do |error|
|
190
|
+
it "should not call Configure" do
|
191
|
+
expect(Vcloud::EdgeGateway::Configure).not_to receive(:new)
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should print error message and usage" do
|
195
|
+
expect(subject.stderr).to match(/\A\S+: #{error}\nUsage: \S+/)
|
196
|
+
end
|
197
|
+
|
198
|
+
it "should exit abnormally for incorrect usage" do
|
199
|
+
expect(subject.exitstatus).to eq(2)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
context "when run without any arguments" do
|
204
|
+
let(:args) { %w{} }
|
205
|
+
|
206
|
+
it_behaves_like "print usage and exit abnormally", "must supply config_file"
|
207
|
+
end
|
208
|
+
|
209
|
+
context "when given a multiple config files" do
|
210
|
+
let(:args) { %w{one.yaml two.yaml} }
|
211
|
+
|
212
|
+
it_behaves_like "print usage and exit abnormally", "must supply config_file"
|
213
|
+
end
|
214
|
+
|
215
|
+
context "when given an unrecognised argument" do
|
216
|
+
let(:args) { %w{--this-is-garbage} }
|
217
|
+
|
218
|
+
it_behaves_like "print usage and exit abnormally", "invalid option: --this-is-garbage"
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Vcloud::EdgeGateway::Configure do
|
4
|
+
describe 'dry_run' do
|
5
|
+
let(:expected_log_message) {
|
6
|
+
/: Dry run\. Skipping\.$/
|
7
|
+
}
|
8
|
+
let(:mock_edgegateway) {
|
9
|
+
double(:edgegateway,
|
10
|
+
:interfaces => 'chocolate cake',
|
11
|
+
:vcloud_attributes => {
|
12
|
+
:Configuration => {
|
13
|
+
:EdgeGatewayServiceConfiguration => 'ice cream cone',
|
14
|
+
}
|
15
|
+
}
|
16
|
+
)
|
17
|
+
}
|
18
|
+
|
19
|
+
before(:each) {
|
20
|
+
Vcloud::Core::EdgeGateway.stub(:get_by_name).and_return(mock_edgegateway)
|
21
|
+
|
22
|
+
mock_configloader = double(:configloader,
|
23
|
+
:load_config => { :gateway => 'pickle' }
|
24
|
+
)
|
25
|
+
Vcloud::Core::ConfigLoader.stub(:new).and_return(mock_configloader)
|
26
|
+
|
27
|
+
mock_configuration = double(:configuration,
|
28
|
+
:update_required? => true,
|
29
|
+
:config => 'slice of swiss cheese',
|
30
|
+
:diff => ['slice of salami'],
|
31
|
+
)
|
32
|
+
Vcloud::EdgeGateway::EdgeGatewayConfiguration.stub(:new).and_return(mock_configuration)
|
33
|
+
}
|
34
|
+
|
35
|
+
context "when false (default)" do
|
36
|
+
let(:subject) {
|
37
|
+
Vcloud::EdgeGateway::Configure.new('lollipop.yaml').update
|
38
|
+
}
|
39
|
+
|
40
|
+
it "should call update_configuration" do
|
41
|
+
expect(mock_edgegateway).to receive(:update_configuration).with('slice of swiss cheese')
|
42
|
+
subject
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should not log message about dry run" do
|
46
|
+
mock_edgegateway.stub(:update_configuration)
|
47
|
+
expect(Vcloud::Core.logger).not_to receive(:info).with(expected_log_message)
|
48
|
+
subject
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return diff" do
|
52
|
+
mock_edgegateway.stub(:update_configuration)
|
53
|
+
expect(subject).to eq(['slice of salami'])
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "when true" do
|
58
|
+
let(:subject) {
|
59
|
+
Vcloud::EdgeGateway::Configure.new('lollipop.yaml').update(true)
|
60
|
+
}
|
61
|
+
|
62
|
+
it "should not call update_configuration" do
|
63
|
+
Vcloud::Core.logger.stub(:info)
|
64
|
+
expect(mock_edgegateway).not_to receive(:update_configuration)
|
65
|
+
subject
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should log message about dry run" do
|
69
|
+
mock_edgegateway.stub(:update_configuration)
|
70
|
+
expect(Vcloud::Core.logger).to receive(:info).with(expected_log_message)
|
71
|
+
subject
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should return diff" do
|
75
|
+
Vcloud::Core.logger.stub(:info)
|
76
|
+
mock_edgegateway.stub(:update_configuration)
|
77
|
+
expect(subject).to eq(['slice of salami'])
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -83,6 +83,14 @@ module Vcloud
|
|
83
83
|
expect(proposed_load_balancer_config).to eq(expected_load_balancer_config)
|
84
84
|
end
|
85
85
|
|
86
|
+
it "proposed diff contains changes for all services" do
|
87
|
+
diff = @proposed_config.diff
|
88
|
+
expect(diff.keys).to eq([:FirewallService, :NatService, :LoadBalancerService])
|
89
|
+
expect(diff[:FirewallService]).to have_at_least(1).items
|
90
|
+
expect(diff[:NatService]).to have_at_least(1).items
|
91
|
+
expect(diff[:LoadBalancerService]).to have_at_least(1).items
|
92
|
+
end
|
93
|
+
|
86
94
|
end
|
87
95
|
|
88
96
|
context "firewall config has changed and nat has not, load_balancer absent" do
|
@@ -121,6 +129,12 @@ module Vcloud
|
|
121
129
|
expect(@proposed_config.config.key?(:LoadBalancerService)).to be(false)
|
122
130
|
end
|
123
131
|
|
132
|
+
it "proposed diff contains changes for firewall service" do
|
133
|
+
diff = @proposed_config.diff
|
134
|
+
expect(diff.keys).to eq([:FirewallService])
|
135
|
+
expect(diff[:FirewallService]).to have_at_least(1).items
|
136
|
+
end
|
137
|
+
|
124
138
|
end
|
125
139
|
|
126
140
|
context "firewall config has changed and nat & load_balancer configs are absent" do
|
@@ -159,6 +173,12 @@ module Vcloud
|
|
159
173
|
expect(@proposed_config.config.key?(:LoadBalancerService)).to be(false)
|
160
174
|
end
|
161
175
|
|
176
|
+
it "proposed diff contains changes for firewall service" do
|
177
|
+
diff = @proposed_config.diff
|
178
|
+
expect(diff.keys).to eq([:FirewallService])
|
179
|
+
expect(diff[:FirewallService]).to have_at_least(1).items
|
180
|
+
end
|
181
|
+
|
162
182
|
end
|
163
183
|
|
164
184
|
context "load_balancer config has changed and firewall & nat have not" do
|
@@ -199,6 +219,12 @@ module Vcloud
|
|
199
219
|
expect(@proposed_config.config.key?(:FirewallService)).to be(false)
|
200
220
|
end
|
201
221
|
|
222
|
+
it "proposed diff contains changes for load balancer service" do
|
223
|
+
diff = @proposed_config.diff
|
224
|
+
expect(diff.keys).to eq([:LoadBalancerService])
|
225
|
+
expect(diff[:LoadBalancerService]).to have_at_least(1).items
|
226
|
+
end
|
227
|
+
|
202
228
|
end
|
203
229
|
|
204
230
|
context "load_balancer & firewall config have changed and nat has not" do
|
@@ -240,6 +266,13 @@ module Vcloud
|
|
240
266
|
expect(proposed_firewall_config).to eq(expected_firewall_config)
|
241
267
|
end
|
242
268
|
|
269
|
+
it "proposed diff contains changes for firewall and load balancer services" do
|
270
|
+
diff = @proposed_config.diff
|
271
|
+
expect(diff.keys).to eq([:FirewallService, :LoadBalancerService])
|
272
|
+
expect(diff[:FirewallService]).to have_at_least(1).items
|
273
|
+
expect(diff[:LoadBalancerService]).to have_at_least(1).items
|
274
|
+
end
|
275
|
+
|
243
276
|
end
|
244
277
|
|
245
278
|
|
@@ -279,6 +312,12 @@ module Vcloud
|
|
279
312
|
expect(@proposed_config.config.key?(:FirewallService)).to be(false)
|
280
313
|
end
|
281
314
|
|
315
|
+
it "proposed diff contains changes for load balancer service" do
|
316
|
+
diff = @proposed_config.diff
|
317
|
+
expect(diff.keys).to eq([:LoadBalancerService])
|
318
|
+
expect(diff[:LoadBalancerService]).to have_at_least(1).items
|
319
|
+
end
|
320
|
+
|
282
321
|
end
|
283
322
|
|
284
323
|
context "all configs are present but haven't changed" do
|
@@ -310,6 +349,10 @@ module Vcloud
|
|
310
349
|
expect(@proposed_config.config.empty?).to be(true)
|
311
350
|
end
|
312
351
|
|
352
|
+
it "proposed diff contains no changes" do
|
353
|
+
expect(@proposed_config.diff).to eq({})
|
354
|
+
end
|
355
|
+
|
313
356
|
end
|
314
357
|
|
315
358
|
context "firewall config has not changed and nat & load_balancer config is absent" do
|
@@ -339,6 +382,10 @@ module Vcloud
|
|
339
382
|
expect(@proposed_config.config.empty?).to be(true)
|
340
383
|
end
|
341
384
|
|
385
|
+
it "proposed diff contains no changes" do
|
386
|
+
expect(@proposed_config.diff).to eq({})
|
387
|
+
end
|
388
|
+
|
342
389
|
end
|
343
390
|
|
344
391
|
context "no service config is present" do
|
@@ -367,6 +414,10 @@ module Vcloud
|
|
367
414
|
expect(@proposed_config.config.empty?).to be(true)
|
368
415
|
end
|
369
416
|
|
417
|
+
it "proposed diff contains no changes" do
|
418
|
+
expect(@proposed_config.diff).to eq({})
|
419
|
+
end
|
420
|
+
|
370
421
|
end
|
371
422
|
|
372
423
|
context "when there is a missing remote LoadBalancerService, we can still update NatService" do
|
@@ -404,6 +455,12 @@ module Vcloud
|
|
404
455
|
expect(@proposed_config.config.key?(:FirewallService)).to be(false)
|
405
456
|
end
|
406
457
|
|
458
|
+
it "proposed diff contains changes for nat service" do
|
459
|
+
diff = @proposed_config.diff
|
460
|
+
expect(diff.keys).to eq([:NatService])
|
461
|
+
expect(diff[:NatService]).to have_at_least(1).items
|
462
|
+
end
|
463
|
+
|
407
464
|
end
|
408
465
|
|
409
466
|
context "there is no remote FirewallService config, but we are trying to update it" do
|
@@ -441,6 +498,12 @@ module Vcloud
|
|
441
498
|
expect(@proposed_config.config.key?(:NatService)).to be(false)
|
442
499
|
end
|
443
500
|
|
501
|
+
it "proposed diff contains changes for firewall service" do
|
502
|
+
diff = @proposed_config.diff
|
503
|
+
expect(diff.keys).to eq([:FirewallService])
|
504
|
+
expect(diff[:FirewallService]).to have_at_least(1).items
|
505
|
+
end
|
506
|
+
|
444
507
|
end
|
445
508
|
|
446
509
|
context "there is no remote NatService config, but we are trying to update it" do
|
@@ -478,6 +541,12 @@ module Vcloud
|
|
478
541
|
expect(@proposed_config.config.key?(:FirewallService)).to be(false)
|
479
542
|
end
|
480
543
|
|
544
|
+
it "proposed diff contains changes for nat service" do
|
545
|
+
diff = @proposed_config.diff
|
546
|
+
expect(diff.keys).to eq([:NatService])
|
547
|
+
expect(diff[:NatService]).to have_at_least(1).items
|
548
|
+
end
|
549
|
+
|
481
550
|
end
|
482
551
|
|
483
552
|
context "there is no remote LoadBalancer config, but we are trying to update it" do
|
@@ -515,6 +584,12 @@ module Vcloud
|
|
515
584
|
expect(@proposed_config.config.key?(:FirewallService)).to be(false)
|
516
585
|
end
|
517
586
|
|
587
|
+
it "proposed diff contains changes for load balancer service" do
|
588
|
+
diff = @proposed_config.diff
|
589
|
+
expect(diff.keys).to eq([:LoadBalancerService])
|
590
|
+
expect(diff[:LoadBalancerService]).to have_at_least(1).items
|
591
|
+
end
|
592
|
+
|
518
593
|
end
|
519
594
|
|
520
595
|
def test_firewall_config
|
data/vcloud-edge_gateway.gemspec
CHANGED
@@ -24,10 +24,12 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency 'fog', '>= 1.21.0'
|
25
25
|
s.add_runtime_dependency 'vcloud-core', '~> 0.2.0'
|
26
26
|
s.add_runtime_dependency 'hashdiff'
|
27
|
+
s.add_development_dependency 'pry'
|
27
28
|
s.add_development_dependency 'rake'
|
28
29
|
s.add_development_dependency 'rspec', '~> 2.14.1'
|
29
|
-
s.add_development_dependency 'rubocop'
|
30
|
+
s.add_development_dependency 'rubocop', '~> 0.23.0'
|
30
31
|
s.add_development_dependency 'simplecov', '~> 0.8.2'
|
31
32
|
s.add_development_dependency 'gem_publisher', '1.2.0'
|
33
|
+
s.add_development_dependency 'vcloud-tools-tester', '0.0.5'
|
32
34
|
end
|
33
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcloud-edge_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-06-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: pry
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
79
|
name: rake
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,17 +112,17 @@ dependencies:
|
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
97
113
|
none: false
|
98
114
|
requirements:
|
99
|
-
- -
|
115
|
+
- - ~>
|
100
116
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
117
|
+
version: 0.23.0
|
102
118
|
type: :development
|
103
119
|
prerelease: false
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
105
121
|
none: false
|
106
122
|
requirements:
|
107
|
-
- -
|
123
|
+
- - ~>
|
108
124
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
125
|
+
version: 0.23.0
|
110
126
|
- !ruby/object:Gem::Dependency
|
111
127
|
name: simplecov
|
112
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,22 +155,41 @@ dependencies:
|
|
139
155
|
- - '='
|
140
156
|
- !ruby/object:Gem::Version
|
141
157
|
version: 1.2.0
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: vcloud-tools-tester
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - '='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 0.0.5
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - '='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.0.5
|
142
174
|
description: Tool to configure a VMware vCloud Edge Gateway. Uses vcloud-core.
|
143
175
|
email:
|
144
176
|
- anna.shipman@digital.cabinet-office.gov.uk
|
145
177
|
executables:
|
146
178
|
- vcloud-configure-edge
|
179
|
+
- vcloud-edge-configure
|
147
180
|
extensions: []
|
148
181
|
extra_rdoc_files: []
|
149
182
|
files:
|
150
183
|
- .gitignore
|
151
184
|
- .travis.yml
|
152
185
|
- CHANGELOG.md
|
186
|
+
- CONTRIBUTING.md
|
153
187
|
- Gemfile
|
154
188
|
- LICENSE.txt
|
155
189
|
- README.md
|
156
190
|
- Rakefile
|
157
191
|
- bin/vcloud-configure-edge
|
192
|
+
- bin/vcloud-edge-configure
|
158
193
|
- examples/vcloud-configure-edge/firewall-rules.yaml
|
159
194
|
- examples/vcloud-configure-edge/loadbalancer-rules.yaml
|
160
195
|
- examples/vcloud-configure-edge/nat-rules.yaml
|
@@ -164,6 +199,7 @@ files:
|
|
164
199
|
- jenkins.sh
|
165
200
|
- jenkins_integration_tests.sh
|
166
201
|
- lib/vcloud/edge_gateway.rb
|
202
|
+
- lib/vcloud/edge_gateway/cli.rb
|
167
203
|
- lib/vcloud/edge_gateway/configuration_differ.rb
|
168
204
|
- lib/vcloud/edge_gateway/configuration_generator/firewall_service.rb
|
169
205
|
- lib/vcloud/edge_gateway/configuration_generator/id_ranges.rb
|
@@ -179,6 +215,11 @@ files:
|
|
179
215
|
- lib/vcloud/edge_gateway/schema/load_balancer_service.rb
|
180
216
|
- lib/vcloud/edge_gateway/schema/nat_service.rb
|
181
217
|
- lib/vcloud/edge_gateway/version.rb
|
218
|
+
- spec/integration/README.md
|
219
|
+
- spec/integration/edge_gateway/configure_firewall_spec.rb
|
220
|
+
- spec/integration/edge_gateway/configure_load_balancer_spec.rb
|
221
|
+
- spec/integration/edge_gateway/configure_nat_spec.rb
|
222
|
+
- spec/integration/edge_gateway/configure_services_spec.rb
|
182
223
|
- spec/integration/edge_gateway/data/firewall_config.yaml.mustache
|
183
224
|
- spec/integration/edge_gateway/data/firewall_config_updated_rule.yaml.mustache
|
184
225
|
- spec/integration/edge_gateway/data/firewall_rule_order_test.yaml.mustache
|
@@ -192,12 +233,10 @@ files:
|
|
192
233
|
- spec/integration/edge_gateway/data/nat_and_firewall_config.yaml.mustache
|
193
234
|
- spec/integration/edge_gateway/data/nat_and_firewall_plus_load_balancer_config.yaml.mustache
|
194
235
|
- spec/integration/edge_gateway/data/nat_config.yaml.mustache
|
195
|
-
- spec/integration/
|
196
|
-
- spec/integration/edge_gateway/firewall_service_spec.rb
|
197
|
-
- spec/integration/edge_gateway/load_balancer_service_spec.rb
|
198
|
-
- spec/integration/edge_gateway/nat_service_spec.rb
|
236
|
+
- spec/integration/vcloud_tools_testing_config.yaml.template
|
199
237
|
- spec/spec_helper.rb
|
200
238
|
- spec/support/integration_helper.rb
|
239
|
+
- spec/vcloud/edge_gateway/cli_spec.rb
|
201
240
|
- spec/vcloud/edge_gateway/configuration_differ_shared_examples.rb
|
202
241
|
- spec/vcloud/edge_gateway/configuration_differ_spec.rb
|
203
242
|
- spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml
|
@@ -212,6 +251,7 @@ files:
|
|
212
251
|
- spec/vcloud/edge_gateway/configuration_generator/firewall_service_spec.rb
|
213
252
|
- spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb
|
214
253
|
- spec/vcloud/edge_gateway/configuration_generator/nat_service_spec.rb
|
254
|
+
- spec/vcloud/edge_gateway/configure_spec.rb
|
215
255
|
- spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb
|
216
256
|
- spec/vcloud/edge_gateway/firewall_configuration_differ_spec.rb
|
217
257
|
- spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb
|
@@ -242,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
282
|
version: '0'
|
243
283
|
segments:
|
244
284
|
- 0
|
245
|
-
hash: -
|
285
|
+
hash: -2937222901484224799
|
246
286
|
requirements: []
|
247
287
|
rubyforge_project:
|
248
288
|
rubygems_version: 1.8.23
|
@@ -250,6 +290,11 @@ signing_key:
|
|
250
290
|
specification_version: 3
|
251
291
|
summary: Tool to configure a VMware vCloud Edge Gateway
|
252
292
|
test_files:
|
293
|
+
- spec/integration/README.md
|
294
|
+
- spec/integration/edge_gateway/configure_firewall_spec.rb
|
295
|
+
- spec/integration/edge_gateway/configure_load_balancer_spec.rb
|
296
|
+
- spec/integration/edge_gateway/configure_nat_spec.rb
|
297
|
+
- spec/integration/edge_gateway/configure_services_spec.rb
|
253
298
|
- spec/integration/edge_gateway/data/firewall_config.yaml.mustache
|
254
299
|
- spec/integration/edge_gateway/data/firewall_config_updated_rule.yaml.mustache
|
255
300
|
- spec/integration/edge_gateway/data/firewall_rule_order_test.yaml.mustache
|
@@ -263,12 +308,10 @@ test_files:
|
|
263
308
|
- spec/integration/edge_gateway/data/nat_and_firewall_config.yaml.mustache
|
264
309
|
- spec/integration/edge_gateway/data/nat_and_firewall_plus_load_balancer_config.yaml.mustache
|
265
310
|
- spec/integration/edge_gateway/data/nat_config.yaml.mustache
|
266
|
-
- spec/integration/
|
267
|
-
- spec/integration/edge_gateway/firewall_service_spec.rb
|
268
|
-
- spec/integration/edge_gateway/load_balancer_service_spec.rb
|
269
|
-
- spec/integration/edge_gateway/nat_service_spec.rb
|
311
|
+
- spec/integration/vcloud_tools_testing_config.yaml.template
|
270
312
|
- spec/spec_helper.rb
|
271
313
|
- spec/support/integration_helper.rb
|
314
|
+
- spec/vcloud/edge_gateway/cli_spec.rb
|
272
315
|
- spec/vcloud/edge_gateway/configuration_differ_shared_examples.rb
|
273
316
|
- spec/vcloud/edge_gateway/configuration_differ_spec.rb
|
274
317
|
- spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml
|
@@ -283,6 +326,7 @@ test_files:
|
|
283
326
|
- spec/vcloud/edge_gateway/configuration_generator/firewall_service_spec.rb
|
284
327
|
- spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb
|
285
328
|
- spec/vcloud/edge_gateway/configuration_generator/nat_service_spec.rb
|
329
|
+
- spec/vcloud/edge_gateway/configure_spec.rb
|
286
330
|
- spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb
|
287
331
|
- spec/vcloud/edge_gateway/firewall_configuration_differ_spec.rb
|
288
332
|
- spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb
|