Revision 613659fc

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()
b/snf-pithos-backend/pithos/backends/modular.py
123 123
            for m in self.messages:
124 124
                self.queue.send(*m)
125 125
            if serials:
126
                self.quotaholder_serials.insert_many(serials)
126 127
                self.quotaholder.accept_commission(
127 128
                            context     =   {},
128 129
                            clientkey   =   'pithos',

Also available in: Unified diff