Package org.apache.solr.core.backup
Class BackupFilePaths
- java.lang.Object
-
- org.apache.solr.core.backup.BackupFilePaths
-
public class BackupFilePaths extends Object
Utility class for getting paths related to backups, or parsing information out of those paths.
-
-
Constructor Summary
Constructors Constructor Description BackupFilePaths(BackupRepository repository, URI backupLoc)
Create a BackupFilePaths object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static URI
buildExistingBackupLocationURI(BackupRepository repository, URI location, String backupName)
Builds the URI for the backup location given the user-provided 'location' and backup 'name'.void
createIncrementalBackupFolders()
Create all locations required to store an incremental backup.static List<BackupId>
findAllBackupIdsFromFileListing(String[] listFiles)
Identify all strings which appear to be the filename of a top-level backup properties file.static Optional<BackupId>
findMostRecentBackupIdFromFileListing(String[] listFiles)
Identify the string from an array of filenames which represents the most recent top-level backup properties file.URI
getBackupLocation()
static String
getBackupPropsName(BackupId id)
Get the filename of the top-level backup properties fileURI
getIndexDir()
Return a URI for the 'index' location, responsible for holding index files for all backups at this location.URI
getShardBackupMetadataDir()
Return a URI for the 'shard_backup_metadata' location, which contains metadata files about each shard backup.static String
getZkStateDir(BackupId id)
Get the directory name used to hold backed up ZK state
-
-
-
Constructor Detail
-
BackupFilePaths
public BackupFilePaths(BackupRepository repository, URI backupLoc)
Create a BackupFilePaths object.- Parameters:
repository
- the repository; used primarily to resolve URIs.backupLoc
- the root location for a named backup. For traditional backups this is expected to take the form baseLocation/backupName. For incremental backups this is expected to be of the form baseLocation/backupName/collectionName.
-
-
Method Detail
-
getIndexDir
public URI getIndexDir()
Return a URI for the 'index' location, responsible for holding index files for all backups at this location.Only valid for incremental backups.
-
getShardBackupMetadataDir
public URI getShardBackupMetadataDir()
Return a URI for the 'shard_backup_metadata' location, which contains metadata files about each shard backup.Only valid for incremental backups.
-
getBackupLocation
public URI getBackupLocation()
-
createIncrementalBackupFolders
public void createIncrementalBackupFolders() throws IOException
Create all locations required to store an incremental backup.- Throws:
IOException
- for issues encountered using repository to create directories
-
getZkStateDir
public static String getZkStateDir(BackupId id)
Get the directory name used to hold backed up ZK stateValid for both incremental and traditional backups.
- Parameters:
id
- the ID of the backup in question
-
getBackupPropsName
public static String getBackupPropsName(BackupId id)
Get the filename of the top-level backup properties fileValid for both incremental and traditional backups.
- Parameters:
id
- the ID of the backup in question
-
findAllBackupIdsFromFileListing
public static List<BackupId> findAllBackupIdsFromFileListing(String[] listFiles)
Identify all strings which appear to be the filename of a top-level backup properties file.Only valid for incremental backups.
- Parameters:
listFiles
- a list of strings, filenames which may or may not correspond to backup properties files
-
findMostRecentBackupIdFromFileListing
public static Optional<BackupId> findMostRecentBackupIdFromFileListing(String[] listFiles)
Identify the string from an array of filenames which represents the most recent top-level backup properties file.Only valid for incremental backups.
- Parameters:
listFiles
- a list of strings, filenames which may or may not correspond to backup properties files.
-
buildExistingBackupLocationURI
public static URI buildExistingBackupLocationURI(BackupRepository repository, URI location, String backupName) throws IOException
Builds the URI for the backup location given the user-provided 'location' and backup 'name'.- Parameters:
repository
- the backup repository, used to list files and resolve URI's.location
- a URI representing the repository location holding each backup namebackupName
- the specific backup name to create a URI for- Throws:
IOException
-
-