summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2020-03-10 11:19:32 +0100
committerAnton Khirnov <anton@khirnov.net>2020-03-10 11:19:32 +0100
commit570a6183546c0197fe89d6356b561528921c8f54 (patch)
treeb36d420216b3ab30a9748e28375ab8f1aeefb85e
parent9863fd56b71b359d4df3c70c90bcf104d7c12b5d (diff)
repository: add logging
-rw-r--r--lbup/repository.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/lbup/repository.py b/lbup/repository.py
index 0cb1161..6a6e215 100644
--- a/lbup/repository.py
+++ b/lbup/repository.py
@@ -1,4 +1,5 @@
import fcntl
+import logging
import os
import os.path
import subprocess
@@ -37,7 +38,9 @@ class Repo:
data_dir = None
lock_name = 'lock'
- def __init__(self, bup_dir = None, data_dir = None):
+ _logger = None
+
+ def __init__(self, bup_dir = None, data_dir = None, logger = None):
if bup_dir is None:
if 'BUP_DIR' in os.environ:
bup_dir = os.environ['BUP_DIR']
@@ -47,6 +50,11 @@ class Repo:
if data_dir is None:
data_dir = os.path.expanduser('~/.local/var/lbup/')
+ if logger is None:
+ self._logger = logging.getLogger(self.name)
+ else:
+ self._logger = logger
+
# create the data dir, if it does not already exist
os.makedirs(data_dir, 0o700, exist_ok = True)
@@ -64,18 +72,28 @@ class Repo:
with open(os.path.join(self.data_dir, self.lock_name), 'w') as lockfile:
result = BackupResult()
+ self._logger.debug('Acquiring repository lock')
fcntl.lockf(lockfile, fcntl.LOCK_EX)
try:
for tgt in tgts:
+ self._logger.info('Backing up %s...' % tgt.name)
res = tgt.save(self.data_dir)
+ self._logger.info('Backing up %s done' % tgt.name)
+
result.target_results.append(res)
if gen_par2:
+ self._logger.info('Generating par2 files...')
res = subprocess.run(['bup', 'fsck', '-g'],
capture_output = True)
+ self._logger.info('Generating par2 files done')
+
result.par2_result = StepResult(res.returncode,
res.stderr + res.stdout)
finally:
+ self._logger.debug('Releasing repository lock')
fcntl.lockf(lockfile, fcntl.LOCK_UN)
+ self._logger.debug('Backup finished')
+
return result