# File lib/fog/libvirt/models/compute/servers.rb, line 12
        def all(filter=nil)
          data=[]
          filter={} if filter.nil?
          include_defined=filter.has_key?(:defined) ? filter[:defined] : true  
          include_active=filter.has_key?(:active) ? filter[:active] : true  

          unless filter.has_key?(:name) || filter.has_key?(:uuid)
            if include_defined
              connection.raw.list_defined_domains.map do |domain|
                data << { :raw => connection.raw.lookup_domain_by_name(domain) }
              end
            end
            if include_active
              connection.raw.list_domains.each do |domain|
                data << { :raw => connection.raw.lookup_domain_by_id(domain) }
              end
            end
          else
            domain=nil
            begin
              domain=self.get_by_name(filter[:name]) if filter.has_key?(:name)
              domain=self.get_by_uuid(filter[:uuid]) if filter.has_key?(:uuid)

            rescue ::Libvirt::RetrieveError
              return nil
            end
            unless domain.nil?
              data << { :raw => domain }
            end
          end

          load(data)
        end