def create_datacenter(options, entities={})
dc = {
:properties => options,
:entities => entities
}
if dc[:properties][:location] == nil
raise Excon::Error::HTTPStatus, "Attribute 'location' is required"
end
dc_3_id = Fog::UUID.uuid
dc_4_id = Fog::UUID.uuid
datacenter = {
'id' => dc_3_id,
'type' => 'datacenter',
'properties' => {
'name' => dc[:properties][:name],
'description' => dc[:properties][:description],
'location' => dc[:properties][:location],
'version' => 1
}
}
if entities != nil and entities != {}
datacenter = {
'id' => dc_4_id,
'type' => 'datacenter',
'properties' => {
'name' => dc[:properties][:name],
'description' => dc[:properties][:description],
'location' => dc[:properties][:location],
'version' => 1
},
'entities' => {
'volumes' => {
'items' =>
[
{
'type' => 'volume',
'properties' => {
'name' => dc[:entities][:volumes][:items][0][:properties][:name],
'type' => dc[:entities][:volumes][:items][0][:properties][:type],
'size' => dc[:entities][:volumes][:items][0][:properties][:size],
'bus' => dc[:entities][:volumes][:items][0][:properties][:bus],
'licenceType' => dc[:entities][:volumes][:items][0][:properties][:licenceType],
'availabilityZone' => dc[:entities][:volumes][:items][0][:properties][:availabilityZone]
}
}
]
},
'servers' => {
'items' =>
[
{
'properties' => {
'name' => dc[:entities][:servers][:items][0][:properties][:name],
'cores' => dc[:entities][:servers][:items][0][:properties][:cores],
'ram' => dc[:entities][:servers][:items][0][:properties][:ram]
}
}
]
}
}
}
end
data[:datacenters]['items'] << datacenter
response = Excon::Response.new
response.status = 202
response.body = datacenter
response
end