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
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 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 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 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 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 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 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 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
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 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 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
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
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
Get a list of a tenants networks
# File lib/ropenstack/quantum.rb, line 12 def networks return get_request(address("networks"), @token) end
Get a list of ports
# File lib/ropenstack/quantum.rb, line 26 def ports return get_request(address("ports"), @token) end
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
Get a list of subnets
# File lib/ropenstack/quantum.rb, line 19 def subnets return get_request(address("subnets"), @token) end
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