X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FKeyTypes.py;h=1fae01b07c5ae73b06b627aab04b6732a65540ce;hb=1c4f6c43455b1e8225073e2f6a04ba03cfc5d84b;hp=6ac7111bdd9dfb34c54cfabf2a1a6d2110066b75;hpb=ed7fa1ebf97ec2f88f18f8fa538e46c6ae9525c4;p=plcapi.git diff --git a/PLC/KeyTypes.py b/PLC/KeyTypes.py index 6ac7111..1fae01b 100644 --- a/PLC/KeyTypes.py +++ b/PLC/KeyTypes.py @@ -4,7 +4,8 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: KeyTypes.py,v 1.2 2006/10/20 17:44:57 mlhuang Exp $ +# $Id$ +# $URL$ # from PLC.Faults import * @@ -25,31 +26,29 @@ class KeyType(Row): } def validate_key_type(self, name): - # Make sure name is not blank + # Make sure name is not blank if not len(name): raise PLCInvalidArgument, "Key type must be specified" - - # Make sure key type does not alredy exist - conflicts = KeyTypes(self.api, [name]) + + # Make sure key type does not alredy exist + conflicts = KeyTypes(self.api, [name]) if conflicts: raise PLCInvalidArgument, "Key type name already in use" - return name - + return name + class KeyTypes(Table): """ Representation of the key_types table in the database. """ - def __init__(self, api, names = None): + def __init__(self, api, key_types = None): + Table.__init__(self, api, KeyType) + sql = "SELECT %s FROM key_types" % \ ", ".join(KeyType.fields) - - if names: - # Separate the list into integers and strings - sql += " WHERE key_type IN (%s)" % ", ".join(api.db.quote(names)) - rows = api.db.selectall(sql) + if key_types: + sql += " WHERE key_type IN (%s)" % ", ".join(map(api.db.quote, key_types)) - for row in rows: - self[row['key_type']] = KeyType(api, row) + self.selectall(sql)