Source code for AutoArchive._services.archiver.backup_definition
# backup_definition.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2021 Róbert Čerňanský
""":const:`MIN_COMPRESSION_STRENGTH` and :const:`MAX_COMPRESSION_STRENGTH` constants, :data:`BackupTypes`,
:data:`ArchiverFeatures`, :data:`BackupSubOperations`, :data:`BackupOperationErrors` enums
and :class:`BackupDefinition` class."""
__all__ = ["MIN_COMPRESSION_STRENGTH", "MAX_COMPRESSION_STRENGTH", "BackupTypes", "ArchiverFeatures",
"BackupSubOperations", "BackupOperationErrors", "BackupDefinition"]
# {{{ INCLUDES
from AutoArchive._infrastructure.py_additions import Enum
# }}} INCLUDES
# {{{ CONSTANTS
#: Minimal compression strength value.
MIN_COMPRESSION_STRENGTH: int = 0
#: Maximal compression strength value.
MAX_COMPRESSION_STRENGTH: int = 9
# }}} CONSTANTS
# {{{ CLASSES
#: Backup types.
BackupTypes = Enum(
"Tar",
"TarGz",
"TarBz2",
"TarXz",
"TarZst")
#: Features that archiver service may support.
ArchiverFeatures = Enum(
"CompressionStrength",
"Incremental")
#: Operations executed during backup creation.
BackupSubOperations = Enum(
#: Unknown operation
"Unknown",
#: Unknown operation on a filesystem object.
"UnknownFileOperation",
#: :meth:`os.stat()` (or access) operation on a filesystem object.
"Stat",
#: Filesystem object open operation.
"Open",
#: File read operation.
"Read",
#: Finishing the backup creation.
"Finish")
#: Errors that may occur during backup operation.
BackupOperationErrors = Enum(
#: Unknown error.
"UnknownError",
#: An operation on a filesystem object was not successful due to other/unknown system error.
"UnknownOsError",
#: An operation on a filesystem object was not successful due to permission denied system error.
"PermissionDenied",
#: A socket was ignored.
"SocketIgnored",
#: An unknown filesystem object typ was ignored.
"UnknownTypeIgnored",
#: The file was changed while it has been adding to the backup.
"FileChanged",
#: Some files were changed during backup creation.
"SomeFilesChanged",
#: A directory has been renamed since last backup level.
"DirectoryRenamed")
[docs]class BackupDefinition:
"""Container class for information needed to create a backup."""
def __init__(self):
self.__backupId = None
self.__backupType = None
self.__destination = None
self.__root = None
self.__includeFiles = None
self.__excludeFiles = frozenset()
@property
def backupId(self):
"""The backup identifier, typically the name is used.
:rtype: ``str``"""
return self.__backupId
@backupId.setter
def backupId(self, value):
self.__backupId = value
@property
def backupType(self):
"""Type of the backup.
:rtype: :data:`BackupTypes`"""
return self.__backupType
@backupType.setter
def backupType(self, value):
self.__backupType = value
@property
def destination(self):
"""Path to the directory which contains the backup.
:rtype: ``str``"""
return self.__destination
@destination.setter
def destination(self, value):
self.__destination = value
@property
def root(self):
"""Path to the root directory of the source content.
:rtype: ``str``"""
return self.__root
@root.setter
def root(self, value):
self.__root = value
@property
def includeFiles(self):
"""Set of source filesystem objects paths relative to :attr:`root`.
:rtype: ``Set<str>``"""
return self.__includeFiles
@includeFiles.setter
def includeFiles(self, value):
self.__includeFiles = value
@property
def excludeFiles(self):
"""Set of excluded filesystem objects paths relative to :attr:`root`.
:rtype: ``Set<str>``"""
return self.__excludeFiles
@excludeFiles.setter
def excludeFiles(self, value):
self.__excludeFiles = value
# }}} CLASSES