Interface BitPreservationDAO
-
- All Superinterfaces:
CleanupIF
- All Known Implementing Classes:
ReplicaCacheDatabase
public interface BitPreservationDAO extends CleanupIF
This is an interface for communicating with bitpreservation databases.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addChecksumInformation(File checksumOutput, Replica replica)
Given the output of a checksum job, add the results to the database.void
addFileListInformation(File filelistOutput, Replica replica)
Given the output of a file list job, add the results to the database.void
cleanup()
Method for cleaning up when done.Replica
getBitarchiveWithGoodFile(String filename)
Method for retrieving a replica which has the file and the checksum_status = OK.Replica
getBitarchiveWithGoodFile(String filename, Replica badReplica)
Method for retrieving a replica which has the file and the checksum_status = OK.Date
getDateOfLastMissingFilesUpdate(Replica replica)
Get the date for the last file list job.Date
getDateOfLastWrongFilesUpdate(Replica replica)
Get the date for the last file list job.Iterable<String>
getMissingFilesInLastUpdate(Replica replica)
Return files with upload_status = COMPLETE for the replica, but the filelist_status = MISSING.long
getNumberOfFiles(Replica replica)
Returns the count of files in the replica which is not missing.long
getNumberOfMissingFilesInLastUpdate(Replica replica)
Return the count of missing files for replica.long
getNumberOfWrongFilesInLastUpdate(Replica replica)
Return the count of corrupt files for replica.ReplicaFileInfo
getReplicaFileInfo(String filename, Replica replica)
Method for retrieving the entry in the replicafileinfo table for a given file and replica.Iterable<String>
getWrongFilesInLastUpdate(Replica replica)
Return files with filelist_status CORRUPT for the replica, but not present in the last missing files job.void
updateChecksumInformationForFileOnReplica(String filename, String checksum, Replica replica)
Method for updating a specific entry in the replicafileinfo table.void
updateChecksumStatus()
Method for updating the status for the files for all the replicas.void
updateChecksumStatus(String filename)
Method for updating the status for a specific file for all the replicas.
-
-
-
Method Detail
-
addChecksumInformation
void addChecksumInformation(File checksumOutput, Replica replica)
Given the output of a checksum job, add the results to the database. NOTE: the Checksum version of Replica must be implemented with output in the same form as checksumJobOutput for implementation of bitArchive replicas- Parameters:
checksumOutput
- The parsed output of a GetAllChecksumMessage as a File with ChecksumJob lines, i.e. filename##checksum.replica
- The replica this checksum job is for.
-
addFileListInformation
void addFileListInformation(File filelistOutput, Replica replica)
Given the output of a file list job, add the results to the database. NOTE: the Checksum version of Replica must be implemented with output in the same form as filelistJobOutput for implementation of bitArchive replicas- Parameters:
filelistOutput
- A file with a list of filenames for the given replica.replica
- The replica this filelist job is for.
-
getMissingFilesInLastUpdate
Iterable<String> getMissingFilesInLastUpdate(Replica replica)
Return files with upload_status = COMPLETE for the replica, but the filelist_status = MISSING. This is done by querying the database for files with no or different update date from the last known update date for bitarchive, but which are present from admin data.- Parameters:
replica
- The replica to check for.- Returns:
- The list of missing files for a specific replica.
-
getWrongFilesInLastUpdate
Iterable<String> getWrongFilesInLastUpdate(Replica replica)
Return files with filelist_status CORRUPT for the replica, but not present in the last missing files job. This is done by querying the database for files with different checksum from the checksum in the last known update date for bitarchive, but which are present from admin data.- Parameters:
replica
- The replica to check for.- Returns:
- The list of wrong files for the replica in the last update.
-
getNumberOfMissingFilesInLastUpdate
long getNumberOfMissingFilesInLastUpdate(Replica replica)
Return the count of missing files for replica.- Parameters:
replica
- The replica to get the count for.- Returns:
- The count of missing files for a replica.
-
getNumberOfWrongFilesInLastUpdate
long getNumberOfWrongFilesInLastUpdate(Replica replica)
Return the count of corrupt files for replica.- Parameters:
replica
- The replica to get the count for.- Returns:
- The number of wrong files for a replica.
-
getNumberOfFiles
long getNumberOfFiles(Replica replica)
Returns the count of files in the replica which is not missing.- Parameters:
replica
- The replica to have the files.- Returns:
- The number of files, which does not have filelist_status = MISSING.
-
getDateOfLastMissingFilesUpdate
Date getDateOfLastMissingFilesUpdate(Replica replica)
Get the date for the last file list job.- Parameters:
replica
- The replica to get the date for.- Returns:
- The date of the last missing files update for the replica.
-
getDateOfLastWrongFilesUpdate
Date getDateOfLastWrongFilesUpdate(Replica replica)
Get the date for the last file list job.- Parameters:
replica
- The replica to get the date for.- Returns:
- The date of the last wrong file update for the replica.
-
getBitarchiveWithGoodFile
Replica getBitarchiveWithGoodFile(String filename)
Method for retrieving a replica which has the file and the checksum_status = OK.- Parameters:
filename
- The name of the file.- Returns:
- A replica which contains the file, or null if no such replica can be found.
-
getBitarchiveWithGoodFile
Replica getBitarchiveWithGoodFile(String filename, Replica badReplica)
Method for retrieving a replica which has the file and the checksum_status = OK.- Parameters:
filename
- The name of the file.badReplica
- A replica which is known to contain a corrupt instance of this file.- Returns:
- A replica which contains the file, or null if no such replica can be found.
-
updateChecksumStatus
void updateChecksumStatus()
Method for updating the status for the files for all the replicas. If the checksums of the archives differ for some replicas, then based on a checksum vote, a specific checksum is chosen as the 'correct' one, and the entries with another checksum that this 'correct' one will be marked as corrupt.
-
updateChecksumStatus
void updateChecksumStatus(String filename)
Method for updating the status for a specific file for all the replicas. If the checksums for the replicas differ for some replica, then based on a checksum vote, a specific checksum is chosen as the 'correct' one, and the entries with another checksum than the 'correct one' will be marked as corrupt. If no winner of the voting is found, the all instances will be chosen to have 'UNKNOWN' checksum status.- Parameters:
filename
- The name of the file to update the status for.
-
getReplicaFileInfo
ReplicaFileInfo getReplicaFileInfo(String filename, Replica replica)
Method for retrieving the entry in the replicafileinfo table for a given file and replica.- Parameters:
filename
- The name of the file for the entry.replica
- The replica of the entry.- Returns:
- The replicafileinfo entry corresponding to the given filename and replica.
-
updateChecksumInformationForFileOnReplica
void updateChecksumInformationForFileOnReplica(String filename, String checksum, Replica replica)
Method for updating a specific entry in the replicafileinfo table.- Parameters:
filename
- Name of the file.checksum
- The checksum of the file.replica
- The replica where the file exists.
-
-