Added harvest_log_list get action
This commit is contained in:
parent
a79ad2e325
commit
97cd64b172
|
@ -1,4 +1,5 @@
|
||||||
import logging
|
import logging
|
||||||
|
from itertools import groupby
|
||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
from ckan.model import User
|
from ckan.model import User
|
||||||
import datetime
|
import datetime
|
||||||
|
@ -12,10 +13,11 @@ from ckan.logic import NotFound, check_access, side_effect_free
|
||||||
|
|
||||||
from ckanext.harvest import model as harvest_model
|
from ckanext.harvest import model as harvest_model
|
||||||
|
|
||||||
from ckanext.harvest.model import (HarvestSource, HarvestJob, HarvestObject)
|
from ckanext.harvest.model import (HarvestSource, HarvestJob, HarvestObject, HarvestLog)
|
||||||
from ckanext.harvest.logic.dictization import (harvest_source_dictize,
|
from ckanext.harvest.logic.dictization import (harvest_source_dictize,
|
||||||
harvest_job_dictize,
|
harvest_job_dictize,
|
||||||
harvest_object_dictize)
|
harvest_object_dictize,
|
||||||
|
harvest_log_dictize)
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -310,6 +312,38 @@ def harvesters_info_show(context,data_dict):
|
||||||
|
|
||||||
return available_harvesters
|
return available_harvesters
|
||||||
|
|
||||||
|
@side_effect_free
|
||||||
|
def harvest_log_list(context,data_dict):
|
||||||
|
'''Returns a list of harvester log entries grouped by level.
|
||||||
|
|
||||||
|
:param per_page: number of logs to be shown default: 100
|
||||||
|
:param offset: use with ``per_page`` default: 0
|
||||||
|
:param level: filter log entries by level(debug, info, warning, error, critical)
|
||||||
|
'''
|
||||||
|
|
||||||
|
check_access('harvest_log_list', context, data_dict)
|
||||||
|
|
||||||
|
model = context['model']
|
||||||
|
session = context['session']
|
||||||
|
|
||||||
|
per_page = data_dict.get('per_page', 100)
|
||||||
|
offset = data_dict.get('offset', 0)
|
||||||
|
level = data_dict.get('level', False)
|
||||||
|
|
||||||
|
query = session.query(HarvestLog)
|
||||||
|
|
||||||
|
if level:
|
||||||
|
query = query.filter(HarvestLog.level==level.upper())
|
||||||
|
|
||||||
|
query = query.order_by(HarvestLog.level.desc(), HarvestLog.created.desc())
|
||||||
|
logs = query.offset(offset).limit(per_page).all()
|
||||||
|
|
||||||
|
out = dict()
|
||||||
|
for k, g in groupby(logs, lambda l: l.level):
|
||||||
|
out.update({k: [harvest_log_dictize(obj, context) for obj in g]})
|
||||||
|
|
||||||
|
return out
|
||||||
|
|
||||||
def _get_sources_for_user(context,data_dict):
|
def _get_sources_for_user(context,data_dict):
|
||||||
|
|
||||||
model = context['model']
|
model = context['model']
|
||||||
|
|
|
@ -97,6 +97,8 @@ def harvest_object_dictize(obj, context):
|
||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
def harvest_log_dictize(obj, context):
|
||||||
|
return obj.as_dict()
|
||||||
|
|
||||||
def _get_source_status(source, context):
|
def _get_source_status(source, context):
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Reference in New Issue