vcloud-network-configurator 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 
     | 
    
         
            +
             
     |