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:
parent
077ddc41ed
commit
17885d5c82
2 changed files with 33 additions and 19 deletions
|
@ -64,20 +64,21 @@ module Fog
|
||||||
|
|
||||||
data =
|
data =
|
||||||
{
|
{
|
||||||
#"created_at" => Time.now,
|
"DBInstanceIdentifier"=> db_name,
|
||||||
|
"DBName" => options["DBName"],
|
||||||
|
"created_at" => nil,
|
||||||
"AutoMinorVersionUpgrade"=>true,
|
"AutoMinorVersionUpgrade"=>true,
|
||||||
"Endpoint"=>{},
|
"Endpoint"=>{},
|
||||||
"ReadReplicaDBInstanceIdentifiers"=>[],
|
"ReadReplicaDBInstanceIdentifiers"=>[],
|
||||||
"PreferredMaintenanceWindow"=>"mon:04:30-mon:05:00",
|
"PreferredMaintenanceWindow"=>"mon:04:30-mon:05:00",
|
||||||
"Engine"=> options["Engine"],
|
"Engine"=> options["Engine"],
|
||||||
"EngineVersion"=> options["EngineVersion"] || "5.1.57",
|
"EngineVersion"=> options["EngineVersion"] || "5.1.57",
|
||||||
"PendingModifiedValues"=>{"MasterUserPassword"=>"****"},
|
"PendingModifiedValues"=>{},
|
||||||
"MultiAZ"=>false,
|
"MultiAZ"=>false,
|
||||||
"MasterUsername"=> options["MasterUsername"],
|
"MasterUsername"=> options["MasterUsername"],
|
||||||
"DBInstanceClass"=> options["DBInstanceClass"],
|
"DBInstanceClass"=> options["DBInstanceClass"],
|
||||||
"DBInstanceStatus"=>"creating",
|
"DBInstanceStatus"=>"creating",
|
||||||
"BackupRetentionPeriod"=> options["BackupRetentionPeriod"] || 1,
|
"BackupRetentionPeriod"=> options["BackupRetentionPeriod"] || 1,
|
||||||
"DBInstanceIdentifier"=> db_name,
|
|
||||||
"AllocatedStorage"=> options["AllocatedStorage"],
|
"AllocatedStorage"=> options["AllocatedStorage"],
|
||||||
"DBParameterGroups"=> # I think groups shoul be in the self.data method
|
"DBParameterGroups"=> # I think groups shoul be in the self.data method
|
||||||
[{"DBParameterGroupName"=>"default.mysql5.1",
|
[{"DBParameterGroupName"=>"default.mysql5.1",
|
||||||
|
@ -96,6 +97,8 @@ module Fog
|
||||||
"CreateDBInstanceResult"=> {"DBInstance"=> data}
|
"CreateDBInstanceResult"=> {"DBInstance"=> data}
|
||||||
}
|
}
|
||||||
response.status = 200
|
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
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -34,27 +34,38 @@ module Fog
|
||||||
|
|
||||||
def describe_db_instances(identifier=nil, opts={})
|
def describe_db_instances(identifier=nil, opts={})
|
||||||
response = Excon::Response.new
|
response = Excon::Response.new
|
||||||
if identifier
|
server_set = []
|
||||||
if server_set = self.data[:servers][identifier]
|
if identifier
|
||||||
response.status = 200
|
if server = self.data[:servers][identifier]
|
||||||
response.body = {
|
server_set << server
|
||||||
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
|
|
||||||
"DescribeDBInstancesResult" => { "DBInstances" => [server_set] }
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
|
raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
|
||||||
end
|
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
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue