diff options
-rw-r--r-- | bitbake/lib/prserv/client.py | 4 | ||||
-rw-r--r-- | bitbake/lib/prserv/db.py | 64 | ||||
-rw-r--r-- | bitbake/lib/prserv/serv.py | 3 |
3 files changed, 6 insertions, 65 deletions
diff --git a/bitbake/lib/prserv/client.py b/bitbake/lib/prserv/client.py index 565c6f3872..9f5794c433 100644 --- a/bitbake/lib/prserv/client.py +++ b/bitbake/lib/prserv/client.py | |||
@@ -42,9 +42,9 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient): | |||
42 | if response: | 42 | if response: |
43 | return response["value"] | 43 | return response["value"] |
44 | 44 | ||
45 | async def importone(self, version, pkgarch, checksum, value, history=False): | 45 | async def importone(self, version, pkgarch, checksum, value): |
46 | response = await self.invoke( | 46 | response = await self.invoke( |
47 | {"import-one": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "value": value, "history": history}} | 47 | {"import-one": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "value": value}} |
48 | ) | 48 | ) |
49 | if response: | 49 | if response: |
50 | return response["value"] | 50 | return response["value"] |
diff --git a/bitbake/lib/prserv/db.py b/bitbake/lib/prserv/db.py index 88ed8e2125..2da493ddf5 100644 --- a/bitbake/lib/prserv/db.py +++ b/bitbake/lib/prserv/db.py | |||
@@ -192,67 +192,9 @@ class PRTable(object): | |||
192 | self.store_value(version, pkgarch, checksum, value) | 192 | self.store_value(version, pkgarch, checksum, value) |
193 | return value | 193 | return value |
194 | 194 | ||
195 | def _import_hist(self, version, pkgarch, checksum, value): | 195 | def importone(self, version, pkgarch, checksum, value): |
196 | if self.read_only: | 196 | self.store_value(version, pkgarch, checksum, value) |
197 | return None | 197 | return value |
198 | |||
199 | val = None | ||
200 | with closing(self.conn.cursor()) as cursor: | ||
201 | data = cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | ||
202 | (version, pkgarch, checksum)) | ||
203 | row = data.fetchone() | ||
204 | if row is not None: | ||
205 | val=row[0] | ||
206 | else: | ||
207 | #no value found, try to insert | ||
208 | try: | ||
209 | cursor.execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table), | ||
210 | (version, pkgarch, checksum, value)) | ||
211 | except sqlite3.IntegrityError as exc: | ||
212 | logger.error(str(exc)) | ||
213 | |||
214 | self.conn.commit() | ||
215 | |||
216 | data = cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | ||
217 | (version, pkgarch, checksum)) | ||
218 | row = data.fetchone() | ||
219 | if row is not None: | ||
220 | val = row[0] | ||
221 | return val | ||
222 | |||
223 | def _import_no_hist(self, version, pkgarch, checksum, value): | ||
224 | if self.read_only: | ||
225 | return None | ||
226 | |||
227 | with closing(self.conn.cursor()) as cursor: | ||
228 | try: | ||
229 | #try to insert | ||
230 | cursor.execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table), | ||
231 | (version, pkgarch, checksum, value)) | ||
232 | except sqlite3.IntegrityError as exc: | ||
233 | #already have the record, try to update | ||
234 | try: | ||
235 | cursor.execute("UPDATE %s SET value=? WHERE version=? AND pkgarch=? AND checksum=? AND value<?" | ||
236 | % (self.table), | ||
237 | (value, version, pkgarch, checksum, value)) | ||
238 | except sqlite3.IntegrityError as exc: | ||
239 | logger.error(str(exc)) | ||
240 | |||
241 | self.conn.commit() | ||
242 | |||
243 | data = cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table, | ||
244 | (version, pkgarch, checksum, value)) | ||
245 | row=data.fetchone() | ||
246 | if row is not None: | ||
247 | return row[0] | ||
248 | else: | ||
249 | return None | ||
250 | |||
251 | def importone(self, version, pkgarch, checksum, value, history=False): | ||
252 | if history: | ||
253 | return self._import_hist(version, pkgarch, checksum, value) | ||
254 | else: | ||
255 | return self._import_no_hist(version, pkgarch, checksum, value) | ||
256 | 198 | ||
257 | def export(self, version, pkgarch, checksum, colinfo, history=False): | 199 | def export(self, version, pkgarch, checksum, colinfo, history=False): |
258 | metainfo = {} | 200 | metainfo = {} |
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py index 3992056f88..e175886308 100644 --- a/bitbake/lib/prserv/serv.py +++ b/bitbake/lib/prserv/serv.py | |||
@@ -179,9 +179,8 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection): | |||
179 | pkgarch = request["pkgarch"] | 179 | pkgarch = request["pkgarch"] |
180 | checksum = request["checksum"] | 180 | checksum = request["checksum"] |
181 | value = request["value"] | 181 | value = request["value"] |
182 | history = request["history"] | ||
183 | 182 | ||
184 | value = self.server.table.importone(version, pkgarch, checksum, value, history) | 183 | value = self.server.table.importone(version, pkgarch, checksum, value) |
185 | if value is not None: | 184 | if value is not None: |
186 | response = {"value": value} | 185 | response = {"value": value} |
187 | 186 | ||