Revision 8570576b snf-pithos-backend/pithos/backends/lib/sqlite/quotaholder_serials.py
b/snf-pithos-backend/pithos/backends/lib/sqlite/quotaholder_serials.py | ||
---|---|---|
34 | 34 |
from dbworker import DBWorker |
35 | 35 |
|
36 | 36 |
class QuotaholderSerial(DBWorker): |
37 |
"""QuotaholderSerial keeps track of quota holder serials. |
|
38 |
""" |
|
37 |
"""QuotaholderSerial keeps track of quota holder serials.""" |
|
39 | 38 |
|
40 | 39 |
def __init__(self, **params): |
41 | 40 |
DBWorker.__init__(self, **params) |
... | ... | |
43 | 42 |
|
44 | 43 |
execute(""" create table if not exists qh_serials |
45 | 44 |
( serial bigint primary key) """) |
46 |
|
|
45 |
|
|
47 | 46 |
def get_lower(self, serial): |
48 | 47 |
"""Return entries lower than serial.""" |
49 | 48 |
|
50 | 49 |
q = "select serial from qh_serials where serial < ?" |
51 | 50 |
self.execute(q, (serial,)) |
52 | 51 |
return self.fetchall() |
53 |
|
|
52 |
|
|
53 |
def lookup(self, serials): |
|
54 |
"""Return the registered serials.""" |
|
55 |
|
|
56 |
placeholders = ','.join('?' for _ in serials) |
|
57 |
q = "select serial from qh_serials where serial in (%s)" % placeholders |
|
58 |
return [i[0] for i in self.execute(q, serials).fetchall()] |
|
59 |
|
|
54 | 60 |
def insert_serial(self, serial): |
55 |
"""Insert a serial. |
|
56 |
""" |
|
61 |
"""Insert a serial.""" |
|
57 | 62 |
|
58 | 63 |
q = "insert or ignore into qh_serials (serial) values (?)" |
59 | 64 |
return self.execute(q, (serial,)).lastrowid |
60 |
|
|
65 |
|
|
66 |
def insert_many(self, serials): |
|
67 |
"""Insert multiple serials.""" |
|
68 |
|
|
69 |
q = "insert into qh_serials(serial) values (?)" |
|
70 |
self.executemany(q, [(s,) for s in serials]) |
|
71 |
|
|
72 |
def delete_many(self, serials): |
|
73 |
"""Delete specified serials.""" |
|
74 |
|
|
75 |
if not serials: |
|
76 |
return |
|
77 |
placeholders = ','.join('?' for _ in serials) |
|
78 |
q = "delete from qh_serials where serial in (%s)" % placeholders |
|
79 |
self.conn.execute(q, serials) |
Also available in: Unified diff