Revision 613659fc snf-pithos-backend/pithos/backends/lib/sqlalchemy/quotaholder_serials.py
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/quotaholder_serials.py | ||
---|---|---|
42 | 42 |
metadata = MetaData() |
43 | 43 |
columns = [] |
44 | 44 |
columns.append(Column('serial', BigInteger, primary_key=True)) |
45 |
config = Table('qh_serials', metadata, *columns, mysql_engine='InnoDB')
|
|
46 |
|
|
45 |
Table('qh_serials', metadata, *columns, mysql_engine='InnoDB') |
|
46 |
|
|
47 | 47 |
metadata.create_all(engine) |
48 | 48 |
return metadata.sorted_tables |
49 | 49 |
|
... | ... | |
69 | 69 |
rows = r.fetchall() |
70 | 70 |
r.close() |
71 | 71 |
return rows |
72 |
|
|
72 |
|
|
73 |
def lookup(self, serials): |
|
74 |
"""Return the serials.""" |
|
75 |
|
|
76 |
if not serials: |
|
77 |
return [] |
|
78 |
s = select([self.qh_serials.c.serial]) |
|
79 |
s = s.where(self.qh_serials.c.serial.in_(serials)) |
|
80 |
r = self.conn.execute(s) |
|
81 |
rows = r.fetchall() |
|
82 |
r.close() |
|
83 |
return [row[0] for row in rows] |
|
84 |
|
|
73 | 85 |
def insert_serial(self, serial): |
74 | 86 |
"""Insert a serial. |
75 | 87 |
""" |
76 | 88 |
|
77 | 89 |
s = self.qh_serials.insert() |
78 | 90 |
r = self.conn.execute(s, serial=serial) |
79 |
inserted_primary_key = r.inserted_primary_key[0] |
|
80 | 91 |
r.close() |
81 |
return inserted_primary_key |
|
92 |
|
|
93 |
def insert_many(self, serials): |
|
94 |
"""Insert multiple serials. |
|
95 |
""" |
|
96 |
|
|
97 |
r = self.conn.execute( |
|
98 |
self.qh_serials.insert(), |
|
99 |
list({'serial':s} for s in serials) |
|
100 |
) |
|
101 |
r.close() |
|
102 |
|
|
103 |
def delete_many(self, serials): |
|
104 |
if not serials: |
|
105 |
return |
|
106 |
st = self.qh_serials.delete().where( |
|
107 |
self.qh_serials.c.serial.in_(serials) |
|
108 |
) |
|
109 |
self.conn.execute(st).close() |
Also available in: Unified diff