File: create_route_table.rb

package info (click to toggle)
ruby-fog-aws 3.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,140 kB
  • sloc: ruby: 73,328; javascript: 14; makefile: 9; sh: 4
file content (69 lines) | stat: -rw-r--r-- 2,467 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
module Fog
  module AWS
    class Compute
      class Real
        require 'fog/aws/parsers/compute/create_route_table'

        # Creates a route table for the specified VPC.
        #
        # ==== Parameters
        # * VpcId<~String> - The ID of the VPC.
        #
        # === Returns
        # * response<~Excon::Response>:
        # * body<~Hash>:
        # * 'requestId'<~String> - Id of the request
        # * 'routeTable'<~Array> - Information about the newly created route table
        # *   'routeTableId'<~String>
        # *   'vpcId'<~String>
        # *   'routeSet'<~Array>
        # *     'item'<~Array>
        # *       'destinationCidrBlock'<~String> - The CIDR address block used for the destination match.
        # *       'gatewayId'<~String> - The ID of an Internet gateway attached to your VPC.
        # *       'state'<~String> - The state of the route. ['blackhole', 'available']
        #
        # {Amazon API Reference}[http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateRouteTable.html]
        def create_route_table(vpc_id)
          request({
            'Action' => 'CreateRouteTable',
            'VpcId' => vpc_id,
            :parser => Fog::Parsers::AWS::Compute::CreateRouteTable.new
          })
        end
      end

      class Mock
        def create_route_table(vpc_id)
          response = Excon::Response.new
          vpc = self.data[:vpcs].find { |vpc| vpc["vpcId"].eql? vpc_id }
          unless vpc.nil?
            response.status = 200
            route_table = {
              'routeTableId' => Fog::AWS::Mock.route_table_id,
              'vpcId' => vpc["vpcId"],
              'routeSet' => [{
                "destinationCidrBlock" => vpc["cidrBlock"],
                "gatewayId" => "local",
                "instanceId"=>nil,
                "instanceOwnerId"=>nil,
                "networkInterfaceId"=>nil,
                "state" => "pending",
                "origin" => "CreateRouteTable"
              }],
              'associationSet' => [],
              'tagSet' => {}
            }
            self.data[:route_tables].push(route_table)
            response.body = {
              'requestId'=> Fog::AWS::Mock.request_id,
              'routeTable' => [route_table]
            }
            response
          else
            raise Fog::AWS::Compute::NotFound.new("The vpc ID '#{vpc_id}' does not exist")
          end
        end
      end
    end
  end
end