def create_load_balancer(name, protocol, port, virtual_ips, nodes, options = {})
data = {
"loadBalancer" => {
"name" => name,
"id" => Fog::Mock.random_numbers(6),
"protocol" => protocol,
"port" => port,
"algorithm" => "RANDOM",
"status" => "BUILD",
"cluster" => { "name" => "my-cluster.rackspace.net" },
"timeout" => 30,
"created" => {"time" => MockData.zulu_time },
"updated" => {"time" => MockData.zulu_time },
"halfClosed" => false,
"connectionLogging" => { "enabled" => false },
"contentCaching" => { "enabled" => false },
"httpsRedirect" => false
}
}
data["virtual_ips"] = virtual_ips.map do |n|
{
"virtualIps" => [
{
"address" => MockData.ipv4_address,
"id" => Fog::Mock.random_numbers(6),
"type" => n.type,
"ipVersion" => "IPV4"
},
{
"address" => MockData.ipv6_address,
"id" => Fog::Mock.random_numbers(4),
"type" => "PUBLIC",
"ipVersion" => "IPV6"
}
],
"sourceAddresses" => {
"ipv6Public" => MockData.ipv6_address,
"ipv4Servicenet" => MockData.ipv4_address,
"ipv4Public" => MockData.ipv4_address
}
}
end
data["nodes"] = nodes.map do |n|
{
"address" => n.address,
"id" => Fog::Mock.random_numbers(6),
"type" => "PRIMARY",
"port" => n.port,
"status" => "ONLINE",
"condition" => "ENABLED",
"weight" => 1
}
end
Excon::Response.new(:body => data, :status => 202)
end