def create_bare_metal_server(opts)
raise ArgumentError, "Fog::Compute::Softlayer#create_bare_metal_server expects argument of type Hash" unless opts.kind_of?(Hash)
response = Excon::Response.new
required = %w{hostname domain processorCoreAmount memoryCapacity hourlyBillingFlag operatingSystemReferenceCode}
begin
Fog::Softlayer.valid_request?(required, opts) or raise MissingRequiredParameter
response.status = 201
response.body = {
'accountId' => Fog::Softlayer.mock_account_id,
'createDate' => Time.now.iso8601,
'dedicatedAccountHostOnlyFlag' => false,
'domain' => nil,
'fullyQualifiedDomainName' => nil,
'hostname' => nil,
'id' => Fog::Softlayer.mock_vm_id,
'lastPowerStateId' => nil,
'lastVerifiedDate' => nil,
'maxCpu' => nil,
'maxCpuUnits' => "CORE",
'maxMemory' => nil,
'metricPollDate' => nil,
'modifyDate' => nil,
'startCpus' => nil,
'statusId' => 1001,
'primaryIpAddress' => Fog::Mock.random_ip,
'globalIdentifier' => Fog::Softlayer.mock_global_identifier
}
rescue MissingRequiredParameter
response.status = 500
response.body = {
"code" => "SoftLayer_Exception_MissingCreationProperty",
"error" => "Properties #{required.join(', ')} ALL must be set to create an instance of 'SoftLayer_Hardware'."
}
end
@bare_metal_servers.push(response.body).flatten!
response
end