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