# File lib/deltacloud/drivers/ec2/ec2_driver.rb, line 154
  def instances(credentials, opts=nil)
    ec2 = new_client(credentials)
    instances = []
    safely do
      param = opts.nil? ? nil : opts[:id]
      ec2_instances = ec2.describe_instances.reservationSet
      return [] unless ec2_instances
      ec2_instances.item.each do |item|
        item.instancesSet.item.each do |ec2_instance|
          instances << convert_instance( ec2_instance, item.ownerId )
        end
      end
    end
    instances = filter_on( instances, :id, opts )
    instances = filter_on( instances, :state, opts )
    instances
  end