mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
mock Moulinette.interface and use functools.wraps on @unit_operation
This commit is contained in:
parent
710cdd878a
commit
e7a2e386a7
2 changed files with 9 additions and 6 deletions
|
@ -25,6 +25,7 @@ from glob import iglob
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
|
|
||||||
from moulinette import m18n, Moulinette
|
from moulinette import m18n, Moulinette
|
||||||
|
from yunohost.interface import Interface, InterfaceKind
|
||||||
from yunohost.utils.error import YunohostError, YunohostValidationError
|
from yunohost.utils.error import YunohostError, YunohostValidationError
|
||||||
from moulinette.utils import log
|
from moulinette.utils import log
|
||||||
from moulinette.utils.filesystem import read_yaml, cp
|
from moulinette.utils.filesystem import read_yaml, cp
|
||||||
|
@ -409,7 +410,7 @@ def _hook_exec_bash(path, args, chdir, env, user, return_format, loggers):
|
||||||
env = {}
|
env = {}
|
||||||
env["YNH_CWD"] = chdir
|
env["YNH_CWD"] = chdir
|
||||||
|
|
||||||
env["YNH_INTERFACE"] = Moulinette.interface.type
|
env["YNH_INTERFACE"] = Interface.kind.value
|
||||||
|
|
||||||
stdreturn = os.path.join(tempfile.mkdtemp(), "stdreturn")
|
stdreturn = os.path.join(tempfile.mkdtemp(), "stdreturn")
|
||||||
with open(stdreturn, "w") as f:
|
with open(stdreturn, "w") as f:
|
||||||
|
@ -511,7 +512,7 @@ def hook_exec_with_script_debug_if_failure(*args, **kwargs):
|
||||||
error = error_message_if_script_failed
|
error = error_message_if_script_failed
|
||||||
logger.error(error_message_if_failed(error))
|
logger.error(error_message_if_failed(error))
|
||||||
failure_message_with_debug_instructions = operation_logger.error(error)
|
failure_message_with_debug_instructions = operation_logger.error(error)
|
||||||
if Moulinette.interface.type != "api":
|
if Interface.kind is not InterfaceKind.API:
|
||||||
operation_logger.dump_script_log_extract_for_debugging()
|
operation_logger.dump_script_log_extract_for_debugging()
|
||||||
# Script got manually interrupted ...
|
# Script got manually interrupted ...
|
||||||
# N.B. : KeyboardInterrupt does not inherit from Exception
|
# N.B. : KeyboardInterrupt does not inherit from Exception
|
||||||
|
|
10
src/log.py
10
src/log.py
|
@ -21,6 +21,7 @@ import re
|
||||||
import yaml
|
import yaml
|
||||||
import glob
|
import glob
|
||||||
import psutil
|
import psutil
|
||||||
|
import functools
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -151,7 +152,7 @@ def log_list(limit=None, with_details=False, with_suboperations=False):
|
||||||
operations = list(reversed(sorted(operations, key=lambda o: o["name"])))
|
operations = list(reversed(sorted(operations, key=lambda o: o["name"])))
|
||||||
# Reverse the order of log when in cli, more comfortable to read (avoid
|
# Reverse the order of log when in cli, more comfortable to read (avoid
|
||||||
# unecessary scrolling)
|
# unecessary scrolling)
|
||||||
is_api = Moulinette.interface.type == "api"
|
is_api = Interface.kind is InterfaceKind.API
|
||||||
if not is_api:
|
if not is_api:
|
||||||
operations = list(reversed(operations))
|
operations = list(reversed(operations))
|
||||||
|
|
||||||
|
@ -233,7 +234,7 @@ def log_show(
|
||||||
url = yunopaste(content)
|
url = yunopaste(content)
|
||||||
|
|
||||||
logger.info(m18n.n("log_available_on_yunopaste", url=url))
|
logger.info(m18n.n("log_available_on_yunopaste", url=url))
|
||||||
if Moulinette.interface.type == "api":
|
if Interface.kind is InterfaceKind.API:
|
||||||
return {"url": url}
|
return {"url": url}
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
@ -348,6 +349,7 @@ def is_unit_operation(
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def decorate(func):
|
def decorate(func):
|
||||||
|
@functools.wraps(func)
|
||||||
def func_wrapper(*args, **kwargs):
|
def func_wrapper(*args, **kwargs):
|
||||||
op_key = operation_key
|
op_key = operation_key
|
||||||
if op_key is None:
|
if op_key is None:
|
||||||
|
@ -640,7 +642,7 @@ class OperationLogger:
|
||||||
"operation": self.operation,
|
"operation": self.operation,
|
||||||
"parent": self.parent,
|
"parent": self.parent,
|
||||||
"yunohost_version": get_ynh_package_version("yunohost")["version"],
|
"yunohost_version": get_ynh_package_version("yunohost")["version"],
|
||||||
"interface": Moulinette.interface.type,
|
"interface": Interface.kind.value,
|
||||||
}
|
}
|
||||||
if self.related_to is not None:
|
if self.related_to is not None:
|
||||||
data["related_to"] = self.related_to
|
data["related_to"] = self.related_to
|
||||||
|
@ -699,7 +701,7 @@ class OperationLogger:
|
||||||
self.logger.removeHandler(self.file_handler)
|
self.logger.removeHandler(self.file_handler)
|
||||||
self.file_handler.close()
|
self.file_handler.close()
|
||||||
|
|
||||||
is_api = Moulinette.interface.type == "api"
|
is_api = Interface.kind is InterfaceKind.API
|
||||||
desc = _get_description_from_name(self.name)
|
desc = _get_description_from_name(self.name)
|
||||||
if error is None:
|
if error is None:
|
||||||
if is_api:
|
if is_api:
|
||||||
|
|
Loading…
Add table
Reference in a new issue