module Ropenstack::Networking::Version2::Extensions::L3

Public Instance Methods

add_router_gateway(router, network_id) click to toggle source

Enable external connectivity through this router by connecting it to an “external network”

# 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) click to toggle source

Connect a router to a subnet, given router id and subnet id.

# 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) click to toggle source
# 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) click to toggle source

Create a new router with a given name.

# 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) click to toggle source
# 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) click to toggle source

Delete a router given a routers id.

# 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) click to toggle source

Clear a routers external gateway information given a router id.

# 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, subnet_id, "subnet") click to toggle source
delete_router_interface(router_id, port_id, "port")

Delete a connection between a subnet and router given either port or subnet ids.

# 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() click to toggle source

Get a full list of floating ips for the tenant

# File lib/ropenstack/networking/v2/extensions/l3.rb, line 82
def floating_ips
  return get_request(address("floatingips"), @token)
end
routers(id) → A single router with the id matching the parameter click to toggle source
routers → All routers visible to the tenant making the request

Get a list of a tenants routers

# 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) click to toggle source
# 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