122 parser.del_schema_config(schemacfg, checkonly) |
122 parser.del_schema_config(schemacfg, checkonly) |
123 |
123 |
124 def fresh(self): |
124 def fresh(self): |
125 if self.latest_retrieval is None: |
125 if self.latest_retrieval is None: |
126 return False |
126 return False |
127 return datetime.now() < (self.latest_retrieval + self.synchro_interval) |
127 return datetime.utcnow() < (self.latest_retrieval + self.synchro_interval) |
128 |
128 |
129 def pull_data(self, session, force=False, raise_on_error=False): |
129 def pull_data(self, session, force=False, raise_on_error=False): |
130 if not force and self.fresh(): |
130 if not force and self.fresh(): |
131 return {} |
131 return {} |
132 if self.config['delete-entities']: |
132 if self.config['delete-entities']: |
154 byetype.setdefault(etype, []).append(str(eid)) |
154 byetype.setdefault(etype, []).append(str(eid)) |
155 self.error('delete %s entities %s', self.uri, byetype) |
155 self.error('delete %s entities %s', self.uri, byetype) |
156 for etype, eids in byetype.iteritems(): |
156 for etype, eids in byetype.iteritems(): |
157 session.execute('DELETE %s X WHERE X eid IN (%s)' |
157 session.execute('DELETE %s X WHERE X eid IN (%s)' |
158 % (etype, ','.join(eids))) |
158 % (etype, ','.join(eids))) |
159 self.latest_retrieval = datetime.now() |
159 self.latest_retrieval = datetime.utcnow() |
160 session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s', |
160 session.execute('SET X latest_retrieval %(date)s WHERE X eid %(x)s', |
161 {'x': self.eid, 'date': self.latest_retrieval}) |
161 {'x': self.eid, 'date': self.latest_retrieval}) |
162 return parser.stats |
162 return parser.stats |
163 |
163 |
164 def before_entity_insertion(self, session, lid, etype, eid, sourceparams): |
164 def before_entity_insertion(self, session, lid, etype, eid, sourceparams): |