vcloud-edge_gateway 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/.gitignore +16 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.md +160 -0
  5. data/Rakefile +23 -0
  6. data/bin/vcloud-edge +12 -0
  7. data/jenkins.sh +11 -0
  8. data/lib/vcloud/config_loader.rb +27 -0
  9. data/lib/vcloud/config_validator.rb +207 -0
  10. data/lib/vcloud/edge_gateway/configuration_differ.rb +17 -0
  11. data/lib/vcloud/edge_gateway/configuration_generator/firewall_service.rb +63 -0
  12. data/lib/vcloud/edge_gateway/configuration_generator/id_ranges.rb +10 -0
  13. data/lib/vcloud/edge_gateway/configuration_generator/load_balancer_service.rb +243 -0
  14. data/lib/vcloud/edge_gateway/configuration_generator/nat_service.rb +54 -0
  15. data/lib/vcloud/edge_gateway/edge_gateway_configuration.rb +41 -0
  16. data/lib/vcloud/edge_gateway/version.rb +6 -0
  17. data/lib/vcloud/edge_gateway.rb +32 -0
  18. data/lib/vcloud/edge_gateway_services.rb +26 -0
  19. data/lib/vcloud/schema/edge_gateway.rb +15 -0
  20. data/lib/vcloud/schema/firewall_service.rb +39 -0
  21. data/lib/vcloud/schema/load_balancer_service.rb +129 -0
  22. data/lib/vcloud/schema/nat_service.rb +35 -0
  23. data/scripts/generate_fog_conf_file.sh +6 -0
  24. data/spec/erb_helper.rb +11 -0
  25. data/spec/integration/edge_gateway/data/firewall_config.yaml.erb +17 -0
  26. data/spec/integration/edge_gateway/data/firewall_config_updated_rule.yaml.erb +17 -0
  27. data/spec/integration/edge_gateway/data/firewall_rule_order_test.yaml.erb +24 -0
  28. data/spec/integration/edge_gateway/data/hairpin_nat_config.yaml.erb +13 -0
  29. data/spec/integration/edge_gateway/data/incorrect_firewall_config.yaml +14 -0
  30. data/spec/integration/edge_gateway/data/nat_and_firewall_config.yaml.erb +32 -0
  31. data/spec/integration/edge_gateway/data/nat_config.yaml.erb +17 -0
  32. data/spec/integration/edge_gateway/edge_gateway_services_spec.rb +132 -0
  33. data/spec/integration/edge_gateway/firewall_service_spec.rb +201 -0
  34. data/spec/integration/edge_gateway/nat_service_spec.rb +208 -0
  35. data/spec/spec_helper.rb +26 -0
  36. data/spec/vcloud/config_loader_spec.rb +112 -0
  37. data/spec/vcloud/config_validator_spec.rb +570 -0
  38. data/spec/vcloud/data/basic_preamble_test.erb +8 -0
  39. data/spec/vcloud/data/basic_preamble_test.erb.OUT +8 -0
  40. data/spec/vcloud/data/working.json +21 -0
  41. data/spec/vcloud/data/working.yaml +22 -0
  42. data/spec/vcloud/data/working_with_defaults.yaml +25 -0
  43. data/spec/vcloud/edge_gateway/configuration_differ_spec.rb +131 -0
  44. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml +41 -0
  45. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-output.yaml +93 -0
  46. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-input.yaml +39 -0
  47. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-output.yaml +92 -0
  48. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-input.yaml +65 -0
  49. data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-output.yaml +94 -0
  50. data/spec/vcloud/edge_gateway/configuration_generator/firewall_service_spec.rb +378 -0
  51. data/spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb +233 -0
  52. data/spec/vcloud/edge_gateway/configuration_generator/nat_service_spec.rb +360 -0
  53. data/spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb +182 -0
  54. data/spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb +45 -0
  55. data/spec/vcloud/edge_gateway/load_balancer_schema_validation_spec.rb +153 -0
  56. data/spec/vcloud/edge_gateway/nat_schema_validation_spec.rb +93 -0
  57. data/vcloud-edge_gateway.gemspec +32 -0
  58. metadata +252 -0
@@ -0,0 +1,153 @@
1
+ require 'spec_helper'
2
+
3
+ module Vcloud
4
+ describe "load balancer service schema validation" do
5
+
6
+ context "validate pool entry" do
7
+
8
+ valid_tests = [
9
+ {
10
+ name: 'should validate ok if only mandatory fields are provided',
11
+ input: {
12
+ name: 'pool entry 1',
13
+ members: [
14
+ { ip_address: "192.2.0.40" },
15
+ { ip_address: "192.2.0.41" },
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ name: 'should validate a complete pool specification',
21
+ input: {
22
+ name: 'pool entry 1',
23
+ description: 'description of pool entry 1',
24
+ service: {
25
+ http: {
26
+ enabled: true,
27
+ port: 8080,
28
+ algorithm: 'ROUND_ROBIN',
29
+ health_check: {
30
+ port: 80,
31
+ protocol: 'HTTP',
32
+ health_threshold: 4,
33
+ unhealth_threshold: 10,
34
+ interval: 10,
35
+ timeout: 5,
36
+ },
37
+ },
38
+ },
39
+ members: [
40
+ { ip_address: "192.2.0.40",
41
+ weight: 2,
42
+ service_port: {
43
+ http: {
44
+ port: 8080,
45
+ health_check_port: 8080,
46
+ }
47
+ }
48
+ },
49
+ ]
50
+ }
51
+ },
52
+ ]
53
+
54
+ valid_tests.each do |test|
55
+ it "#{test[:name]}" do
56
+ validator = ConfigValidator.validate(:base, test[:input],
57
+ Vcloud::Schema::LOAD_BALANCER_POOL_ENTRY)
58
+ expect(validator.errors).to eq([])
59
+ expect(validator.valid?).to be_true
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ context "validate virtual_server entry" do
66
+
67
+ valid_tests = [
68
+ {
69
+ name: 'should validate ok if only mandatory fields are provided',
70
+ input: {
71
+ name: 'virtual_server entry 1',
72
+ ip_address: "192.2.0.40",
73
+ network: "TestNetwork",
74
+ pool: "TestPool",
75
+ }
76
+ },
77
+ {
78
+ name: 'should validate a complete virtual_server specification',
79
+ input: {
80
+ name: 'virtual_server entry 1',
81
+ ip_address: "192.2.0.40",
82
+ network: "TestNetwork",
83
+ pool: "TestPool",
84
+ logging: true,
85
+ service_profiles: {
86
+ http: { enabled: true, port: 8080 },
87
+ https: { enabled: false, port: 8443 },
88
+ tcp: { enabled: false },
89
+ },
90
+ }
91
+ },
92
+ ]
93
+
94
+ valid_tests.each do |test|
95
+ it "#{test[:name]}" do
96
+ validator = ConfigValidator.validate(:base, test[:input],
97
+ Vcloud::Schema::LOAD_BALANCER_VIRTUAL_SERVER_ENTRY)
98
+ expect(validator.errors).to eq([])
99
+ expect(validator.valid?).to be_true
100
+ end
101
+ end
102
+
103
+ end
104
+
105
+ context "check complete load balancer sections" do
106
+
107
+ it "validate ok if only mandatory fields are provided" do
108
+ input = {
109
+ pools: [
110
+ {
111
+ name: 'pool entry 1',
112
+ members: [
113
+ { ip_address: "192.2.0.40" },
114
+ { ip_address: "192.2.0.41" },
115
+ ]
116
+ },
117
+ ],
118
+ virtual_servers: [
119
+ {
120
+ name: 'virtual_server entry 1',
121
+ ip_address: "192.2.0.40",
122
+ network: "TestNetwork",
123
+ pool: "TestPool",
124
+ },
125
+ ],
126
+ }
127
+ validator = ConfigValidator.validate(:base, input, Vcloud::Schema::LOAD_BALANCER_SERVICE)
128
+ expect(validator.errors).to eq([])
129
+ expect(validator.valid?).to be_true
130
+ end
131
+
132
+ it "should fail to validate if no pools are specified" do
133
+ input = {
134
+ virtual_servers: []
135
+ }
136
+ validator = ConfigValidator.validate(:base, input, Vcloud::Schema::LOAD_BALANCER_SERVICE)
137
+ expect(validator.errors).to eq(["base: missing 'pools' parameter"])
138
+ expect(validator.valid?).to be_false
139
+ end
140
+
141
+ it "should fail to validate if virtual_servers section is missing" do
142
+ input = {
143
+ pools: []
144
+ }
145
+ validator = ConfigValidator.validate(:base, input, Vcloud::Schema::LOAD_BALANCER_SERVICE)
146
+ expect(validator.errors).to eq(["base: missing 'virtual_servers' parameter"])
147
+ expect(validator.valid?).to be_false
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+ end
@@ -0,0 +1,93 @@
1
+ require 'spec_helper'
2
+
3
+ module Vcloud
4
+ describe "nat service schema validation" do
5
+ let(:network_uuid){ SecureRandom.uuid }
6
+ context "validate nat rule" do
7
+ it "validate ok if only mandatory fields are provided" do
8
+ snat_rule = {
9
+ id: '999',
10
+ rule_type: 'DNAT',
11
+ network_id: network_uuid,
12
+ original_ip: "192.0.2.2",
13
+ translated_ip: "10.10.20.20",
14
+
15
+ }
16
+ validator = ConfigValidator.validate(:base, snat_rule, Vcloud::Schema::NAT_RULE)
17
+ expect(validator.valid?).to be_true
18
+ expect(validator.errors).to be_empty
19
+
20
+ end
21
+
22
+ context "mandatory field validation" do
23
+ before(:each) do
24
+ @snat_rule = {
25
+ id: '999',
26
+ rule_type: 'DNAT',
27
+ network_id: network_uuid,
28
+ original_ip: "192.0.2.2",
29
+ translated_ip: "10.10.20.20",
30
+ }
31
+ end
32
+ mandatory_fields = [:network_id, :original_ip, :translated_ip, :rule_type]
33
+ mandatory_fields.each do |mandatory_field|
34
+ it "should error since mandatory field #{mandatory_field} is missing" do
35
+ @snat_rule.delete(mandatory_field)
36
+ validator = ConfigValidator.validate(:base, @snat_rule, Vcloud::Schema::NAT_RULE)
37
+ expect(validator.valid?).to be_false
38
+ expect(validator.errors).to eq(["base: missing '#{mandatory_field}' parameter"])
39
+ end
40
+ end
41
+ end
42
+
43
+ it "should accept optional fields: original_port, translated_port and protocol as input" do
44
+ snat_rule = {
45
+ id: '999',
46
+ rule_type: 'DNAT',
47
+ network_id: network_uuid,
48
+ original_ip: "192.0.2.2",
49
+ original_port: "22",
50
+ translated_ip: "10.10.20.20",
51
+ translated_port: "22",
52
+ protocol: 'tcp'
53
+
54
+ }
55
+ validator = ConfigValidator.validate(:base, snat_rule, Vcloud::Schema::NAT_RULE)
56
+ expect(validator.valid?).to be_true
57
+ expect(validator.errors).to be_empty
58
+ end
59
+ end
60
+
61
+ context 'validate nat service config' do
62
+ it "should validate both snat and dnat rules" do
63
+ nat_service = {
64
+ :enabled => true,
65
+ :nat_rules => [
66
+ {
67
+ id: '999',
68
+ enabled: true,
69
+ rule_type: 'DNAT',
70
+ network_id: network_uuid,
71
+ original_ip: "192.0.2.2",
72
+ original_port: "22",
73
+ translated_ip: "10.10.20.20",
74
+ translated_port: "22",
75
+ protocol: 'tcp',
76
+ },
77
+ {
78
+ id: '999',
79
+ rule_type: 'SNAT',
80
+ network_id: network_uuid,
81
+ original_ip: "192.0.2.2",
82
+ translated_ip: "10.10.20.20",
83
+ protocol: 'tcp',
84
+ }
85
+ ]
86
+ }
87
+ validator = ConfigValidator.validate(:base, nat_service, Vcloud::Schema::NAT_SERVICE)
88
+ expect(validator.valid?).to be_true
89
+ expect(validator.errors).to be_empty
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ lib = File.expand_path('../lib/', __FILE__)
4
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
5
+
6
+ require 'vcloud/edge_gateway/version'
7
+ Gem::Specification.new do |s|
8
+ s.name = 'vcloud-edge_gateway'
9
+ s.version = Vcloud::EdgeGateway::VERSION
10
+ s.authors = ['Anna Shipman']
11
+ s.email = ['anna.shipman@digital.cabinet-office.gov.uk']
12
+ s.summary = 'Tool to configure a VMware vCloud Edge Gateway'
13
+ s.description = 'Tool to configure a VMware vCloud Edge Gateway. Uses vcloud-core.'
14
+ s.homepage = 'http://github.com/alphagov/vcloud-edge_gateway'
15
+ s.license = 'MIT'
16
+
17
+ s.files = `git ls-files`.split($/)
18
+ s.executables = s.files.grep(%r{^bin/}) {|f| File.basename(f)}
19
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
20
+ s.require_paths = ['lib']
21
+
22
+ s.required_ruby_version = '>= 1.9.2'
23
+
24
+ s.add_runtime_dependency 'fog', '>= 1.19.0'
25
+ s.add_runtime_dependency 'vcloud-core'
26
+ s.add_runtime_dependency 'hashdiff'
27
+ s.add_development_dependency 'rake'
28
+ s.add_development_dependency 'rspec', '~> 2.14.1'
29
+ s.add_development_dependency 'simplecov', '~> 0.8.2'
30
+ s.add_development_dependency 'gem_publisher', '1.2.0'
31
+ end
32
+
metadata ADDED
@@ -0,0 +1,252 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vcloud-edge_gateway
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Anna Shipman
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-02-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: fog
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.19.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.19.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: vcloud-core
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hashdiff
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
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'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 2.14.1
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.14.1
94
+ - !ruby/object:Gem::Dependency
95
+ name: simplecov
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.8.2
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.8.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: gem_publisher
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 1.2.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.2.0
126
+ description: Tool to configure a VMware vCloud Edge Gateway. Uses vcloud-core.
127
+ email:
128
+ - anna.shipman@digital.cabinet-office.gov.uk
129
+ executables:
130
+ - vcloud-edge
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - .gitignore
135
+ - Gemfile
136
+ - LICENSE.txt
137
+ - README.md
138
+ - Rakefile
139
+ - bin/vcloud-edge
140
+ - jenkins.sh
141
+ - lib/vcloud/config_loader.rb
142
+ - lib/vcloud/config_validator.rb
143
+ - lib/vcloud/edge_gateway.rb
144
+ - lib/vcloud/edge_gateway/configuration_differ.rb
145
+ - lib/vcloud/edge_gateway/configuration_generator/firewall_service.rb
146
+ - lib/vcloud/edge_gateway/configuration_generator/id_ranges.rb
147
+ - lib/vcloud/edge_gateway/configuration_generator/load_balancer_service.rb
148
+ - lib/vcloud/edge_gateway/configuration_generator/nat_service.rb
149
+ - lib/vcloud/edge_gateway/edge_gateway_configuration.rb
150
+ - lib/vcloud/edge_gateway/version.rb
151
+ - lib/vcloud/edge_gateway_services.rb
152
+ - lib/vcloud/schema/edge_gateway.rb
153
+ - lib/vcloud/schema/firewall_service.rb
154
+ - lib/vcloud/schema/load_balancer_service.rb
155
+ - lib/vcloud/schema/nat_service.rb
156
+ - scripts/generate_fog_conf_file.sh
157
+ - spec/erb_helper.rb
158
+ - spec/integration/edge_gateway/data/firewall_config.yaml.erb
159
+ - spec/integration/edge_gateway/data/firewall_config_updated_rule.yaml.erb
160
+ - spec/integration/edge_gateway/data/firewall_rule_order_test.yaml.erb
161
+ - spec/integration/edge_gateway/data/hairpin_nat_config.yaml.erb
162
+ - spec/integration/edge_gateway/data/incorrect_firewall_config.yaml
163
+ - spec/integration/edge_gateway/data/nat_and_firewall_config.yaml.erb
164
+ - spec/integration/edge_gateway/data/nat_config.yaml.erb
165
+ - spec/integration/edge_gateway/edge_gateway_services_spec.rb
166
+ - spec/integration/edge_gateway/firewall_service_spec.rb
167
+ - spec/integration/edge_gateway/nat_service_spec.rb
168
+ - spec/spec_helper.rb
169
+ - spec/vcloud/config_loader_spec.rb
170
+ - spec/vcloud/config_validator_spec.rb
171
+ - spec/vcloud/data/basic_preamble_test.erb
172
+ - spec/vcloud/data/basic_preamble_test.erb.OUT
173
+ - spec/vcloud/data/working.json
174
+ - spec/vcloud/data/working.yaml
175
+ - spec/vcloud/data/working_with_defaults.yaml
176
+ - spec/vcloud/edge_gateway/configuration_differ_spec.rb
177
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml
178
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-output.yaml
179
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-input.yaml
180
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-output.yaml
181
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-input.yaml
182
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-output.yaml
183
+ - spec/vcloud/edge_gateway/configuration_generator/firewall_service_spec.rb
184
+ - spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb
185
+ - spec/vcloud/edge_gateway/configuration_generator/nat_service_spec.rb
186
+ - spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb
187
+ - spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb
188
+ - spec/vcloud/edge_gateway/load_balancer_schema_validation_spec.rb
189
+ - spec/vcloud/edge_gateway/nat_schema_validation_spec.rb
190
+ - vcloud-edge_gateway.gemspec
191
+ homepage: http://github.com/alphagov/vcloud-edge_gateway
192
+ licenses:
193
+ - MIT
194
+ post_install_message:
195
+ rdoc_options: []
196
+ require_paths:
197
+ - lib
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ none: false
200
+ requirements:
201
+ - - ! '>='
202
+ - !ruby/object:Gem::Version
203
+ version: 1.9.2
204
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
+ none: false
206
+ requirements:
207
+ - - ! '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ segments:
211
+ - 0
212
+ hash: -4334320355473709900
213
+ requirements: []
214
+ rubyforge_project:
215
+ rubygems_version: 1.8.23
216
+ signing_key:
217
+ specification_version: 3
218
+ summary: Tool to configure a VMware vCloud Edge Gateway
219
+ test_files:
220
+ - spec/erb_helper.rb
221
+ - spec/integration/edge_gateway/data/firewall_config.yaml.erb
222
+ - spec/integration/edge_gateway/data/firewall_config_updated_rule.yaml.erb
223
+ - spec/integration/edge_gateway/data/firewall_rule_order_test.yaml.erb
224
+ - spec/integration/edge_gateway/data/hairpin_nat_config.yaml.erb
225
+ - spec/integration/edge_gateway/data/incorrect_firewall_config.yaml
226
+ - spec/integration/edge_gateway/data/nat_and_firewall_config.yaml.erb
227
+ - spec/integration/edge_gateway/data/nat_config.yaml.erb
228
+ - spec/integration/edge_gateway/edge_gateway_services_spec.rb
229
+ - spec/integration/edge_gateway/firewall_service_spec.rb
230
+ - spec/integration/edge_gateway/nat_service_spec.rb
231
+ - spec/spec_helper.rb
232
+ - spec/vcloud/config_loader_spec.rb
233
+ - spec/vcloud/config_validator_spec.rb
234
+ - spec/vcloud/data/basic_preamble_test.erb
235
+ - spec/vcloud/data/basic_preamble_test.erb.OUT
236
+ - spec/vcloud/data/working.json
237
+ - spec/vcloud/data/working.yaml
238
+ - spec/vcloud/data/working_with_defaults.yaml
239
+ - spec/vcloud/edge_gateway/configuration_differ_spec.rb
240
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml
241
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-output.yaml
242
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-input.yaml
243
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-output.yaml
244
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-input.yaml
245
+ - spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-output.yaml
246
+ - spec/vcloud/edge_gateway/configuration_generator/firewall_service_spec.rb
247
+ - spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb
248
+ - spec/vcloud/edge_gateway/configuration_generator/nat_service_spec.rb
249
+ - spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb
250
+ - spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb
251
+ - spec/vcloud/edge_gateway/load_balancer_schema_validation_spec.rb
252
+ - spec/vcloud/edge_gateway/nat_schema_validation_spec.rb