vcloud-network-configurator 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/Gemfile +4 -0
- data/README.md +116 -0
- data/Rakefile +25 -0
- data/bin/vcloud_configure_edge_gateway +5 -0
- data/docs/find_network_url.md +56 -0
- data/docs/find_organisation_edgegateway_uuid.md +58 -0
- data/jenkins.sh +6 -0
- data/lib/component/firewall.rb +82 -0
- data/lib/component/load_balancer.rb +181 -0
- data/lib/component/nat.rb +73 -0
- data/lib/vcloud_network_configurator.rb +64 -0
- data/lib/vcloud_network_configurator/configure_task.rb +22 -0
- data/lib/vcloud_network_configurator/edge_gateway.rb +51 -0
- data/lib/vcloud_network_configurator/vcloud_auth_request.rb +39 -0
- data/lib/vcloud_network_configurator/vcloud_check_for_configure_task_request.rb +26 -0
- data/lib/vcloud_network_configurator/vcloud_configure_request.rb +51 -0
- data/lib/vcloud_network_configurator/vcloud_settings.rb +22 -0
- data/lib/vcloud_network_configurator/version.rb +1 -0
- data/spec/component/firewall.xml +45 -0
- data/spec/component/firewall_spec.rb +115 -0
- data/spec/component/lb.xml +567 -0
- data/spec/component/load_balancer_spec.rb +67 -0
- data/spec/component/nat.xml +146 -0
- data/spec/component/nat_spec.rb +28 -0
- data/spec/integration/authorization_failed_spec.rb +26 -0
- data/spec/integration/happy_path_firewall_spec.rb +74 -0
- data/spec/integration/happy_path_loadbalancer_spec.rb +173 -0
- data/spec/integration/happy_path_nat_spec.rb +78 -0
- data/spec/integration/test_data/happy_path_auth_response.xml +30 -0
- data/spec/integration/test_data/rules_dir/common_firewall.rb +6 -0
- data/spec/integration/test_data/rules_dir/common_lb.rb +10 -0
- data/spec/integration/test_data/rules_dir/common_nat.rb +0 -0
- data/spec/integration/test_data/rules_dir/preview/firewall.rb +0 -0
- data/spec/integration/test_data/rules_dir/preview/interfaces.yaml +2 -0
- data/spec/integration/test_data/rules_dir/preview/lb.rb +0 -0
- data/spec/integration/test_data/rules_dir/preview/nat.rb +4 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/vcloud_network_configurator/configure_task_spec.rb +59 -0
- data/spec/vcloud_network_configurator/edge_gateway_spec.rb +41 -0
- data/spec/vcloud_network_configurator/vcloud_auth_request_spec.rb +20 -0
- data/spec/vcloud_network_configurator/vcloud_settings_spec.rb +19 -0
- data/vcloud-network-configurator.gemspec +33 -0
- metadata +212 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'vcloud_network_configurator'
|
3
|
+
|
4
|
+
describe "happy path for nat configurations" do
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
WebMock.disable_net_connect!
|
8
|
+
WebMock.reset!
|
9
|
+
|
10
|
+
session_url = "https://super%40preview:man@www.vcloud.eggplant.com/sessions"
|
11
|
+
edge_gateway_configure_url = "https://www.vcloud.eggplant.com/admin/edgeGateway/123321/action/configureServices"
|
12
|
+
task_url = "https://www.vcloud.eggplant.com/api/tasks/10"
|
13
|
+
|
14
|
+
stub_request(:post, session_url).
|
15
|
+
with(:headers => {'Accept'=>'application/*+xml;version=5.1', 'User-Agent'=>'Ruby'}).
|
16
|
+
to_return(:status => 200,
|
17
|
+
:body => File.read('spec/integration/test_data/happy_path_auth_response.xml'),
|
18
|
+
:headers => { 'x-vcloud-authorization' => '123321'})
|
19
|
+
|
20
|
+
stub_request(:post, edge_gateway_configure_url).
|
21
|
+
with(:body => configure_nat_xml,
|
22
|
+
:headers => { 'Accept'=>'application/*+xml;version=5.1',
|
23
|
+
'Content-Type'=>'application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml',
|
24
|
+
'User-Agent'=>'Ruby',
|
25
|
+
'X-Vcloud-Authorization'=>'123321' }).
|
26
|
+
to_return(:status => 202, :body => configure_task_xml)
|
27
|
+
|
28
|
+
stub_request(:get, task_url).
|
29
|
+
with(:headers => {'Accept'=>'application/*+xml;version=5.1', 'User-Agent'=>'Ruby', 'X-Vcloud-Authorization'=>'123321'}).
|
30
|
+
to_return(:status => 200, :body => configure_task_xml, :headers => {})
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should configure edgegateway successfully" do
|
34
|
+
args = ["-u", "super", "-p", "man", "-U", "123321", "-d",
|
35
|
+
"spec/integration/test_data/rules_dir", "-e", "preview",
|
36
|
+
"-c", "nat", "https://www.vcloud.eggplant.com"]
|
37
|
+
|
38
|
+
configurator = VcloudNetworkConfigurator.new(args)
|
39
|
+
configurator.execute.should be_true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def configure_task_xml
|
44
|
+
%q{<Task href="https://www.vcloud.eggplant.com/api/tasks/10" status="success"></Task>}
|
45
|
+
end
|
46
|
+
|
47
|
+
def configure_nat_xml
|
48
|
+
%q{<?xml version="1.0" encoding="UTF-8"?>
|
49
|
+
<EdgeGatewayServiceConfiguration xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://vendor-api-url.net/v1.5/schema/master.xsd">
|
50
|
+
<NatService>
|
51
|
+
<IsEnabled>true</IsEnabled>
|
52
|
+
<NatRule>
|
53
|
+
<RuleType>SNAT</RuleType>
|
54
|
+
<IsEnabled>true</IsEnabled>
|
55
|
+
<Id>65538</Id>
|
56
|
+
<GatewayNatRule>
|
57
|
+
<Interface type="application/vnd.vmware.admin.network+xml" name="VDC-1" href="http://interface.vdc-1/19237"/>
|
58
|
+
<OriginalIp>internal-ip</OriginalIp>
|
59
|
+
<TranslatedIp>external-ip</TranslatedIp>
|
60
|
+
</GatewayNatRule>
|
61
|
+
</NatRule>
|
62
|
+
<NatRule>
|
63
|
+
<RuleType>DNAT</RuleType>
|
64
|
+
<IsEnabled>true</IsEnabled>
|
65
|
+
<Id>65539</Id>
|
66
|
+
<GatewayNatRule>
|
67
|
+
<Interface type="application/vnd.vmware.admin.network+xml" name="VDC-1" href="http://interface.vdc-1/19237"/>
|
68
|
+
<OriginalIp>external-ip</OriginalIp>
|
69
|
+
<OriginalPort>22</OriginalPort>
|
70
|
+
<TranslatedIp>internal-ip</TranslatedIp>
|
71
|
+
<TranslatedPort>22</TranslatedPort>
|
72
|
+
<Protocol>tcp</Protocol>
|
73
|
+
</GatewayNatRule>
|
74
|
+
</NatRule>
|
75
|
+
</NatService>
|
76
|
+
</EdgeGatewayServiceConfiguration>
|
77
|
+
}
|
78
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<Session
|
3
|
+
xmlns="http://www.vmware.com/vcloud/v1.5"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
href="https://vcloud.example.com/api/session/"
|
6
|
+
org="System"
|
7
|
+
type="application/vnd.vmware.vcloud.session+xml"
|
8
|
+
user="vcloud"
|
9
|
+
xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://https://vcloud.example.com/api/v1.5/schema/master.xsd">
|
10
|
+
<Link
|
11
|
+
href="https://vcloud.example.com/api/org/"
|
12
|
+
rel="down"
|
13
|
+
type="application/vnd.vmware.vcloud.orgList+xml"/>
|
14
|
+
<Link
|
15
|
+
href="https://vcloud.example.com/api/admin/"
|
16
|
+
rel="down"
|
17
|
+
type="application/vnd.vmware.admin.vcloud+xml"/>
|
18
|
+
<Link
|
19
|
+
href="https://vcloud.example.com/api/admin/extension"
|
20
|
+
rel="down"
|
21
|
+
type="application/vnd.vmware.admin.vmwExtension+xml"/>
|
22
|
+
<Link
|
23
|
+
href="https://vcloud.example.com/api/query"
|
24
|
+
rel="down"
|
25
|
+
type="application/vnd.vmware.vcloud.query.queryList+xml"/>
|
26
|
+
<Link
|
27
|
+
href="https://vcloud.example.com/api/entity/"
|
28
|
+
rel="entityResolver"
|
29
|
+
type="application/vnd.vmware.vcloud.entity+xml"/>
|
30
|
+
</Session>
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,4 @@
|
|
1
|
+
nat do
|
2
|
+
snat :interface => "VDC-1", :original => { :ip => "internal-ip" }, :translated => { :ip => "external-ip" }, :desc => "description"
|
3
|
+
dnat :interface => "VDC-1", :original => { :ip => "external-ip", :port => 22 }, :translated => { :ip => "internal-ip", :port => 22 }, :desc => "SSH"
|
4
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'vcloud_network_configurator/configure_task'
|
3
|
+
|
4
|
+
describe ConfigureTask do
|
5
|
+
|
6
|
+
describe "#url" do
|
7
|
+
it "should extract url from xml" do
|
8
|
+
ConfigureTask.new(fixture_xml).url.
|
9
|
+
should == "https://vendor-api-url.net/task/123321"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#complete?" do
|
14
|
+
it "should return false id status not success" do
|
15
|
+
ConfigureTask.new(fixture_xml).should_not be_complete
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return false id status not success" do
|
19
|
+
success_xml = fixture_xml.gsub("status=\"running\"", "status=\"success\"")
|
20
|
+
ConfigureTask.new(success_xml).should be_complete
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#error?" do
|
25
|
+
it "should error out if error code provided" do
|
26
|
+
error_xml = fixture_xml.gsub("</Task>",
|
27
|
+
"<Error majorErrorCode=\"Bazinga\"></Task>")
|
28
|
+
ConfigureTask.new(error_xml).should be_error
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def fixture_xml
|
36
|
+
%q{
|
37
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
38
|
+
<Task xmlns="http://www.vmware.com/vcloud/v1.5" status="running"
|
39
|
+
startTime="2013-07-19T14:46:52.943+01:00"
|
40
|
+
serviceNamespace="com.vmware.vcloud"
|
41
|
+
operationName="networkConfigureEdgeGatewayServices"
|
42
|
+
operation="Updating services EdgeGateway GDS Development Gateway"
|
43
|
+
expiryTime="2013-10-17T14:46:52.943+01:00" cancelRequested="false" name="task"
|
44
|
+
id="urn:vcloud:task:0e38b845-92fb-47e7-bc89-1fa29547f487"
|
45
|
+
type="application/vnd.vmware.vcloud.task+xml"
|
46
|
+
href="https://vendor-api-url.net/task/123321"
|
47
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
48
|
+
xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 http://vendor-api-url.net/v1.5/schema/master.xsd">
|
49
|
+
<Link rel="task:cancel"
|
50
|
+
href="https://vendor-api-url.net/task/123321/action/cancel"/>
|
51
|
+
<User type="application/vnd.vmware.admin.user+xml" name="gsingh"
|
52
|
+
href="https://vendor-api-url.net/admin/user/2020202"/>
|
53
|
+
<Organization type="application/vnd.vmware.vcloud.org+xml"
|
54
|
+
name="GDS-Development"
|
55
|
+
href="https://vendor-api-url.net/org/9999999"/>
|
56
|
+
<Progress>0</Progress>
|
57
|
+
<Details/>
|
58
|
+
</Task>}
|
59
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'vcloud_network_configurator/edge_gateway'
|
3
|
+
|
4
|
+
describe EdgeGateway do
|
5
|
+
it "should abort if vcloud api couldn't authenticate" do
|
6
|
+
auth_request = mock(:authenticated? => false)
|
7
|
+
VcloudAuthRequest.should_receive(:new).and_return(auth_request)
|
8
|
+
auth_request.should_receive(:submit).and_return(mock())
|
9
|
+
|
10
|
+
eg = EdgeGateway.new({:api_url => 'eggplant.com', :edge_gateway_uuid => '123321'})
|
11
|
+
lambda { eg.apply_configuration }.should raise_error(SystemExit)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should authorize and configure changes" do
|
15
|
+
vs = mock()
|
16
|
+
VcloudSettings.should_receive(:new).
|
17
|
+
with({url: 'eggplant.com', edge_gateway_uuid: '123321' }).and_return(vs)
|
18
|
+
|
19
|
+
auth_request = mock(:authenticated? => true, :submit => true)
|
20
|
+
VcloudAuthRequest.should_receive(:new).with(vs, "bringle@gds-aubergine", "eggplant").
|
21
|
+
and_return(auth_request)
|
22
|
+
auth_request.should_receive(:auth_response).and_return({'x-vcloud-authorization' => '123213'})
|
23
|
+
|
24
|
+
VcloudConfigureRequest.should_receive(:new).
|
25
|
+
with(vs, '123213', 'farm', 'firewall', 'path/to/dir').
|
26
|
+
and_return(mock(:submit => true, :success? => true, :response_body => nil))
|
27
|
+
|
28
|
+
EdgeGateway.any_instance.stub(:check_for_success => true)
|
29
|
+
|
30
|
+
eg = EdgeGateway.new({:api_url => 'eggplant.com',
|
31
|
+
:org_edgegateway_uuid => '123321',
|
32
|
+
:username => 'bringle',
|
33
|
+
:password => 'eggplant',
|
34
|
+
:environment => 'farm',
|
35
|
+
:organization => 'gds-aubergine',
|
36
|
+
:component => 'firewall',
|
37
|
+
:rules_directory => 'path/to/dir',
|
38
|
+
})
|
39
|
+
eg.apply_configuration
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'vcloud_network_configurator/vcloud_auth_request'
|
3
|
+
|
4
|
+
describe VcloudAuthRequest do
|
5
|
+
|
6
|
+
context "submit an auth request" do
|
7
|
+
before :each do
|
8
|
+
stub_request(:post, "https://super:man@www.foo.bar/sessions").
|
9
|
+
with(:headers => { 'Accept' => 'application/*+xml;version=5.1' })
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return response received" do
|
13
|
+
vcloud_settings = VcloudSettings.new({ :url => "https://www.foo.bar" })
|
14
|
+
request = VcloudAuthRequest.new vcloud_settings, "super", "man"
|
15
|
+
|
16
|
+
request.submit
|
17
|
+
request.should be_authenticated
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'vcloud_network_configurator/vcloud_settings'
|
3
|
+
|
4
|
+
describe VcloudSettings do
|
5
|
+
|
6
|
+
it "should return session url" do
|
7
|
+
settings = VcloudSettings.new({:url => 'www.abra.ka.dabra/api',
|
8
|
+
:edge_gateway_uuid => 'sad-123g-12eda-12enas'})
|
9
|
+
settings.sessions_url.should == 'www.abra.ka.dabra/api/sessions'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return edge_gateway_config_url" do
|
13
|
+
settings = VcloudSettings.new({:url => 'www.abra.ka.dabra/api',
|
14
|
+
:edge_gateway_uuid => 'sad-123g-12eda-12enas'})
|
15
|
+
|
16
|
+
settings.edge_gateway_config_url.should == 'www.abra.ka.dabra/api/admin/edgeGateway/sad-123g-12eda-12enas/action/configureServices'
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "vcloud_network_configurator/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "vcloud-network-configurator"
|
7
|
+
s.version = VERSION
|
8
|
+
s.authors = ["Garima Singh"]
|
9
|
+
s.email = ["igarimasingh@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/alphagov/vcloud-network-configurator"
|
11
|
+
s.summary = %q{Configure firewall, NAT and load balancer for vcloud}
|
12
|
+
s.description = "It allows one to right rules for firewall, NAT and load " +
|
13
|
+
"balancer using vcloud API and configure them on the vendor end"
|
14
|
+
|
15
|
+
s.rubyforge_project = "vcloud-network-configurator"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_development_dependency "rake"
|
23
|
+
s.add_development_dependency "minitest"
|
24
|
+
s.add_development_dependency "mocha"
|
25
|
+
s.add_development_dependency "webmock"
|
26
|
+
s.add_development_dependency "rspec", "~> 2.11.0"
|
27
|
+
s.add_development_dependency "equivalent-xml", "~> 0.2.9"
|
28
|
+
s.add_development_dependency "gem_publisher", "~> 1.3.0"
|
29
|
+
s.add_runtime_dependency "parallel"
|
30
|
+
s.add_runtime_dependency "highline"
|
31
|
+
s.add_runtime_dependency "nokogiri", "~> 1.5.0"
|
32
|
+
end
|
33
|
+
|
metadata
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vcloud-network-configurator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Garima Singh
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2013-08-07 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: minitest
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: mocha
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: webmock
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: rspec
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ~>
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 2.11.0
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: equivalent-xml
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.2.9
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: gem_publisher
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.3.0
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: parallel
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
type: :runtime
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: *id008
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: highline
|
105
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
|
+
type: :runtime
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: *id009
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: nokogiri
|
116
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ~>
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 1.5.0
|
122
|
+
type: :runtime
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: *id010
|
125
|
+
description: It allows one to right rules for firewall, NAT and load balancer using vcloud API and configure them on the vendor end
|
126
|
+
email:
|
127
|
+
- igarimasingh@gmail.com
|
128
|
+
executables:
|
129
|
+
- vcloud_configure_edge_gateway
|
130
|
+
extensions: []
|
131
|
+
|
132
|
+
extra_rdoc_files: []
|
133
|
+
|
134
|
+
files:
|
135
|
+
- .gitignore
|
136
|
+
- Gemfile
|
137
|
+
- README.md
|
138
|
+
- Rakefile
|
139
|
+
- bin/vcloud_configure_edge_gateway
|
140
|
+
- docs/find_network_url.md
|
141
|
+
- docs/find_organisation_edgegateway_uuid.md
|
142
|
+
- jenkins.sh
|
143
|
+
- lib/component/firewall.rb
|
144
|
+
- lib/component/load_balancer.rb
|
145
|
+
- lib/component/nat.rb
|
146
|
+
- lib/vcloud_network_configurator.rb
|
147
|
+
- lib/vcloud_network_configurator/configure_task.rb
|
148
|
+
- lib/vcloud_network_configurator/edge_gateway.rb
|
149
|
+
- lib/vcloud_network_configurator/vcloud_auth_request.rb
|
150
|
+
- lib/vcloud_network_configurator/vcloud_check_for_configure_task_request.rb
|
151
|
+
- lib/vcloud_network_configurator/vcloud_configure_request.rb
|
152
|
+
- lib/vcloud_network_configurator/vcloud_settings.rb
|
153
|
+
- lib/vcloud_network_configurator/version.rb
|
154
|
+
- spec/component/firewall.xml
|
155
|
+
- spec/component/firewall_spec.rb
|
156
|
+
- spec/component/lb.xml
|
157
|
+
- spec/component/load_balancer_spec.rb
|
158
|
+
- spec/component/nat.xml
|
159
|
+
- spec/component/nat_spec.rb
|
160
|
+
- spec/integration/authorization_failed_spec.rb
|
161
|
+
- spec/integration/happy_path_firewall_spec.rb
|
162
|
+
- spec/integration/happy_path_loadbalancer_spec.rb
|
163
|
+
- spec/integration/happy_path_nat_spec.rb
|
164
|
+
- spec/integration/test_data/happy_path_auth_response.xml
|
165
|
+
- spec/integration/test_data/rules_dir/common_firewall.rb
|
166
|
+
- spec/integration/test_data/rules_dir/common_lb.rb
|
167
|
+
- spec/integration/test_data/rules_dir/common_nat.rb
|
168
|
+
- spec/integration/test_data/rules_dir/preview/firewall.rb
|
169
|
+
- spec/integration/test_data/rules_dir/preview/interfaces.yaml
|
170
|
+
- spec/integration/test_data/rules_dir/preview/lb.rb
|
171
|
+
- spec/integration/test_data/rules_dir/preview/nat.rb
|
172
|
+
- spec/spec_helper.rb
|
173
|
+
- spec/vcloud_network_configurator/configure_task_spec.rb
|
174
|
+
- spec/vcloud_network_configurator/edge_gateway_spec.rb
|
175
|
+
- spec/vcloud_network_configurator/vcloud_auth_request_spec.rb
|
176
|
+
- spec/vcloud_network_configurator/vcloud_settings_spec.rb
|
177
|
+
- vcloud-network-configurator.gemspec
|
178
|
+
homepage: https://github.com/alphagov/vcloud-network-configurator
|
179
|
+
licenses: []
|
180
|
+
|
181
|
+
post_install_message:
|
182
|
+
rdoc_options: []
|
183
|
+
|
184
|
+
require_paths:
|
185
|
+
- lib
|
186
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
187
|
+
none: false
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
hash: -3951837720681967727
|
192
|
+
segments:
|
193
|
+
- 0
|
194
|
+
version: "0"
|
195
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
hash: -3951837720681967727
|
201
|
+
segments:
|
202
|
+
- 0
|
203
|
+
version: "0"
|
204
|
+
requirements: []
|
205
|
+
|
206
|
+
rubyforge_project: vcloud-network-configurator
|
207
|
+
rubygems_version: 1.8.24
|
208
|
+
signing_key:
|
209
|
+
specification_version: 3
|
210
|
+
summary: Configure firewall, NAT and load balancer for vcloud
|
211
|
+
test_files: []
|
212
|
+
|