class Fog::Network::OpenStack::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/network.rb, line 135
def self.data
  @data ||= Hash.new do |hash, key|
    network_id = Fog::UUID.uuid
    subnet_id  = Fog::UUID.uuid
    tenant_id  = Fog::Mock.random_hex(8)

    hash[key] = {
      :networks => {
        network_id => {
          'id'                    => network_id,
          'name'                  => 'Public',
          'subnets'               => [subnet_id],
          'shared'                => true,
          'status'                => 'ACTIVE',
          'tenant_id'             => tenant_id,
          'provider_network_type' => 'vlan',
          'router:external'       => false,
          'admin_state_up'        => true,
        }
      },
      :ports => {},
      :subnets => {
        subnet_id => {
          'id'               => subnet_id,
          'name'             => "Public",
          'network_id'       => network_id,
          'cidr'             => "192.168.0.0/22",
          'ip_version'       => 4,
          'gateway_ip'       => Fog::Mock.random_ip,
          'allocation_pools' => [],
          'dns_nameservers'  => [Fog::Mock.random_ip, Fog::Mock.random_ip],
          'host_routes'      => [Fog::Mock.random_ip],
          'enable_dhcp'      => true,
          'tenant_id'        => tenant_id,
        }
      },
      :floating_ips => {},
      :routers => {},
      :lb_pools => {},
      :lb_members => {},
      :lb_health_monitors => {},
      :lb_vips => {},
      :quota => {
        "subnet" => 10,
        "router" => 10,
        "port" => 50,
        "network" => 10,
        "floatingip" => 50
      },
      :quotas => [
        {
          "subnet" => 10,
          "network" => 10,
          "floatingip" => 50,
          "tenant_id" => tenant_id,
          "router" => 10,
          "port" => 30
        }
      ],
      :security_groups      => {},
      :security_group_rules => {},
    }
  end
end
new(options={}) click to toggle source
# File lib/fog/openstack/network.rb, line 204
def initialize(options={})
  @openstack_username = options[:openstack_username]
  @openstack_tenant   = options[:openstack_tenant]
end
reset() click to toggle source
# File lib/fog/openstack/network.rb, line 200
def self.reset
  @data = nil
end

Public Instance Methods

add_router_interface(router_id, subnet_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/add_router_interface.rb, line 20
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
associate_floating_ip(floating_ip_id, port_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/associate_floating_ip.rb, line 27
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
associate_lb_health_monitor(pool_id, health_monitor_id) click to toggle source
# File lib/fog/openstack/requests/network/associate_lb_health_monitor.rb, line 22
def associate_lb_health_monitor(pool_id, health_monitor_id)
  response = Excon::Response.new
  if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
    pool['health_monitors'] << health_monitor_id
    self.data[:lb_pools][pool_id] = pool
    response.body = { 'health_monitor' => {} }
    response.status = 200
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
create_floating_ip(floating_network_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_floating_ip.rb, line 27
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
create_lb_health_monitor(type, delay, timeout, max_retries, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_lb_health_monitor.rb, line 30
def create_lb_health_monitor(type, delay, timeout, max_retries, options = {})
  response = Excon::Response.new
  response.status = 201
  data = {
    'id'             => Fog::Mock.random_numbers(6).to_s,
    'type'           => type,
    'delay'          => delay,
    'timeout'        => timeout,
    'max_retries'    => max_retries,
    'http_method'    => options[:http_method],
    'url_path'       => options[:url_path],
    'expected_codes' => options[:expected_codes],
    'status'         => 'ACTIVE',
    'admin_state_up' => options[:admin_state_up],
    'tenant_id'      => options[:tenant_id],
  }

  self.data[:lb_health_monitors][data['id']] = data
  response.body = { 'health_monitor' => data }
  response
end
create_lb_member(pool_id, address, protocol_port, weight, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_lb_member.rb, line 30
def create_lb_member(pool_id, address, protocol_port, weight, options = {})
  response = Excon::Response.new
  response.status = 201
  data = {
    'id'              => Fog::Mock.random_numbers(6).to_s,
    'pool_id'         => pool_id,
    'address'         => address,
    'protocol_port'   => protocol_port,
    'weight'          => weight,
    'status'          => 'ACTIVE',
    'admin_state_up'  => options[:admin_state_up],
    'tenant_id'       => options[:tenant_id],
  }

  self.data[:lb_members][data['id']] = data
  response.body = { 'member' => data }
  response
end
create_lb_pool(subnet_id, protocol, lb_method, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_lb_pool.rb, line 29
def create_lb_pool(subnet_id, protocol, lb_method, options = {})
  response = Excon::Response.new
  response.status = 201
  data = {
    'id'                 => Fog::Mock.random_numbers(6).to_s,
    'subnet_id'          => subnet_id,
    'protocol'           => protocol,
    'lb_method'          => lb_method,
    'name'               => options[:name],
    'description'        => options[:description],
    'health_monitors'    => [],
    'members'            => [],
    'status'             => 'ACTIVE',
    'admin_state_up'     => options[:admin_state_up],
    'vip_id'             => nil,
    'tenant_id'          => options[:tenant_id],
    'active_connections' => nil,
    'bytes_in'           => nil,
    'bytes_out'          => nil,
    'total_connections'  => nil
  }

  self.data[:lb_pools][data['id']] = data
  response.body = { 'pool' => data }
  response
end
create_lb_vip(subnet_id, pool_id, protocol, protocol_port, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_lb_vip.rb, line 31
def create_lb_vip(subnet_id,  pool_id, protocol, protocol_port, options = {})
  response = Excon::Response.new
  response.status = 201
  data = {
    'id'                  => Fog::Mock.random_numbers(6).to_s,
    'subnet_id'           => subnet_id,
    'pool_id'             => pool_id,
    'protocol'            => protocol,
    'protocol_port'       => protocol_port,
    'name'                => options[:name],
    'description'         => options[:description],
    'address'             => options[:address],
    'port_id'             => Fog::Mock.random_numbers(6).to_s,
    'session_persistence' => options[:session_persistence],
    'connection_limit'    => options[:connection_limit],
    'status'              => 'ACTIVE',
    'admin_state_up'      => options[:admin_state_up],
    'tenant_id'           => options[:tenant_id],
  }

  self.data[:lb_vips][data['id']] = data
  response.body = { 'vip' => data }
  response
end
create_network(options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_network.rb, line 57
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
create_port(network_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_port.rb, line 28
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
create_router(name, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_router.rb, line 47
def create_router(name, options = {})
  response = Excon::Response.new
  response.status = 201

  # remove this in a future
  egi = options[:external_gateway_info]
  if egi && egi.is_a?(Fog::Network::OpenStack::Network)
    Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \
    Please pass  external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]"
    egi = { :network_id => egi.id }
  end

  data = {
    'router' => {
      :id     => Fog::Mock.random_numbers(6).to_s,
      :status => options[:status] || 'ACTIVE',
      :external_gateway_info => egi,
      :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
create_security_group(options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_security_group.rb, line 48
def create_security_group(options = {})
  # Spaces are NOT removed from name and description, as in case of compute sec groups
  tenant_id     = Fog::Mock.random_numbers(14).to_s
  sec_group_id  = Fog::UUID.uuid

  response = Excon::Response.new
  response.status = 201
  # by default every security group will come setup with an egress rule to "allow all out"
  data = {
    "security_group_rules"  => [
        { "remote_group_id"   => nil,
          "direction"         => "egress",
          "remote_ip_prefix"  => nil,
          "protocol"          => nil,
          "ethertype"         => "IPv4",
          "tenant_id"         => tenant_id,
          "port_range_max"    => nil,
          "port_range_min"    => nil,
          "id"                => Fog::UUID.uuid,
          "security_group_id" => sec_group_id
        },
        { "remote_group_id"   => nil,
          "direction"         => "egress",
          "remote_ip_prefix"  => nil,
          "protocol"          => nil,
          "ethertype"         => "IPv6",
          "tenant_id"         => tenant_id,
          "port_range_max"    => nil,
          "port_range_min"    => nil,
          "id"                => Fog::UUID.uuid,
          "security_group_id" => sec_group_id
        }
      ],
    "id"           => sec_group_id,
    "tenant_id"    => tenant_id,
    "name"         => options[:name] || "",
    "description"  => options[:description] || ""
  }

  self.data[:security_groups][data["id"]] = data
  response.body = {"security_group" => data}
  response
end
create_security_group_rule(security_group_id, direction, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_security_group_rule.rb, line 57
def create_security_group_rule(security_group_id, direction, options = {})
  response = Excon::Response.new
  data = {
    "id"                => Fog::UUID.uuid,
    "remote_group_id"   => options[:remote_group_id],
    "direction"         => direction,
    "remote_ip_prefix"  => options[:remote_ip_prefix],
    "protocol"          => options[:protocol],
    "ethertype"         => options[:ethertype] || "IPv4",
    "tenant_id"         => options[:tenant_id] || Fog::Mock.random_numbers(14).to_s,
    "port_range_max"    => options[:port_range_max],
    "port_range_min"    => options[:port_range_min],
    "security_group_id" => security_group_id
  }
  self.data[:security_group_rules][data["id"]] = data
  response.status = 201
  response.body   = {"security_group_rule" => data}
  response
end
create_subnet(network_id, cidr, ip_version, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/create_subnet.rb, line 31
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
credentials() click to toggle source
# File lib/fog/openstack/network.rb, line 217
def credentials
  { :provider                 => 'openstack',
    :openstack_auth_url       => @openstack_auth_uri.to_s,
    :openstack_auth_token     => @auth_token,
    :openstack_management_url => @openstack_management_url }
end
data() click to toggle source
# File lib/fog/openstack/network.rb, line 209
def data
  self.class.data["#{@openstack_username}-#{@openstack_tenant}"]
end
delete_floating_ip(floating_ip_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_floating_ip.rb, line 15
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
delete_lb_health_monitor(health_monitor_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_lb_health_monitor.rb, line 15
def delete_lb_health_monitor(health_monitor_id)
  response = Excon::Response.new
  if list_lb_health_monitors.body['health_monitors'].map { |r| r['id'] }.include? health_monitor_id
    self.data[:lb_health_monitors].delete(health_monitor_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_lb_member(member_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_lb_member.rb, line 15
def delete_lb_member(member_id)
  response = Excon::Response.new
  if list_lb_members.body['members'].map { |r| r['id'] }.include? member_id
    self.data[:lb_members].delete(member_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_lb_pool(pool_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_lb_pool.rb, line 15
def delete_lb_pool(pool_id)
  response = Excon::Response.new
  if list_lb_pools.body['pools'].map { |r| r['id'] }.include? pool_id
    self.data[:lb_pools].delete(pool_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_lb_vip(vip_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_lb_vip.rb, line 15
def delete_lb_vip(vip_id)
  response = Excon::Response.new
  if list_lb_vips.body['vips'].map { |r| r['id'] }.include? vip_id
    self.data[:lb_vips].delete(vip_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_network(network_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_network.rb, line 15
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
delete_port(port_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_port.rb, line 15
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
delete_quota(tenant_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_quota.rb, line 15
def delete_quota(tenant_id)
  response = Excon::Response.new
  response.status = 204
  response
end
delete_router(router_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_router.rb, line 15
def delete_router(router_id)
  response = Excon::Response.new
  if list_routers.body['routers'].find { |r| r[:id] == router_id }
    self.data[:routers].delete(router_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_security_group(security_group_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_security_group.rb, line 19
def delete_security_group(security_group_id)
  response = Excon::Response.new
  if self.data[:security_groups][security_group_id]
    self.data[:security_groups].delete(security_group_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_security_group_rule(security_group_rule_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_security_group_rule.rb, line 19
def delete_security_group_rule(security_group_rule_id)
  response = Excon::Response.new
  if self.data[:security_group_rules][security_group_rule_id]
    self.data[:security_group_rules].delete(security_group_rule_id)
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
delete_subnet(subnet_id) click to toggle source
# File lib/fog/openstack/requests/network/delete_subnet.rb, line 15
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
disassociate_floating_ip(floating_ip_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/disassociate_floating_ip.rb, line 27
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
disassociate_lb_health_monitor(pool_id, health_monitor_id) click to toggle source
# File lib/fog/openstack/requests/network/disassociate_lb_health_monitor.rb, line 15
def disassociate_lb_health_monitor(pool_id, health_monitor_id)
  response = Excon::Response.new
  if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
    pool['health_monitors'].delete(health_monitor_id)
    self.data[:lb_pools][pool_id] = pool
    response.status = 204
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_floating_ip(floating_ip_id) click to toggle source
# File lib/fog/openstack/requests/network/get_floating_ip.rb, line 15
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
get_lb_health_monitor(health_monitor_id) click to toggle source
# File lib/fog/openstack/requests/network/get_lb_health_monitor.rb, line 15
def get_lb_health_monitor(health_monitor_id)
  response = Excon::Response.new
  if data = self.data[:lb_health_monitors][health_monitor_id]
    response.status = 200
    response.body = { 'health_monitor' => data }
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_lb_member(member_id) click to toggle source
# File lib/fog/openstack/requests/network/get_lb_member.rb, line 15
def get_lb_member(member_id)
  response = Excon::Response.new
  if data = self.data[:lb_members][member_id]
    response.status = 200
    response.body = { 'member' => data }
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_lb_pool(pool_id) click to toggle source
# File lib/fog/openstack/requests/network/get_lb_pool.rb, line 15
def get_lb_pool(pool_id)
  response = Excon::Response.new
  if data = self.data[:lb_pools][pool_id]
    response.status = 200
    response.body = { 'pool' => data }
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_lb_pool_stats(pool_id) click to toggle source
# File lib/fog/openstack/requests/network/get_lb_pool_stats.rb, line 15
def get_lb_pool_stats(pool_id)
  response = Excon::Response.new
  if data = self.data[:lb_pools][pool_id]
    stats = {}
    stats["active_connections"] = 0
    stats["bytes_in"] = 0
    stats["bytes_out"] = 0
    stats["total_connections"] = 0
    response.status = 200
    response.body = { 'stats' => stats }
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_lb_vip(vip_id) click to toggle source
# File lib/fog/openstack/requests/network/get_lb_vip.rb, line 15
def get_lb_vip(vip_id)
  response = Excon::Response.new
  if data = self.data[:lb_vips][vip_id]
    response.status = 200
    response.body = { 'vip' => data }
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_network(network_id) click to toggle source
# File lib/fog/openstack/requests/network/get_network.rb, line 15
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
get_port(port_id) click to toggle source
# File lib/fog/openstack/requests/network/get_port.rb, line 15
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
get_quota(tenant_id) click to toggle source
# File lib/fog/openstack/requests/network/get_quota.rb, line 15
def get_quota(tenant_id)
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'quota' => (self.data[:quota_updated] or self.data[:quota])
  }
  response
end
get_quotas() click to toggle source
# File lib/fog/openstack/requests/network/get_quotas.rb, line 15
def get_quotas
  response = Excon::Response.new
  response.status = 200
  response.body = {
    'quotas' => self.data[:quotas]
  }
  response
end
get_router(router_id) click to toggle source
# File lib/fog/openstack/requests/network/get_router.rb, line 15
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
get_security_group(security_group_id) click to toggle source
# File lib/fog/openstack/requests/network/get_security_group.rb, line 39
def get_security_group(security_group_id)
  response = Excon::Response.new
  if sec_group = self.data[:security_groups][security_group_id]
    response.status = 200
    response.body   = {"security_group" => sec_group}
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_security_group_rule(security_group_rule_id) click to toggle source
# File lib/fog/openstack/requests/network/get_security_group_rule.rb, line 34
def get_security_group_rule(security_group_rule_id)
  response = Excon::Response.new
  if sec_group_rule = self.data[:security_group_rules][security_group_rule_id]
    response.status = 200
    response.body   = {"security_group_rule" => sec_group_rule}
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
get_subnet(subnet_id) click to toggle source
# File lib/fog/openstack/requests/network/get_subnet.rb, line 15
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
list_floating_ips(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_floating_ips.rb, line 16
def list_floating_ips(filters = {})
  Excon::Response.new(
    :body   => { 'floatingips' => self.data[:floating_ips].values },
    :status => 200
  )
end
list_lb_health_monitors(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_lb_health_monitors.rb, line 16
def list_lb_health_monitors(filters = {})
  Excon::Response.new(
    :body   => { 'health_monitors' => self.data[:lb_health_monitors].values },
    :status => 200
  )
end
list_lb_members(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_lb_members.rb, line 16
def list_lb_members(filters = {})
  Excon::Response.new(
    :body   => { 'members' => self.data[:lb_members].values },
    :status => 200
  )
end
list_lb_pools(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_lb_pools.rb, line 16
def list_lb_pools(filters = {})
  Excon::Response.new(
    :body   => { 'pools' => self.data[:lb_pools].values },
    :status => 200
  )
end
list_lb_vips(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_lb_vips.rb, line 16
def list_lb_vips(filters = {})
  Excon::Response.new(
    :body   => { 'vips' => self.data[:lb_vips].values },
    :status => 200
  )
end
list_networks(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_networks.rb, line 16
def list_networks(filters = {})
  Excon::Response.new(
    :body   => { 'networks' => self.data[:networks].values },
    :status => 200
  )
end
list_ports(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_ports.rb, line 16
def list_ports(filters = {})
  Excon::Response.new(
    :body   => { 'ports' => self.data[:ports].values },
    :status => 200
  )
end
list_routers(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_routers.rb, line 16
def list_routers(filters = {})
  Excon::Response.new(
    :body   => { 'routers' => self.data[:routers].values },
    :status => 200
  )
end
list_security_group_rules(options = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_security_group_rules.rb, line 35
def list_security_group_rules(options = {})
  response = Excon::Response.new

  sec_group_rules = []
  sec_group_rules = self.data[:security_group_rules].values unless self.data[:security_group_rules].nil?

  response.status = 200
  response.body = { 'security_group_rules' => sec_group_rules }
  response
end
list_security_groups(options = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_security_groups.rb, line 40
def list_security_groups(options = {})
  response = Excon::Response.new

  sec_groups = []
  sec_groups = self.data[:security_groups].values unless self.data[:security_groups].nil?

  response.status = 200
  response.body = { 'security_groups' => sec_groups }
  response
end
list_subnets(filters = {}) click to toggle source
# File lib/fog/openstack/requests/network/list_subnets.rb, line 16
def list_subnets(filters = {})
  Excon::Response.new(
    :body   => { 'subnets' => self.data[:subnets].values },
    :status => 200
  )
end
remove_router_interface(router_id, subnet_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/remove_router_interface.rb, line 20
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
reset_data() click to toggle source
# File lib/fog/openstack/network.rb, line 213
def reset_data
  self.class.data.delete("#{@openstack_username}-#{@openstack_tenant}")
end
set_tenant(tenant) click to toggle source
# File lib/fog/openstack/requests/network/set_tenant.rb, line 13
def set_tenant(tenant)
  true
end
update_lb_health_monitor(health_monitor_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_lb_health_monitor.rb, line 23
def update_lb_health_monitor(health_monitor_id, options = {})
  response = Excon::Response.new
  if health_monitor = list_lb_health_monitors.body['health_monitors'].find { |_| _['id'] == health_monitor_id }
    health_monitor['delay']          = options[:delay]
    health_monitor['timeout']        = options[:timeout]
    health_monitor['max_retries']    = options[:max_retries]
    health_monitor['http_method']    = options[:http_method]
    health_monitor['url_path']       = options[:url_path]
    health_monitor['expected_codes'] = options[:expected_codes]
    health_monitor['admin_state_up'] = options[:admin_state_up]
    response.body = { 'health_monitor' => health_monitor }
    response.status = 200
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
update_lb_member(member_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_lb_member.rb, line 23
def update_lb_member(member_id, options = {})
  response = Excon::Response.new
  if member = list_lb_members.body['members'].find { |_| _['id'] == member_id }
    member['pool_id']        = options[:pool_id]
    member['weight']         = options[:weight]
    member['admin_state_up'] = options[:admin_state_up]
    response.body = { 'member' => member }
    response.status = 200
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
update_lb_pool(pool_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_lb_pool.rb, line 23
def update_lb_pool(pool_id, options = {})
  response = Excon::Response.new
  if pool = list_lb_pools.body['pools'].find { |_| _['id'] == pool_id }
    pool['name']            = options[:name]
    pool['description']     = options[:description]
    pool['lb_method']       = options[:lb_method]
    pool['admin_state_up']  = options[:admin_state_up]
    response.body = { 'pool' => pool }
    response.status = 200
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
update_lb_vip(vip_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_lb_vip.rb, line 23
def update_lb_vip(vip_id, options = {})
  response = Excon::Response.new
  if vip = list_lb_vips.body['vips'].find { |_| _['id'] == vip_id }
    vip['pool_id']             = options[:pool_id]
    vip['name']                = options[:name]
    vip['description']         = options[:description]
    vip['session_persistence'] = options[:session_persistence]
    vip['connection_limit']    = options[:connection_limit]
    vip['admin_state_up']      = options[:admin_state_up]
    response.body = { 'vip' => vip }
    response.status = 200
    response
  else
    raise Fog::Network::OpenStack::NotFound
  end
end
update_network(network_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_network.rb, line 23
def update_network(network_id, options = {})
  response = Excon::Response.new
  if network = list_networks.body['networks'].find { |_| _['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
update_port(port_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_port.rb, line 24
def update_port(port_id, options = {})
  response = Excon::Response.new
  if port = list_ports.body['ports'].find { |_| _['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
update_quota(tenant_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_quota.rb, line 16
def update_quota(tenant_id, options = {})
  self.data[:quota_updated] = self.data[:quota].merge options

  response = Excon::Response.new
  response.status = 200
  response.body = { 'quota' => self.data[:quota_updated] }
  response
end
update_router(router_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_router.rb, line 42
def update_router(router_id, options = {})
  response = Excon::Response.new
  router = list_routers.body['routers'].find {|r| r[:id] == router_id}

  raise Fog::Network::OpenStack::NotFound unless router

  options.keys.each {|k| router[k] = options[k] }

  # remove this in a future
  egi = options[:external_gateway_info]
  if egi
    if egi.is_a?(Fog::Network::OpenStack::Network)
      Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \
      Please pass  external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]"
      router[:external_gateway_info] = { :network_id => egi.id }
    else egi.is_a?(Hash) && egi[:network_id]
      router[:external_gateway_info] = egi
    end
  end

  response.body = { 'router' => router }
  response.status = 200
  response
end
update_subnet(subnet_id, options = {}) click to toggle source
# File lib/fog/openstack/requests/network/update_subnet.rb, line 24
def update_subnet(subnet_id, options = {})
  response = Excon::Response.new
  if subnet = list_subnets.body['subnets'].find { |_| _['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