+# $Id#
import re
from PLC.Faults import *
'peer_key_id': Parameter(int, "Foreign key identifier at peer", nullok = True),
}
- # for Cache
- class_key= 'key'
- foreign_fields = ['key_type']
- foreign_xrefs = []
-
def validate_key_type(self, key_type):
key_types = [row['key_type'] for row in KeyTypes(self.api)]
if key_type not in key_types:
" WHERE key_id IN (%s)" % ", ".join(map(str, key_ids)))
# But disassociate them from all join tables
- for table in ['person_key']:
+ for table in self.join_tables:
self.api.db.do("DELETE FROM %s WHERE key_id IN (%s)" % \
(table, ", ".join(map(str, key_ids))))
database.
"""
- def __init__(self, api, key_filter = None, columns = None, peer_id = None):
+ def __init__(self, api, key_filter = None, columns = None):
Table.__init__(self, api, Key, columns)
sql = "SELECT %s FROM view_keys WHERE is_blacklisted IS False" % \
", ".join(self.columns)
- if peer_id is None:
- sql += " AND peer_id IS NULL"
- elif isinstance(peer_id, (int, long)):
- sql += " AND peer_id = %d" % peer_id
-
if key_filter is not None:
if isinstance(key_filter, (list, tuple, set)):
key_filter = Filter(Key.fields, {'key_id': key_filter})
elif isinstance(key_filter, dict):
key_filter = Filter(Key.fields, key_filter)
- sql += " AND (%s)" % key_filter.sql(api)
+ sql += " AND (%s) %s" % key_filter.sql(api)
self.selectall(sql)