Module: Ropenstack::Networking::Version2::Extensions::L3
- Included in:
- Ropenstack::Networking
- Defined in:
- lib/ropenstack/networking/v2/extensions/l3.rb
Instance Method Summary collapse
-
#add_router_gateway(router, network_id) ⇒ Object
Enable external connectivity through this router by connecting it to an “external network”.
-
#add_router_interface(router, subnet) ⇒ Object
Connect a router to a subnet, given router id and subnet id.
- #create_floating_ip(network, port = nil) ⇒ Object
-
#create_router(name, admin_state_up = true) ⇒ Object
Create a new router with a given name.
- #delete_floating_ip(id) ⇒ Object
-
#delete_router(router) ⇒ Object
Delete a router given a routers id.
-
#delete_router_gateway(router) ⇒ Object
Clear a routers external gateway information given a router id.
-
#delete_router_interface(router, id, type) ⇒ Object
Delete a connection between a subnet and router given either port or subnet ids.
-
#floating_ips ⇒ Object
Get a full list of floating ips for the tenant.
-
#routers(id = nil) ⇒ Object
Get a list of a tenants routers.
- #update_floating_ip(id, port) ⇒ Object
Instance Method Details
#add_router_gateway(router, network_id) ⇒ Object
Enable external connectivity through this router by connecting it to an “external network”
66 67 68 69 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 66 def add_router_gateway(router, network_id) data = { 'router' => {'external_gateway_info' => { 'network_id' => network_id }}} return put_request(address("routers/"+router), data, @token) end |
#add_router_interface(router, subnet) ⇒ Object
Connect a router to a subnet, given router id and subnet id.
40 41 42 43 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 40 def add_router_interface(router, subnet) data = { 'subnet_id' => subnet } return put_request(address("routers/"+router+"/add_router_interface"), data, @token) end |
#create_floating_ip(network, port = nil) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 86 def create_floating_ip(network, port = nil) data = { 'floatingip' => { 'floating_network_id' => network } } unless port.nil? data['floatingip']['port_id'] = port end return post_request(address('floatingips'), data, @token) end |
#create_router(name, admin_state_up = true) ⇒ Object
Create a new router with a given name.
20 21 22 23 24 25 26 27 28 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 20 def create_router(name, admin_state_up = true) data = { 'router' =>{ 'name' => name, 'admin_state_up' => admin_state_up, } } return post_request(address("routers"), data, @token) end |
#delete_floating_ip(id) ⇒ Object
98 99 100 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 98 def delete_floating_ip(id) return delete_request(address("floatingips/#{id}"), @token) end |
#delete_router(router) ⇒ Object
Delete a router given a routers id.
33 34 35 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 33 def delete_router(router) return delete_request(address("routers/" + router), @token) end |
#delete_router_gateway(router) ⇒ Object
Clear a routers external gateway information given a router id.
74 75 76 77 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 74 def delete_router_gateway(router) data = { 'router' => {'external_gateway_info' => nil}} return put_request(address('routers/' + router), data, @token) end |
#delete_router_interface(router, id, type) ⇒ Object
Delete a connection between a subnet and router given either port or subnet ids.
:call-seq:
delete_router_interface(router_id, subnet_id, "subnet")
delete_router_interface(router_id, port_id, "port")
53 54 55 56 57 58 59 60 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 53 def delete_router_interface(router, id, type) data = case type when 'port' then { 'port_id' => id } when 'subnet' then { 'subnet_id' => id } else raise "Invalid Interface Type" end return put_request(address("routers/" + router + "/remove_router_interface"), data, @token) end |
#floating_ips ⇒ Object
Get a full list of floating ips for the tenant
82 83 84 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 82 def floating_ips return get_request(address("floatingips"), @token) end |
#routers(id = nil) ⇒ Object
Get a list of a tenants routers
:call-seq:
routers(id) => A single router with the id matching the parameter
routers => All routers visible to the tenant making the request
10 11 12 13 14 15 16 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 10 def routers(id = nil) endpoint = "routers" unless id.nil? endpoint = endpoint + "/" + id end return get_request(address(endpoint), @token) end |
#update_floating_ip(id, port) ⇒ Object
102 103 104 105 106 107 108 109 |
# File 'lib/ropenstack/networking/v2/extensions/l3.rb', line 102 def update_floating_ip(id, port) data = { 'floatingip' => { 'port_id' => port } } return put_request(address("floatingips/#{id}"), data, @token) end |