CedarBackup3.actions.util
¶
Implements action-related utilities :author: Kenneth J. Pronovici <pronovic@ieee.org>
Module Contents¶
- CedarBackup3.actions.util.logger¶
- CedarBackup3.actions.util.MEDIA_LABEL_PREFIX = CEDAR BACKUP¶
- CedarBackup3.actions.util.findDailyDirs(stagingDir, indicatorFile)¶
Returns a list of all daily staging directories that do not contain the indicated indicator file. :returns: List of absolute paths to daily staging directories
- CedarBackup3.actions.util.createWriter(config)¶
Creates a writer object based on current configuration.
This function creates and returns a writer based on configuration. This is done to abstract action functionality from knowing what kind of writer is in use. Since all writers implement the same interface, there’s no need for actions to care which one they’re working with.
Currently, the
cdwriter
anddvdwriter
device types are allowed. An exception will be raised if any other device type is used.This function also checks to make sure that the device isn’t mounted before creating a writer object for it. Experience shows that sometimes if the device is mounted, we have problems with the backup. We may as well do the check here first, before instantiating the writer.
- Parameters:
config – Config object
- Returns:
Writer that can be used to write a directory to some media
- Raises:
ValueError – If there is a problem getting the writer
IOError – If there is a problem creating the writer object
- CedarBackup3.actions.util.writeIndicatorFile(targetDir, indicatorFile, backupUser, backupGroup)¶
Writes an indicator file into a target directory. :param targetDir: Target directory in which to write indicator :param indicatorFile: Name of the indicator file :param backupUser: User that indicator file should be owned by :param backupGroup: Group that indicator file should be owned by
- Raises:
IOException – If there is a problem writing the indicator file
- CedarBackup3.actions.util.getBackupFiles(targetDir)¶
Gets a list of backup files in a target directory.
Files that match INDICATOR_PATTERN (i.e.
"cback.store"
,"cback.stage"
, etc.) are assumed to be indicator files and are ignored.- Parameters:
targetDir – Directory to look in
- Returns:
List of backup files in the directory
- Raises:
ValueError – If the target directory does not exist
- CedarBackup3.actions.util.checkMediaState(storeConfig)¶
Checks state of the media in the backup device to confirm whether it has been initialized for use with Cedar Backup.
We can tell whether the media has been initialized by looking at its media label. If the media label starts with MEDIA_LABEL_PREFIX, then it has been initialized.
The check varies depending on whether the media is rewritable or not. For non-rewritable media, we also accept a
None
media label, since this kind of media cannot safely be initialized.- Parameters:
storeConfig – Store configuration
- Raises:
ValueError – If media is not initialized
- CedarBackup3.actions.util.initializeMediaState(config)¶
Initializes state of the media in the backup device so Cedar Backup can recognize it.
This is done by writing an mostly-empty image (it contains a “Cedar Backup” directory) to the media with a known media label.
Note: Only rewritable media (CD-RW, DVD+RW) can be initialized. It doesn’t make any sense to initialize media that cannot be rewritten (CD-R, DVD+R), since Cedar Backup would then not be able to use that media for a backup.
- Parameters:
config – Cedar Backup configuration
- Raises:
ValueError – If media could not be initialized
ValueError – If the configured media type is not rewritable
- CedarBackup3.actions.util.buildMediaLabel()¶
Builds a media label to be used on Cedar Backup media. :returns: Media label as a string