create_network(options = {})
click to toggle source
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],
}
self.data[:networks][data['id']] = data
response.body = { 'network' => data }
response
end
create_port(network_id, options = {})
click to toggle source
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_subnet(network_id, cidr, ip_version, options = {})
click to toggle source
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
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
def data
self.class.data["#{@openstack_username}-#{@openstack_tenant}"]
end
delete_network(network_id)
click to toggle source
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
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_subnet(subnet_id)
click to toggle source
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
get_network(network_id)
click to toggle source
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
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_subnet(subnet_id)
click to toggle source
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_networks(filters = {})
click to toggle source
def list_networks(filters = {})
Excon::Response.new(
:body => { 'networks' => self.data[:networks].values },
:status => 200
)
end
list_ports(filters = {})
click to toggle source
def list_ports(filters = {})
Excon::Response.new(
:body => { 'ports' => self.data[:ports].values },
:status => 200
)
end
list_subnets(filters = {})
click to toggle source
def list_subnets(filters = {})
Excon::Response.new(
:body => { 'subnets' => self.data[:subnets].values },
:status => 200
)
end
reset_data()
click to toggle source
def reset_data
self.class.data.delete("#{@openstack_username}-#{@openstack_tenant}")
end
set_tenant(tenant)
click to toggle source
def set_tenant(tenant)
true
end
update_network(network_id, options = {})
click to toggle source
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
update_port(port_id, options = {})
click to toggle source
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
update_subnet(subnet_id, options = {})
click to toggle source
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