Source code for AutoArchive._application.archiving_application
# archiving_application.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2023 Róbert Čerňanský
from .archiving.actions.action_utils import ActionUtils
from .archiving.actions.create_action import CreateAction
from .archiving.actions.list_action import ListAction
from .archiving.actions.purge_action import PurgeAction
[docs]
class ArchivingApplication:
"""Takes care of executing user actions - application main use cases.
:param componentUi: Access to user interface.
:type componentUi: :class:`.CmdlineUi`
:param applicationContext: Application context.
:type applicationContext: :class:`.ApplicationContext`
:param serviceAccessor: Access to services.
:type serviceAccessor: :class:`.IServiceAccessor`"""
def __init__(self, componentUi, applicationContext, serviceAccessor):
self.__actionUtils = ActionUtils(componentUi, applicationContext, serviceAccessor)
[docs]
def executeCreateAction(self, selectedArchiveSpecs) -> bool:
"""Executes create backup(s) action.
Takes ``selectedArchiveSpecs`` and for each it creates a backup. If ``selectedArchiveSpecs`` is empty or
:attr:`.Options.ALL` is set to ``True`` then backups for all knows archives (typically all archive
specification files in :attr:`.Options.ARCHIVE_SPECS_DIR` directory) plus those in ``selectedArchiveSpecs``
are created.
:param selectedArchiveSpecs: :term:`archive specification files <archive specification file>` for which backups
shall be created.
:type selectedArchiveSpecs: ``Sequence<ArchiveSpecInfo>``"""
return CreateAction(self.__actionUtils, selectedArchiveSpecs).execute()
[docs]
def executeListAction(self, selectedArchiveSpecs) -> bool:
"""Lists information about :term:`selected <selected archive>` and :term:`orphaned <orphaned archive>` archives
to standard output.
Similarly to :meth:`executeCreateAction` archives in ``selectedArchiveSpecs`` are listed. If it is empty or
:attr:`.Options.ALL` is ``True`` then all archives plus selected are listed. Orphaned archives are always
listed.
List of orphaned archives is obtained by following operation: from the list of
:term:`stored archives <stored archive>` is subtracted the unique list of valid selected archives and
valid :term:`configured archives <configured archive>`.
Output has two possible formats depending on the :attr:`.Options.VERBOSE` option.
:param selectedArchiveSpecs: :term:`archive specification files <archive specification file>` which shall be
listed.
:type selectedArchiveSpecs: ``Sequence<ArchiveSpecInfo>``"""
return ListAction(self.__actionUtils, selectedArchiveSpecs).execute()
[docs]
def executePurgeAction(self, selectedArchiveSpecs) -> bool:
"""Removes all stored information about specified orphaned archives.
If ``selectedArchiveSpecs`` is empty or :attr:`.Options.ALL` is ``True`` then all orphaned archives are
processed.
:param selectedArchiveSpecs: :term:`archive specification files <archive specification file>` which shall be
purged.
:type selectedArchiveSpecs: ``Sequence<ArchiveSpecInfo>``"""
return PurgeAction(self.__actionUtils, selectedArchiveSpecs).execute()