# File lib/fog/openstack/network.rb, line 74 def self.data @data ||= Hash.new do |hash, key| hash[key] = { :networks => {}, :ports => {}, :subnets => {}, :floating_ips => {}, :routers => {}, } end end
# File lib/fog/openstack/requests/network/add_router_interface.rb, line 21 def add_router_interface(router_id, subnet_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'status' => 'ACTIVE', 'name' => '', 'admin_state_up' => true, 'network_id' => '5307648b-e836-4658-8f1a-ff7536870c64', 'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3', 'device_owner' => 'network:router_interface', 'mac_address' => 'fa:16:3e:f7:d1:9c', 'fixed_ips' => { 'subnet_id' => 'a2f1f29d-571b-4533-907f-5803ab96ead1', 'ip_address' => '10.1.1.1' }, 'id' => '3a44f4e5-1694-493a-a1fb-393881c673a4', 'device_id' => '7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b' } self.data[:routers][data['router_id']] = data response.body = { 'router' => data } response end
# File lib/fog/openstack/requests/network/associate_floating_ip.rb, line 28 def associate_floating_ip(floating_ip_id, port_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => '00000000-0000-0000-0000-000000000000', 'router_id' => '00000000-0000-0000-0000-000000000000', 'tenant_id' => options["tenant_id"], 'floating_network_id' => options["floating_network_id"], 'fixed_ip_address' => options["fixed_ip_address"], 'floating_ip_address' => options["floating_ip_address"], 'port_id' => port_id, } self.data[:floating_ips][data['floating_ip_id']] = data response.body = { 'floatingip' => data } response end
# File lib/fog/openstack/requests/network/create_floating_ip.rb, line 31 def create_floating_ip(floating_network_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => floating_network_id, 'floating_network_id' => floating_network_id, 'port_id' => options[:port_id], 'tenant_id' => options[:tenant_id], 'fixed_ip_address' => options[:fixed_ip_address], 'router_id' => nil, } self.data[:floating_ips][data['id']] = data response.body = { 'floatingip' => data } response end
# File lib/fog/openstack/requests/network/create_network.rb, line 58 def create_network(options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'shared' => options[:shared], 'subnets' => [], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'tenant_id' => options[:tenant_id], } # Add provider specific attributes when found # provider_options = [ :router_external, :provider_network_type, :provider_segmentation_id, :provider_physical_network ] aliases = { :provider_network_type => 'provider:network_type', # Not applicable to the "local" or "gre" network types :provider_physical_network => 'provider:physical_network', :provider_segmentation_id => 'provider:segmentation_id', :router_external => 'router:external' } provider_options.reject{ |o| options[o].nil? }.each do |key| aliased_key = aliases[key] || key data[aliased_key] = options[key] end self.data[:networks][data['id']] = data response.body = { 'network' => data } response end
# File lib/fog/openstack/requests/network/create_port.rb, line 29 def create_port(network_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'network_id' => network_id, 'fixed_ips' => options[:fixed_ips], 'mac_address' => options[:mac_address], 'status' => 'ACTIVE', 'admin_state_up' => options[:admin_state_up], 'device_owner' => options[:device_owner], 'device_id' => options[:device_id], 'tenant_id' => options[:tenant_id], } self.data[:ports][data['id']] = data response.body = { 'port' => data } response end
# File lib/fog/openstack/requests/network/create_router.rb, line 36 def create_router(name, options = {}) response = Excon::Response.new response.status = 201 data = { 'router' => { 'id' => Fog::Mock.random_numbers(6).to_s, 'status' => options[:status] || 'ACTIVE', 'external_gateway_info' => options[:external_gateway_info], 'name' => name, 'admin_state_up' => options[:admin_state_up], 'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3' } } self.data[:routers][data['router']['id']] = data['router'] response.body = data response end
# File lib/fog/openstack/requests/network/create_subnet.rb, line 32 def create_subnet(network_id, cidr, ip_version, options = {}) response = Excon::Response.new response.status = 201 data = { 'id' => Fog::Mock.random_numbers(6).to_s, 'name' => options[:name], 'network_id' => network_id, 'cidr' => cidr, 'ip_version' => ip_version, 'gateway_ip' => options[:gateway_ip], 'allocation_pools' => options[:allocation_pools], 'dns_nameservers' => options[:dns_nameservers], 'host_routes' => options[:host_routes], 'enable_dhcp' => options[:enable_dhcp], 'tenant_id' => options[:tenant_id], } self.data[:subnets][data['id']] = data response.body = { 'subnet' => data } response end
# File lib/fog/openstack/network.rb, line 103 def credentials { :provider => 'openstack', :openstack_auth_url => @openstack_auth_uri.to_s, :openstack_auth_token => @auth_token, :openstack_management_url => @openstack_management_url } end
# File lib/fog/openstack/network.rb, line 95 def data self.class.data["#{@openstack_username}-#{@openstack_tenant}"] end
# File lib/fog/openstack/requests/network/delete_floating_ip.rb, line 16 def delete_floating_ip(floating_ip_id) response = Excon::Response.new if list_floating_ips.body['floatingips'].map { |r| r['id'] }.include? floating_ip_id self.data[:floating_ips].delete(floating_ip_id) response.status = 204 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/delete_network.rb, line 16 def delete_network(network_id) response = Excon::Response.new if list_networks.body['networks'].map { |r| r['id'] }.include? network_id self.data[:networks].delete(network_id) response.status = 204 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/delete_port.rb, line 16 def delete_port(port_id) response = Excon::Response.new if list_ports.body['ports'].map { |r| r['id'] }.include? port_id self.data[:ports].delete(port_id) response.status = 204 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/delete_router.rb, line 16 def delete_router(router_id) response = Excon::Response.new if list_routers.body['routers'].map { |r| r['id'] }.include? router_id self.data[:routers].delete(router_id) response.status = 204 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/delete_subnet.rb, line 16 def delete_subnet(subnet_id) response = Excon::Response.new if list_subnets.body['subnets'].map { |r| r['id'] }.include? subnet_id self.data[:subnets].delete(subnet_id) response.status = 204 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/disassociate_floating_ip.rb, line 28 def disassociate_floating_ip(floating_ip_id, options = {}) response = Excon::Response.new response.status = 200 data = { 'id' => '00000000-0000-0000-0000-000000000000', 'router_id' => nil, 'tenant_id' => options["tenant_id"], 'floating_network_id' => options["floating_network_id"], 'fixed_ip_address' => nil, 'floating_ip_address' => options["floating_ip_address"], 'port_id' => options["port_id"], } self.data[:floating_ips][data['floating_ip_id']] = data response.body = { 'floatingip' => data } response end
# File lib/fog/openstack/requests/network/get_floating_ip.rb, line 16 def get_floating_ip(floating_ip_id) response = Excon::Response.new if data = self.data[:floating_ips][floating_ip_id] response.status = 200 response.body = { "floatingip" => { "id" => "00000000-0000-0000-0000-000000000000", # changed # "floating_ip_id" => floating_ip_id, "port_id" => data["port_id"], "tenant_id" => data["tenant_id"], "fixed_ip_address" => data["fixed_ip_address"], "router_id" => "00000000-0000-0000-0000-000000000000", "floating_ip_address" => data["floating_ip_address"], } } response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/get_network.rb, line 16 def get_network(network_id) response = Excon::Response.new if data = self.data[:networks][network_id] response.status = 200 response.body = { 'network' => { 'id' => 'e624a36d-762b-481f-9b50-4154ceb78bbb', 'name' => 'network_1', 'subnets' => [ '2e4ec6a4-0150-47f5-8523-e899ac03026e' ], 'shared' => false, 'status' => 'ACTIVE', 'admin_state_up' => true, 'tenant_id' => 'f8b26a6032bc47718a7702233ac708b9', } } response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/get_port.rb, line 16 def get_port(port_id) response = Excon::Response.new if data = self.data[:ports][port_id] response.status = 200 response.body = { 'port' => { 'id' => '5c81d975-5fea-4674-9c1f-b8aa10bf9a79', 'name' => 'port_1', 'network_id' => 'e624a36d-762b-481f-9b50-4154ceb78bbb', 'fixed_ips' => [ { 'ip_address' => '10.2.2.2', 'subnet_id' => '2e4ec6a4-0150-47f5-8523-e899ac03026e', } ], 'mac_address' => 'fa:16:3e:62:91:7f', 'status' => 'ACTIVE', 'admin_state_up' => true, 'device_id' => 'dhcp724fc160-2b2e-597e-b9ed-7f65313cd73f-e624a36d-762b-481f-9b50-4154ceb78bbb', 'device_owner' => 'network:dhcp', 'tenant_id' => 'f8b26a6032bc47718a7702233ac708b9', } } response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/get_router.rb, line 16 def get_router(router_id) response = Excon::Response.new if data = (self.data[:routers].find { |id,value| id == router_id }) response.status = 200 response.body = { 'router' => data[1], } response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/get_subnet.rb, line 16 def get_subnet(subnet_id) response = Excon::Response.new if data = self.data[:subnets][subnet_id] response.status = 200 response.body = { "subnet" => { "id" => "2e4ec6a4-0150-47f5-8523-e899ac03026e", "name" => "subnet_1", "network_id" => "e624a36d-762b-481f-9b50-4154ceb78bbb", "cidr" => "10.2.2.0/24", "ip_version" => 4, "gateway_ip" => "10.2.2.1", "allocation_pools" => [ { "start" => "10.2.2.2", "end" => "10.2.2.254" } ], "dns_nameservers" => [], "host_routes" => [], "enable_dhcp" => true, "tenant_id" => "f8b26a6032bc47718a7702233ac708b9", } } response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/list_floating_ips.rb, line 17 def list_floating_ips(filters = {}) Excon::Response.new( :body => { 'floatingips' => self.data[:floating_ips].values }, :status => 200 ) end
# File lib/fog/openstack/requests/network/list_networks.rb, line 17 def list_networks(filters = {}) Excon::Response.new( :body => { 'networks' => self.data[:networks].values }, :status => 200 ) end
# File lib/fog/openstack/requests/network/list_ports.rb, line 17 def list_ports(filters = {}) Excon::Response.new( :body => { 'ports' => self.data[:ports].values }, :status => 200 ) end
# File lib/fog/openstack/requests/network/list_routers.rb, line 17 def list_routers(filters = {}) Excon::Response.new( :body => { 'routers' => self.data[:routers].values }, :status => 200 ) end
# File lib/fog/openstack/requests/network/list_subnets.rb, line 17 def list_subnets(filters = {}) Excon::Response.new( :body => { 'subnets' => self.data[:subnets].values }, :status => 200 ) end
# File lib/fog/openstack/requests/network/remove_router_interface.rb, line 21 def remove_router_interface(router_id, subnet_id, options = {}) response = Excon::Response.new response.status = 201 data = { 'subnet_id' => 'a2f1f29d-571b-4533-907f-5803ab96ead1' } self.data[:routers][data['router_id']] = data response.body = { 'router' => data } response end
# File lib/fog/openstack/network.rb, line 99 def reset_data self.class.data.delete("#{@openstack_username}-#{@openstack_tenant}") end
# File lib/fog/openstack/requests/network/set_tenant.rb, line 14 def set_tenant(tenant) true end
# File lib/fog/openstack/requests/network/update_network.rb, line 24 def update_network(network_id, options = {}) response = Excon::Response.new if network = list_networks.body['networks'].detect { |_| _['id'] == network_id } network['name'] = options[:name] network['shared'] = options[:shared] network['admin_state_up'] = options[:admin_state_up] response.body = { 'network' => network } response.status = 200 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/update_port.rb, line 25 def update_port(port_id, options = {}) response = Excon::Response.new if port = list_ports.body['ports'].detect { |_| _['id'] == port_id } port['name'] = options[:name] port['fixed_ips'] = options[:fixed_ips] port['admin_state_up'] = options[:admin_state_up] port['device_owner'] = options[:device_owner] port['device_id'] = options[:device_id] response.body = { 'port' => port } response.status = 200 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/update_router.rb, line 55 def update_router(router_id, options = {}) response = Excon::Response.new router = list_routers.body['routers'].detect do |_| _['id'] == router_id end if router egi = options[:external_gateway_info] if egi if egi.is_a?(Fog::Network::OpenStack::Network) router['external_gateway_info'] = { 'network_id' => egi.id } elsif egi.is_a?(Hash) and egi['network_id'] router['external_gateway_info'] = egi else raise ArgumentError.new('Invalid external_gateway_info attribute') end end options.keys.each do |k| router[k.to_s] = options[k] end response.body = { 'router' => router } response.status = 200 response else raise Fog::Network::OpenStack::NotFound end end
# File lib/fog/openstack/requests/network/update_subnet.rb, line 25 def update_subnet(subnet_id, options = {}) response = Excon::Response.new if subnet = list_subnets.body['subnets'].detect { |_| _['id'] == subnet_id } subnet['name'] = options[:name] subnet['gateway_ip'] = options[:gateway_ip] subnet['dns_nameservers'] = options[:dns_nameservers] subnet['host_routes'] = options[:host_routes] subnet['enable_dhcp'] = options[:enable_dhcp] response.body = { 'subnet' => subnet } response.status = 200 response else raise Fog::Network::OpenStack::NotFound end end
Generated with the Darkfish Rdoc Generator 2.