116 parser.del_schema_config(schemacfg, checkonly) |
116 parser.del_schema_config(schemacfg, checkonly) |
117 |
117 |
118 def fresh(self): |
118 def fresh(self): |
119 if self.latest_retrieval is None: |
119 if self.latest_retrieval is None: |
120 return False |
120 return False |
121 return datetime.now() < (self.latest_retrieval + self.synchro_interval) |
121 return datetime.utcnow() < (self.latest_retrieval + self.synchro_interval) |
122 |
122 |
123 def pull_data(self, session, force=False, raise_on_error=False): |
123 def pull_data(self, session, force=False, raise_on_error=False): |
124 if not force and self.fresh(): |
124 if not force and self.fresh(): |
125 return {} |
125 return {} |
126 if self.config['delete-entities']: |
126 if self.config['delete-entities']: |
148 byetype.setdefault(etype, []).append(str(eid)) |
148 byetype.setdefault(etype, []).append(str(eid)) |
149 self.error('delete %s entities %s', self.uri, byetype) |
149 self.error('delete %s entities %s', self.uri, byetype) |
150 for etype, eids in byetype.iteritems(): |
150 for etype, eids in byetype.iteritems(): |
151 session.execute('DELETE %s X WHERE X eid IN (%s)' |
151 session.execute('DELETE %s X WHERE X eid IN (%s)' |
152 % (etype, ','.join(eids))) |
152 % (etype, ','.join(eids))) |
153 self.latest_retrieval = datetime.now() |
153 self.latest_retrieval = datetime.utcnow() |
154 session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s', |
154 session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s', |
155 {'x': self.eid, 'date': self.latest_retrieval}) |
155 {'x': self.eid, 'date': self.latest_retrieval}) |
156 return parser.stats |
156 return parser.stats |
157 |
157 |
158 def before_entity_insertion(self, session, lid, etype, eid, sourceparams): |
158 def before_entity_insertion(self, session, lid, etype, eid, sourceparams): |