@transactional_session
def declare_bad_file_replicas(pfns, reason, issuer, status=BadFilesStatus.BAD, session=None):
    '\n    Declare a list of bad replicas.\n\n    :param pfns: The list of PFNs.\n    :param reason: The reason of the loss.\n    :param issuer: The issuer account.\n    :param status: The status of the file (SUSPICIOUS or BAD).\n    :param session: The database session in use.\n    '
    (scheme, files_to_declare, unknown_replicas) = get_pfn_to_rse(pfns, vo=issuer.vo, session=session)
    for rse_id in files_to_declare:
        notdeclared = __declare_bad_file_replicas(files_to_declare[rse_id], rse_id, reason, issuer, status=status, scheme=scheme, session=session)
        if notdeclared:
            unknown_replicas[rse_id] = notdeclared
    return unknown_replicas
Declare a list of bad replicas.

:param pfns: The list of PFNs.
:param reason: The reason of the loss.
:param issuer: The issuer account.
:param status: The status of the file (SUSPICIOUS or BAD).
:param session: The database session in use.
@transactional_session
def declare_bad_file_replicas(pfns, reason, issuer, status=BadFilesStatus.BAD, session=None):
    '\n    Declare a list of bad replicas.\n\n    :param pfns: The list of PFNs.\n    :param reason: The reason of the loss.\n    :param issuer: The issuer account.\n    :param status: The status of the file (SUSPICIOUS or BAD).\n    :param session: The database session in use.\n    '
    (scheme, files_to_declare, unknown_replicas) = get_pfn_to_rse(pfns, vo=issuer.vo, session=session)
    for rse_id in files_to_declare:
        notdeclared = __declare_bad_file_replicas(files_to_declare[rse_id], rse_id, reason, issuer, status=status, scheme=scheme, session=session)
        if notdeclared:
            unknown_replicas[rse_id] = notdeclared
    return unknown_replicas