[fix] Backup remote restore

This commit is contained in:
ljf 2022-10-17 01:20:20 +02:00
parent 6abd4568e1
commit fb62a9684b
No known key found for this signature in database
3 changed files with 11 additions and 6 deletions

View file

@ -29,7 +29,7 @@ from packaging import version
from moulinette import Moulinette, m18n from moulinette import Moulinette, m18n
from moulinette.utils.log import getActionLogger from moulinette.utils.log import getActionLogger
from moulinette.utils.filesystem import read_file, mkdir, write_to_yaml, read_yaml, rm, chown, chmod, write_to_file from moulinette.utils.filesystem import mkdir, write_to_yaml, read_yaml, rm, chown, chmod, write_to_file
from moulinette.utils.process import check_output from moulinette.utils.process import check_output
import yunohost.domain import yunohost.domain
@ -58,8 +58,6 @@ from yunohost.log import OperationLogger, is_unit_operation
from yunohost.repository import BackupRepository, BackupArchive from yunohost.repository import BackupRepository, BackupArchive
from yunohost.utils.config import ConfigPanel from yunohost.utils.config import ConfigPanel
from yunohost.utils.error import YunohostError, YunohostValidationError from yunohost.utils.error import YunohostError, YunohostValidationError
from yunohost.utils.packages import ynh_packages_version
from yunohost.utils.filesystem import free_space_in_directory, disk_usage, binary_to_human
from yunohost.utils.system import ( from yunohost.utils.system import (
free_space_in_directory, free_space_in_directory,
get_ynh_package_version, get_ynh_package_version,

View file

@ -42,7 +42,7 @@ from datetime import timedelta, datetime
import yunohost.repositories import yunohost.repositories
from yunohost.utils.config import ConfigPanel from yunohost.utils.config import ConfigPanel
from yunohost.utils.error import YunohostError, YunohostValidationError from yunohost.utils.error import YunohostError, YunohostValidationError
from yunohost.utils.filesystem import disk_usage, binary_to_human from yunohost.utils.system import disk_usage, binary_to_human
from yunohost.utils.network import get_ssh_public_key, SHF_BASE_URL from yunohost.utils.network import get_ssh_public_key, SHF_BASE_URL
logger = getActionLogger('yunohost.repository') logger = getActionLogger('yunohost.repository')
@ -184,8 +184,7 @@ class BackupRepository(ConfigPanel):
if self.values.get('method') == 'tar' and self.values['is_remote']: if self.values.get('method') == 'tar' and self.values['is_remote']:
raise YunohostError("repository_tar_only_local") raise YunohostError("repository_tar_only_local")
if 'shf_id' in self.values: self.values['is_shf'] = bool(self.values['shf_id']) if 'shf_id' in self.values else False
self.values['is_shf'] = bool(self.values['shf_id'])
def _parse_pre_answered(self, *args): def _parse_pre_answered(self, *args):
super()._parse_pre_answered(*args) super()._parse_pre_answered(*args)

View file

@ -58,6 +58,14 @@ def space_used_by_directory(dirpath, follow_symlinks=True):
return stat.f_frsize * stat.f_blocks # FIXME : this doesnt do what the function name suggest this does ... return stat.f_frsize * stat.f_blocks # FIXME : this doesnt do what the function name suggest this does ...
def disk_usage(path):
# We don't do this in python with os.stat because we don't want
# to follow symlinks
du_output = check_output(["du", "-sb", path], shell=False)
return int(du_output.split()[0])
def human_to_binary(size: str) -> int: def human_to_binary(size: str) -> int:
symbols = ("K", "M", "G", "T", "P", "E", "Z", "Y") symbols = ("K", "M", "G", "T", "P", "E", "Z", "Y")