    # File lib/fog/aws/requests/rds/describe_db_instances.rb, line 35
            def describe_db_instances(identifier=nil, opts={})
              response = Excon::Response.new
              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
                server_set = self.data[:servers].values
              end

              server_set.each do |server|
                 case server["DBInstanceStatus"]
                 when "creating"
                     if Time.now - server['InstanceCreateTime'] >= Fog::Mock.delay * 2
                       region = "us-east-1"
                       server["DBInstanceStatus"] = "available"
                       server["AvailabilityZone"] = region + 'a'
                       server["Endpoint"] = {"Port"=>3306,
                                             "Address"=> Fog::AWS::Mock.rds_address(server["DBInstanceIdentifier"],region) }
                       server["PendingModifiedValues"] = {}
                     end
                  when "rebooting" # I don't know how to show rebooting just once before it changes to available
                    # it applies pending modified values
                    unless server["PendingModifiedValues"].empty?
                      server.merge!(server["PendingModifiedValues"])
                      server["PendingModifiedValues"] = {}
                      self.data[:tmp] ||= Time.now + Fog::Mock.delay * 2
                      if self.data[:tmp] <= Time.now
                        server["DBInstanceStatus"] = 'available'
                        self.data.delete(:tmp)
                      end
                    end
                  when "modifying"
                    # TODO there are some fields that only applied after rebooting
                    unless server["PendingModifiedValues"].empty?
                      server.merge!(server["PendingModifiedValues"])
                      server["PendingModifiedValues"] = {}
                      server["DBInstanceStatus"] = 'available'
                    end
                  when "available" # I'm not sure if amazon does this
                    unless server["PendingModifiedValues"].empty?
                      server["DBInstanceStatus"] = 'modifying'
                    end

                 end
              end

              response.status = 200
              response.body = {
                "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
                "DescribeDBInstancesResult" => { "DBInstances" => server_set }
              }
              response
            end