server/sources/datafeed.py
changeset 10454 20f45a9b385c
parent 10143 2eb06486273a
child 10522 1660a0fa4f43
equal deleted inserted replaced
10453:76f601a90aa7 10454:20f45a9b385c
   125         super(DataFeedSource, self).init(activated, source_entity)
   125         super(DataFeedSource, self).init(activated, source_entity)
   126         self.parser_id = source_entity.parser
   126         self.parser_id = source_entity.parser
   127         self.load_mapping(source_entity._cw)
   127         self.load_mapping(source_entity._cw)
   128 
   128 
   129     def _get_parser(self, cnx, **kwargs):
   129     def _get_parser(self, cnx, **kwargs):
       
   130         if self.parser_id is None:
       
   131             self.warning('No parser defined on source %r', self)
       
   132             raise ObjectNotFound()
   130         return self.repo.vreg['parsers'].select(
   133         return self.repo.vreg['parsers'].select(
   131             self.parser_id, cnx, source=self, **kwargs)
   134             self.parser_id, cnx, source=self, **kwargs)
   132 
   135 
   133     def load_mapping(self, cnx):
   136     def load_mapping(self, cnx):
   134         self.mapping = {}
   137         self.mapping = {}
   199             self.release_synchronization_lock(cnx)
   202             self.release_synchronization_lock(cnx)
   200 
   203 
   201     def _pull_data(self, cnx, force=False, raise_on_error=False):
   204     def _pull_data(self, cnx, force=False, raise_on_error=False):
   202         importlog = self.init_import_log(cnx)
   205         importlog = self.init_import_log(cnx)
   203         myuris = self.source_cwuris(cnx)
   206         myuris = self.source_cwuris(cnx)
   204         parser = self._get_parser(cnx, sourceuris=myuris, import_log=importlog)
   207         try:
       
   208             parser = self._get_parser(cnx, sourceuris=myuris, import_log=importlog)
       
   209         except ObjectNotFound:
       
   210             return {}
   205         if self.process_urls(parser, self.urls, raise_on_error):
   211         if self.process_urls(parser, self.urls, raise_on_error):
   206             self.warning("some error occurred, don't attempt to delete entities")
   212             self.warning("some error occurred, don't attempt to delete entities")
   207         else:
   213         else:
   208             parser.handle_deletion(self.config, cnx, myuris)
   214             parser.handle_deletion(self.config, cnx, myuris)
   209         self.update_latest_retrieval(cnx)
   215         self.update_latest_retrieval(cnx)