Mercurial > libervia-pubsub
diff idavoll/pgsql_storage.py @ 227:8540825f85e0
Replaced unmaintained pyPgSQL by Psycopg 2
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 17 May 2012 00:31:36 +0200 |
parents | 274a45d2a5ab |
children |
line wrap: on
line diff
--- a/idavoll/pgsql_storage.py Sun Feb 13 21:46:33 2011 +0100 +++ b/idavoll/pgsql_storage.py Thu May 17 00:31:36 2012 +0200 @@ -51,20 +51,20 @@ if not row: raise error.NodeNotFound() - if row.node_type == 'leaf': + if row[0] == 'leaf': configuration = { - 'pubsub#persist_items': row.persist_items, - 'pubsub#deliver_payloads': row.deliver_payloads, + 'pubsub#persist_items': row[1], + 'pubsub#deliver_payloads': row[2], 'pubsub#send_last_published_item': - row.send_last_published_item} + row[3]} node = LeafNode(nodeIdentifier, configuration) node.dbpool = self.dbpool return node - elif row.node_type == 'collection': + elif row[0] == 'collection': configuration = { - 'pubsub#deliver_payloads': row.deliver_payloads, + 'pubsub#deliver_payloads': row[2], 'pubsub#send_last_published_item': - row.send_last_published_item} + row[3]} node = CollectionNode(nodeIdentifier, configuration) node.dbpool = self.dbpool return node @@ -98,15 +98,15 @@ config['pubsub#deliver_payloads'], config['pubsub#send_last_published_item']) ) - except cursor._pool.dbapi.OperationalError: + except cursor._pool.dbapi.IntegrityError: raise error.NodeExists() cursor.execute("""SELECT 1 from entities where jid=%s""", - (owner)) + (owner,)) if not cursor.fetchone(): cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""", - (owner)) + (owner,)) cursor.execute("""INSERT INTO affiliations (node_id, entity_id, affiliation) @@ -144,9 +144,9 @@ def toSubscriptions(rows): subscriptions = [] for row in rows: - subscriber = jid.internJID('%s/%s' % (row.jid, - row.resource)) - subscription = Subscription(row.node, subscriber, row.state) + subscriber = jid.internJID('%s/%s' % (row[1], + row[2])) + subscription = Subscription(row[0], subscriber, row[3]) subscriptions.append(subscription) return subscriptions @@ -176,7 +176,7 @@ def _checkNodeExists(self, cursor): cursor.execute("""SELECT node_id FROM nodes WHERE node=%s""", - (self.nodeIdentifier)) + (self.nodeIdentifier,)) if not cursor.fetchone(): raise error.NodeNotFound() @@ -263,7 +263,7 @@ if not row: return None else: - return Subscription(self.nodeIdentifier, subscriber, row.state) + return Subscription(self.nodeIdentifier, subscriber, row[0]) def getSubscriptions(self, state=None): @@ -290,16 +290,16 @@ subscriptions = [] for row in rows: - subscriber = jid.JID('%s/%s' % (row.jid, row.resource)) + subscriber = jid.JID('%s/%s' % (row[0], row[1])) options = {} - if row.subscription_type: - options['pubsub#subscription_type'] = row.subscription_type; - if row.subscription_depth: - options['pubsub#subscription_depth'] = row.subscription_depth; + if row[3]: + options['pubsub#subscription_type'] = row[3]; + if row[4]: + options['pubsub#subscription_depth'] = row[4]; subscriptions.append(Subscription(self.nodeIdentifier, subscriber, - row.state, options)) + row[2], options)) return subscriptions @@ -320,9 +320,9 @@ try: cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""", - (userhost)) - except cursor._pool.dbapi.OperationalError: - pass + (userhost,)) + except cursor._pool.dbapi.IntegrityError: + cursor._connection.rollback() try: cursor.execute("""INSERT INTO subscriptions @@ -340,7 +340,7 @@ subscription_depth, self.nodeIdentifier, userhost)) - except cursor._pool.dbapi.OperationalError: + except cursor._pool.dbapi.IntegrityError: raise error.SubscriptionExists() @@ -399,7 +399,7 @@ NATURAL JOIN affiliations NATURAL JOIN entities WHERE node=%s""", - self.nodeIdentifier) + (self.nodeIdentifier,)) result = cursor.fetchall() return [(jid.internJID(r[0]), r[1]) for r in result] @@ -481,7 +481,7 @@ (self.nodeIdentifier, maxItems)) else: - cursor.execute(query, (self.nodeIdentifier)) + cursor.execute(query, (self.nodeIdentifier,)) result = cursor.fetchall() items = [stripNamespace(parseXml(r[0])) for r in result]