mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[fix] Pep8
This commit is contained in:
parent
6c18e51b82
commit
a43b3dfa18
1 changed files with 31 additions and 20 deletions
|
@ -40,7 +40,7 @@ from moulinette.utils.filesystem import read_file
|
|||
|
||||
CATEGORIES_PATH = '/var/log/yunohost/categories/'
|
||||
OPERATIONS_PATH = '/var/log/yunohost/categories/operation/'
|
||||
CATEGORIES = ['operation', 'history', 'package', 'system', 'access', 'service', \
|
||||
CATEGORIES = ['operation', 'history', 'package', 'system', 'access', 'service',
|
||||
'app']
|
||||
METADATA_FILE_EXT = '.yml'
|
||||
LOG_FILE_EXT = '.log'
|
||||
|
@ -48,6 +48,7 @@ RELATED_CATEGORIES = ['app', 'domain', 'service', 'user']
|
|||
|
||||
logger = getActionLogger('yunohost.log')
|
||||
|
||||
|
||||
def log_list(category=[], limit=None):
|
||||
"""
|
||||
List available logs
|
||||
|
@ -73,7 +74,8 @@ def log_list(category=[], limit=None):
|
|||
|
||||
continue
|
||||
|
||||
logs = filter(lambda x: x.endswith(METADATA_FILE_EXT), os.listdir(category_path))
|
||||
logs = filter(lambda x: x.endswith(METADATA_FILE_EXT),
|
||||
os.listdir(category_path))
|
||||
logs = reversed(sorted(logs))
|
||||
|
||||
if limit is not None:
|
||||
|
@ -93,7 +95,8 @@ def log_list(category=[], limit=None):
|
|||
}
|
||||
entry["description"] = _get_description_from_name(base_filename)
|
||||
try:
|
||||
log_datetime = datetime.strptime(" ".join(log[:2]), "%Y%m%d %H%M%S")
|
||||
log_datetime = datetime.strptime(" ".join(log[:2]),
|
||||
"%Y%m%d %H%M%S")
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
|
@ -101,7 +104,8 @@ def log_list(category=[], limit=None):
|
|||
|
||||
result[category].append(entry)
|
||||
|
||||
# Reverse the order of log when in cli, more comfortable to read (avoid unecessary scrolling)
|
||||
# Reverse the order of log when in cli, more comfortable to read (avoid
|
||||
# unecessary scrolling)
|
||||
if not is_api:
|
||||
for category in result:
|
||||
result[category] = list(reversed(result[category]))
|
||||
|
@ -131,7 +135,7 @@ def log_display(path, number=50, share=False):
|
|||
if os.path.exists(abs_path) or os.path.exists(abs_path + METADATA_FILE_EXT):
|
||||
break
|
||||
|
||||
if os.path.exists(abs_path) and not path.endswith(METADATA_FILE_EXT) :
|
||||
if os.path.exists(abs_path) and not path.endswith(METADATA_FILE_EXT):
|
||||
log_path = abs_path
|
||||
|
||||
if abs_path.endswith(METADATA_FILE_EXT) or abs_path.endswith(LOG_FILE_EXT):
|
||||
|
@ -167,7 +171,7 @@ def log_display(path, number=50, share=False):
|
|||
|
||||
logger.info(m18n.n("log_available_on_yunopaste", url=url))
|
||||
if msettings.get('interface') == 'api':
|
||||
return { "url" : url }
|
||||
return {"url": url}
|
||||
else:
|
||||
return
|
||||
|
||||
|
@ -191,27 +195,27 @@ def log_display(path, number=50, share=False):
|
|||
if os.path.exists(log_path):
|
||||
from yunohost.service import _tail
|
||||
logs = _tail(log_path, int(number))
|
||||
#logs = [{"datetime": x.split(": ", 1)[0].replace("_", " "), "line": x.split(": ", 1)[1]} for x in logs if x]
|
||||
infos['log_path'] = log_path
|
||||
infos['logs'] = logs
|
||||
|
||||
return infos
|
||||
|
||||
|
||||
def is_unit_operation(entities=['app', 'domain', 'service', 'user'],
|
||||
exclude=['auth', 'password'], operation_key=None):
|
||||
"""
|
||||
Configure quickly a unit operation
|
||||
|
||||
This decorator help you to configure quickly the record of a unit operations.
|
||||
This decorator help you to configure the record of a unit operations.
|
||||
|
||||
Argument:
|
||||
entities A list of entity types related to the unit operation. The entity
|
||||
entities A list of entity types related to the unit operation. The entity
|
||||
type is searched inside argument's names of the decorated function. If
|
||||
something match, the argument value is added as related entity. If the
|
||||
argument name is different you can specify it with a tuple
|
||||
(argname, entity_type) instead of just put the entity type.
|
||||
|
||||
exclude Remove some arguments from the context. By default, arguments
|
||||
exclude Remove some arguments from the context. By default, arguments
|
||||
called 'password' and 'auth' are removed. If an argument is an object, you
|
||||
need to exclude it or create manually the unit operation without this
|
||||
decorator.
|
||||
|
@ -279,14 +283,15 @@ def is_unit_operation(entities=['app', 'domain', 'service', 'user'],
|
|||
return func_wrapper
|
||||
return decorate
|
||||
|
||||
|
||||
class UnitOperation(object):
|
||||
"""
|
||||
Instances of this class represents unit operation the yunohost admin as done.
|
||||
Instances of this class represents unit operation done on the ynh instance.
|
||||
|
||||
Each time an action of the yunohost cli/api change the system, one or several
|
||||
unit operations should be registered.
|
||||
Each time an action of the yunohost cli/api change the system, one or
|
||||
several unit operations should be registered.
|
||||
|
||||
This class record logs and some metadata like context or start time/end time.
|
||||
This class record logs and metadata like context or start time/end time.
|
||||
"""
|
||||
|
||||
def __init__(self, operation, related_to=None, **kwargs):
|
||||
|
@ -351,9 +356,9 @@ class UnitOperation(object):
|
|||
name += [self.operation]
|
||||
|
||||
if hasattr(self, "name_parameter_override"):
|
||||
# This is for special cases where the operation is not really unitary
|
||||
# For instance, the regen conf cannot be logged "per service" because of
|
||||
# the way it's built
|
||||
# This is for special cases where the operation is not really
|
||||
# unitary. For instance, the regen conf cannot be logged "per
|
||||
# service" because of the way it's built
|
||||
name.append(self.name_parameter_override)
|
||||
elif self.related_to:
|
||||
# We use the name of the first related thing
|
||||
|
@ -379,7 +384,7 @@ class UnitOperation(object):
|
|||
data['success'] = self._success
|
||||
if self.error is not None:
|
||||
data['error'] = self._error
|
||||
# TODO: detect if 'extra' erase some key of 'data'
|
||||
# TODO: detect if 'extra' erase some key of 'data'
|
||||
data.update(self.extra)
|
||||
return data
|
||||
|
||||
|
@ -420,9 +425,10 @@ class UnitOperation(object):
|
|||
else:
|
||||
if is_api:
|
||||
msg = "<strong>" + m18n.n('log_link_to_failed_log',
|
||||
name=self.name, desc=desc) + "</strong>"
|
||||
name=self.name, desc=desc) + "</strong>"
|
||||
else:
|
||||
msg = m18n.n('log_help_to_get_failed_log', name=self.name, desc=desc)
|
||||
msg = m18n.n('log_help_to_get_failed_log', name=self.name,
|
||||
desc=desc)
|
||||
logger.info(msg)
|
||||
self.flush()
|
||||
return msg
|
||||
|
@ -435,7 +441,12 @@ class UnitOperation(object):
|
|||
"""
|
||||
self.error(m18n.n('log_operation_unit_unclosed_properly'))
|
||||
|
||||
|
||||
def _get_description_from_name(name):
|
||||
"""
|
||||
Return the translated description from the filename
|
||||
"""
|
||||
|
||||
parts = name.split("-", 3)
|
||||
try:
|
||||
try:
|
||||
|
|
Loading…
Add table
Reference in a new issue