mirror of
https://github.com/YunoHost/moulinette.git
synced 2024-09-03 20:06:31 +02:00
[fix] Clean properly backup tmp directory if it already exists (wip #298)
This commit is contained in:
parent
da5aa1d4aa
commit
a960c92b9f
1 changed files with 12 additions and 8 deletions
|
@ -114,22 +114,26 @@ def backup_create(name=None, description=None, output_directory=None,
|
||||||
else:
|
else:
|
||||||
output_directory = archives_path
|
output_directory = archives_path
|
||||||
|
|
||||||
|
def _clean_tmp_dir(retcode=0):
|
||||||
|
ret = hook_callback('post_backup_create', args=[tmp_dir, retcode])
|
||||||
|
if not ret['failed']:
|
||||||
|
filesystem.rm(tmp_dir, True, True)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
logger.warning(m18n.n('backup_cleaning_failed'))
|
||||||
|
return False
|
||||||
|
|
||||||
# Create temporary directory
|
# Create temporary directory
|
||||||
if not tmp_dir:
|
if not tmp_dir:
|
||||||
tmp_dir = "%s/tmp/%s" % (backup_path, name)
|
tmp_dir = "%s/tmp/%s" % (backup_path, name)
|
||||||
if os.path.isdir(tmp_dir):
|
if os.path.isdir(tmp_dir):
|
||||||
logger.debug("temporary directory for backup '%s' already exists",
|
logger.debug("temporary directory for backup '%s' already exists",
|
||||||
tmp_dir)
|
tmp_dir)
|
||||||
filesystem.rm(tmp_dir, recursive=True)
|
if not _clean_tmp_dir():
|
||||||
|
raise MoulinetteError(
|
||||||
|
errno.EIO, m18n.n('backup_output_directory_not_empty'))
|
||||||
filesystem.mkdir(tmp_dir, 0750, parents=True, uid='admin')
|
filesystem.mkdir(tmp_dir, 0750, parents=True, uid='admin')
|
||||||
|
|
||||||
def _clean_tmp_dir(retcode=0):
|
|
||||||
ret = hook_callback('post_backup_create', args=[tmp_dir, retcode])
|
|
||||||
if not ret['failed']:
|
|
||||||
filesystem.rm(tmp_dir, True, True)
|
|
||||||
else:
|
|
||||||
logger.warning(m18n.n('backup_cleaning_failed'))
|
|
||||||
|
|
||||||
# Initialize backup info
|
# Initialize backup info
|
||||||
info = {
|
info = {
|
||||||
'description': description or '',
|
'description': description or '',
|
||||||
|
|
Loading…
Add table
Reference in a new issue