[#55] Allow CSW harvesters to define CQL filters (2nd try)

This commit is contained in:
etj 2014-03-02 23:12:54 +01:00
parent e3c35e9927
commit 9116a6fd1f
4 changed files with 9 additions and 3 deletions

View File

@ -613,6 +613,8 @@ class SpatialHarvester(HarvesterBase):
if config_str: if config_str:
self.source_config = json.loads(config_str) self.source_config = json.loads(config_str)
log.debug('Using config: %r', self.source_config) log.debug('Using config: %r', self.source_config)
else:
self.source_config = {}
def _get_validator(self): def _get_validator(self):
''' '''

View File

@ -86,10 +86,13 @@ class CSWHarvester(SpatialHarvester, SingletonPlugin):
guids_in_db = set(guid_to_package_id.keys()) guids_in_db = set(guid_to_package_id.keys())
# extract cql filter if any
cql = self.source_config.get('cql')
log.debug('Starting gathering for %s' % url) log.debug('Starting gathering for %s' % url)
guids_in_harvest = set() guids_in_harvest = set()
try: try:
for identifier in self.csw.getidentifiers(page=10, outputschema=self.output_schema()): for identifier in self.csw.getidentifiers(page=10, outputschema=self.output_schema(), cql=cql):
try: try:
log.info('Got identifier %s from the CSW', identifier) log.info('Got identifier %s from the CSW', identifier)
if identifier is None: if identifier is None:

View File

@ -95,7 +95,7 @@ class CswService(OwsService):
def getidentifiers(self, qtype=None, typenames="csw:Record", esn="brief", def getidentifiers(self, qtype=None, typenames="csw:Record", esn="brief",
keywords=[], limit=None, page=10, outputschema="gmd", keywords=[], limit=None, page=10, outputschema="gmd",
startposition=0, **kw): startposition=0, cql=None, **kw):
from owslib.csw import namespaces from owslib.csw import namespaces
constraints = [] constraints = []
csw = self._ows(**kw) csw = self._ows(**kw)
@ -110,6 +110,7 @@ class CswService(OwsService):
"startposition": startposition, "startposition": startposition,
"maxrecords": page, "maxrecords": page,
"outputschema": namespaces[outputschema], "outputschema": namespaces[outputschema],
"cql":cql,
} }
i = 0 i = 0
matches = 0 matches = 0

View File

@ -1,6 +1,6 @@
GeoAlchemy>=0.6 GeoAlchemy>=0.6
Shapely>=1.2.13 Shapely>=1.2.13
OWSLib==0.8.2 OWSLib==0.8.6
lxml>=2.3 lxml>=2.3
argparse argparse
pyparsing==1.5.6 pyparsing==1.5.6