class Ropenstack::Quantum

Public Instance Methods

add_router_gateway(router, external_gateway_info) click to toggle source

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

# File lib/ropenstack/quantum.rb, line 115
def add_router_gateway(router, external_gateway_info)
  data = { 'router' => {'external_gateway_info' => external_gateway_info}}
  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/quantum.rb, line 106
def add_router_interface(router, subnet)
  data = { 'subnet_id' => subnet } 
  return put_request(address("routers/"+router+"/add_router_interface"), data, @token)
end
create_network(name, tenant, admin_state_up = true) click to toggle source

Create a new network on Openstack given a name and tenant id.

# File lib/ropenstack/quantum.rb, line 47
def create_network(name, tenant, admin_state_up = true)
  data = {
    'network' => {
      'name' => name,
      'tenant_id' => tenant,
      'admin_state_up' => admin_state_up
    }   
  }
  return post_request(address("networks"), data, @token)
end
create_port(network, device, subnet = nil) click to toggle source

Create a new port given network and device ids, optional parameter subnet id allows for scoping the port to a single subnet.

# File lib/ropenstack/quantum.rb, line 77
def create_port(network, device, subnet = nil)
  data = {
    'port' => {
      'network_id' => network,
      'device_id' => device,
    }   
  }
  if subnet
    data['port']['fixed_ips'] = [{'subnet_id' => subnet}]
  end
  return post_request(address("ports"), 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/quantum.rb, line 93
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
create_subnet(network, cidr) click to toggle source

Create a new ipv4 subnet in a network, given a network id, and a IP range in CIDR format.

# File lib/ropenstack/quantum.rb, line 62
def create_subnet(network, cidr)
  data = {
    'subnet' => {
      'network_id' => network,
      'ip_version' => 4,
      'cidr' => cidr
    }   
  }
  return post_request(address("subnets"), data, @token)
end
delete_network(network) click to toggle source

Delete a network given a network id.

# File lib/ropenstack/quantum.rb, line 149
def delete_network(network)
  return delete_request(address("networks/" + network), @token)
end
delete_port(port) click to toggle source

Delete a port given a port id.

# File lib/ropenstack/quantum.rb, line 142
def delete_port(port)
  return delete_request(address("ports/" + port), @token)
end
delete_router(router) click to toggle source

Delete a router given a routers id.

# File lib/ropenstack/quantum.rb, line 163
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/quantum.rb, line 170
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/quantum.rb, line 183
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
delete_subnet(subnet) click to toggle source

Delete a subnet given a subnet id

# File lib/ropenstack/quantum.rb, line 156
def delete_subnet(subnet)
  return delete_request(address("subnets/" + subnet), @token)
end
device_ports(device_id) click to toggle source

Get a list of ports specific to a device_id

# File lib/ropenstack/quantum.rb, line 33
def device_ports(device_id)
  return get_request(address("ports?device_id=#{device_id}"), @token)
end
move_port_to_subnets(port_id, subnet_ids) click to toggle source

Weird function for adding a port to multiple subnets if nessessary.

# File lib/ropenstack/quantum.rb, line 131
def move_port_to_subnets(port_id, subnet_ids)
  id_list = Array.new()
  subnet_ids.each do |id|
    id_list << { "subnet_id" => id }
  end
  return update_port(port_id, id_list)
end
networks() click to toggle source

Get a list of a tenants networks

# File lib/ropenstack/quantum.rb, line 12
def networks
  return get_request(address("networks"), @token)
end
ports() click to toggle source

Get a list of ports

# File lib/ropenstack/quantum.rb, line 26
def ports
  return get_request(address("ports"), @token)
end
routers() click to toggle source

Retrieve routers owned by the tenant making the request

# File lib/ropenstack/quantum.rb, line 40
def routers
  return get_request(address("routers"), @token)
end
subnets() click to toggle source

Get a list of subnets

# File lib/ropenstack/quantum.rb, line 19
def subnets
  return get_request(address("subnets"), @token)
end
update_port(port, fixed_ips) click to toggle source

Update a specific ports fixed_ips, including subnet and ip data.

# File lib/ropenstack/quantum.rb, line 123
def update_port(port, fixed_ips) 
  data = { 'port' => { 'fixed_ips' => fixed_ips } }
  return put_request(address("ports/"+port), data, @token)
end