add_router_interface(router_id, subnet_id, options = {})
click to toggle source
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
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
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
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
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
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
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
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
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],
}
provider_options = [
:router_external,
:provider_network_type,
:provider_segmentation_id,
:provider_physical_network
]
aliases = {
:provider_network_type => 'provider:network_type',
: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
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
def create_router(name, options = {})
response = Excon::Response.new
response.status = 201
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
def create_security_group(options = {})
tenant_id = Fog::Mock.random_numbers(14).to_s
sec_group_id = Fog::UUID.uuid
response = Excon::Response.new
response.status = 201
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
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
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_floating_ip(floating_ip_id)
click to toggle source
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
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
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
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
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
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_quota(tenant_id)
click to toggle source
def delete_quota(tenant_id)
response = Excon::Response.new
response.status = 204
response
end
delete_router(router_id)
click to toggle source
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
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
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
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
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
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
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",
"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
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
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
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
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
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
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_quota(tenant_id)
click to toggle source
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
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
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
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
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
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
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
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
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
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
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
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_routers(filters = {})
click to toggle source
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
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
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
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
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
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_lb_health_monitor(health_monitor_id, options = {})
click to toggle source
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
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
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
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
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
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
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
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] }
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
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