1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

mocking wait_for through describe_db_instances

This commit is contained in:
Rodrigo Estebanez 2011-11-30 20:38:10 +01:00
parent 077ddc41ed
commit 17885d5c82
2 changed files with 33 additions and 19 deletions

View file

@ -64,20 +64,21 @@ module Fog
data =
{
#"created_at" => Time.now,
"DBInstanceIdentifier"=> db_name,
"DBName" => options["DBName"],
"created_at" => nil,
"AutoMinorVersionUpgrade"=>true,
"Endpoint"=>{},
"ReadReplicaDBInstanceIdentifiers"=>[],
"PreferredMaintenanceWindow"=>"mon:04:30-mon:05:00",
"Engine"=> options["Engine"],
"EngineVersion"=> options["EngineVersion"] || "5.1.57",
"PendingModifiedValues"=>{"MasterUserPassword"=>"****"},
"PendingModifiedValues"=>{},
"MultiAZ"=>false,
"MasterUsername"=> options["MasterUsername"],
"DBInstanceClass"=> options["DBInstanceClass"],
"DBInstanceStatus"=>"creating",
"BackupRetentionPeriod"=> options["BackupRetentionPeriod"] || 1,
"DBInstanceIdentifier"=> db_name,
"AllocatedStorage"=> options["AllocatedStorage"],
"DBParameterGroups"=> # I think groups shoul be in the self.data method
[{"DBParameterGroupName"=>"default.mysql5.1",
@ -96,6 +97,8 @@ module Fog
"CreateDBInstanceResult"=> {"DBInstance"=> data}
}
response.status = 200
# This values aren't showed at creating time but at available time
self.data[:servers][db_name]["created_at"] = Time.now
response
end

View file

@ -34,27 +34,38 @@ module Fog
def describe_db_instances(identifier=nil, opts={})
response = Excon::Response.new
if identifier
if server_set = self.data[:servers][identifier]
response.status = 200
response.body = {
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
"DescribeDBInstancesResult" => { "DBInstances" => [server_set] }
}
server_set = []
if identifier
if server = self.data[:servers][identifier]
server_set << server
else
raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
end
else
servers_set = self.data[:servers].values
response.status = 200
response.body = {
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
"DescribeDBInstancesResult" => { "DBInstances" => servers_set }
}
end
end
server_set = self.data[:servers].values
server_set.each do |server|
case server["DBInstanceStatus"]
when "creating"
if Time.now - server['created_at'] >= Fog::Mock.delay * 2
region = "us-east-1"
server["DBInstanceStatus"] = "available"
server["availability_zone"] = region + 'a'
server["Endpoint"] = {"Port"=>3306,
"Address"=> Fog::AWS::Mock.rds_address(server["DBInstanceIdentifier"],region) }
server["PendingModifiedValues"] = {"MasterUserPassword"=>"****"}
end
end
end
response.status = 200
response.body = {
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
"DescribeDBInstancesResult" => { "DBInstances" => server_set }
}
response
end
end
end