mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Adapt the service and backup to support new result of hook_callback result
This commit is contained in:
parent
6ab5d71603
commit
37a2cc2e1c
2 changed files with 22 additions and 13 deletions
|
@ -593,8 +593,11 @@ class BackupManager():
|
||||||
env=env_dict,
|
env=env_dict,
|
||||||
chdir=self.work_dir)
|
chdir=self.work_dir)
|
||||||
|
|
||||||
if ret["succeed"] != []:
|
ret_succeed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "succeed"] for n, v in ret.items()}.items() if val}
|
||||||
self.system_return = ret["succeed"]
|
ret_failed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in ret.items()}.items() if val}
|
||||||
|
|
||||||
|
if ret_succeed != []:
|
||||||
|
self.system_return = ret_succeed
|
||||||
|
|
||||||
# Add files from targets (which they put in the CSV) to the list of
|
# Add files from targets (which they put in the CSV) to the list of
|
||||||
# files to backup
|
# files to backup
|
||||||
|
@ -610,7 +613,7 @@ class BackupManager():
|
||||||
|
|
||||||
restore_hooks = hook_list("restore")["hooks"]
|
restore_hooks = hook_list("restore")["hooks"]
|
||||||
|
|
||||||
for part in ret['succeed'].keys():
|
for part in ret_succeed.keys():
|
||||||
if part in restore_hooks:
|
if part in restore_hooks:
|
||||||
part_restore_hooks = hook_info("restore", part)["hooks"]
|
part_restore_hooks = hook_info("restore", part)["hooks"]
|
||||||
for hook in part_restore_hooks:
|
for hook in part_restore_hooks:
|
||||||
|
@ -620,7 +623,7 @@ class BackupManager():
|
||||||
logger.warning(m18n.n('restore_hook_unavailable', hook=part))
|
logger.warning(m18n.n('restore_hook_unavailable', hook=part))
|
||||||
self.targets.set_result("system", part, "Warning")
|
self.targets.set_result("system", part, "Warning")
|
||||||
|
|
||||||
for part in ret['failed'].keys():
|
for part in ret_failed.keys():
|
||||||
logger.error(m18n.n('backup_system_part_failed', part=part))
|
logger.error(m18n.n('backup_system_part_failed', part=part))
|
||||||
self.targets.set_result("system", part, "Error")
|
self.targets.set_result("system", part, "Error")
|
||||||
|
|
||||||
|
@ -1177,16 +1180,19 @@ class RestoreManager():
|
||||||
env=env_dict,
|
env=env_dict,
|
||||||
chdir=self.work_dir)
|
chdir=self.work_dir)
|
||||||
|
|
||||||
for part in ret['succeed'].keys():
|
ret_succeed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "succeed"] for n, v in ret.items()}.items() if val}
|
||||||
|
ret_failed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in ret.items()}.items() if val}
|
||||||
|
|
||||||
|
for part in ret_succeed.keys():
|
||||||
self.targets.set_result("system", part, "Success")
|
self.targets.set_result("system", part, "Success")
|
||||||
|
|
||||||
error_part = []
|
error_part = []
|
||||||
for part in ret['failed'].keys():
|
for part in ret_failed.keys():
|
||||||
logger.error(m18n.n('restore_system_part_failed', part=part))
|
logger.error(m18n.n('restore_system_part_failed', part=part))
|
||||||
self.targets.set_result("system", part, "Error")
|
self.targets.set_result("system", part, "Error")
|
||||||
error_part.append(part)
|
error_part.append(part)
|
||||||
|
|
||||||
if ret['failed']:
|
if ret_failed:
|
||||||
operation_logger.error(m18n.n('restore_system_part_failed', part=', '.join(error_part)))
|
operation_logger.error(m18n.n('restore_system_part_failed', part=', '.join(error_part)))
|
||||||
else:
|
else:
|
||||||
operation_logger.success()
|
operation_logger.success()
|
||||||
|
@ -1929,8 +1935,8 @@ class CustomBackupMethod(BackupMethod):
|
||||||
|
|
||||||
ret = hook_callback('backup_method', [self.method],
|
ret = hook_callback('backup_method', [self.method],
|
||||||
args=self._get_args('need_mount'))
|
args=self._get_args('need_mount'))
|
||||||
|
ret_succeed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "succeed"] for n, v in ret.items()}.items() if val}
|
||||||
self._need_mount = True if ret['succeed'] else False
|
self._need_mount = True if ret_succeed else False
|
||||||
return self._need_mount
|
return self._need_mount
|
||||||
|
|
||||||
def backup(self):
|
def backup(self):
|
||||||
|
@ -1943,7 +1949,8 @@ class CustomBackupMethod(BackupMethod):
|
||||||
|
|
||||||
ret = hook_callback('backup_method', [self.method],
|
ret = hook_callback('backup_method', [self.method],
|
||||||
args=self._get_args('backup'))
|
args=self._get_args('backup'))
|
||||||
if ret['failed']:
|
ret_failed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in ret.items()}.items() if val}
|
||||||
|
if ret_failed:
|
||||||
raise YunohostError('backup_custom_backup_error')
|
raise YunohostError('backup_custom_backup_error')
|
||||||
|
|
||||||
def mount(self, restore_manager):
|
def mount(self, restore_manager):
|
||||||
|
@ -1956,7 +1963,8 @@ class CustomBackupMethod(BackupMethod):
|
||||||
super(CustomBackupMethod, self).mount(restore_manager)
|
super(CustomBackupMethod, self).mount(restore_manager)
|
||||||
ret = hook_callback('backup_method', [self.method],
|
ret = hook_callback('backup_method', [self.method],
|
||||||
args=self._get_args('mount'))
|
args=self._get_args('mount'))
|
||||||
if ret['failed']:
|
ret_failed = {k: val for k, val in {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in ret.items()}.items() if val}
|
||||||
|
if ret_failed:
|
||||||
raise YunohostError('backup_custom_mount_error')
|
raise YunohostError('backup_custom_mount_error')
|
||||||
|
|
||||||
def _get_args(self, action):
|
def _get_args(self, action):
|
||||||
|
|
|
@ -494,11 +494,12 @@ def service_regen_conf(operation_logger, names=[], with_diff=False, force=False,
|
||||||
pre_result = hook_callback('conf_regen', names, pre_callback=_pre_call)
|
pre_result = hook_callback('conf_regen', names, pre_callback=_pre_call)
|
||||||
|
|
||||||
# Update the services name
|
# Update the services name
|
||||||
names = pre_result['succeed'].keys()
|
names = {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in pre_result.items()}.keys()
|
||||||
|
|
||||||
if not names:
|
if not names:
|
||||||
|
ret_failed = {n: [p for p, c in v.items() if c['state'] == "failed"] for n, v in pre_result.items()}
|
||||||
raise YunohostError('service_regenconf_failed',
|
raise YunohostError('service_regenconf_failed',
|
||||||
services=', '.join(pre_result['failed']))
|
services=', '.join(ret_failed))
|
||||||
|
|
||||||
# Set the processing method
|
# Set the processing method
|
||||||
_regen = _process_regen_conf if not dry_run else lambda *a, **k: True
|
_regen = _process_regen_conf if not dry_run else lambda *a, **k: True
|
||||||
|
|
Loading…
Add table
Reference in a new issue