X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fstorage%2Frecord.py;h=f9f807e96abf14863e1d7f99d97e71d30a4b5d94;hb=013d9db0fd63345c1d24b2b15b59d3dc5036bc18;hp=964d65c64f5be43b74f409d1ae92cc9162b1d753;hpb=37a296de43dfa860362d4482cfb2339ee55736dc;p=sfa.git diff --git a/sfa/storage/record.py b/sfa/storage/record.py index 964d65c6..f9f807e9 100644 --- a/sfa/storage/record.py +++ b/sfa/storage/record.py @@ -32,14 +32,13 @@ class SfaRecord(Row): of different types. """ - table_name = 'sfa' - - primary_key = 'record_id' +# table_name = 'sfa' +# primary_key = 'record_id' ### the wsdl generator assumes this is named 'fields' internal_fields = { - 'record_id': Parameter(int, 'An id that uniquely identifies this record', ro=True), - 'pointer': Parameter(int, 'An id that uniquely identifies this record in an external database ') + 'record_id': Parameter(int, "An id that uniquely identifies this record", ro=True), + 'pointer': Parameter(int, "An id that uniquely identifies this record in an external database") } fields = { @@ -48,8 +47,8 @@ class SfaRecord(Row): 'hrn': Parameter(str, "Human readable name of object"), 'gid': Parameter(str, "GID of the object"), 'type': Parameter(str, "Record type"), - 'last_updated': Parameter(int, 'Date and time of last update', ro=True), - 'date_created': Parameter(int, 'Date and time this record was created', ro=True), + 'last_updated': Parameter(int, "Date and time of last update", ro=True), + 'date_created': Parameter(int, "Date and time this record was created", ro=True), } all_fields = dict(fields.items() + internal_fields.items()) ## @@ -61,7 +60,8 @@ class SfaRecord(Row): # @param pointer is a pointer to a PLC record # @param dict if !=None, then fill in this record from the dictionary - def __init__(self, hrn=None, gid=None, type=None, pointer=None, authority=None, peer_authority=None, dict=None, string=None): + def __init__(self, hrn=None, gid=None, type=None, pointer=None, authority=None, + peer_authority=None, dict=None, string=None): self.dirty = True self.hrn = None self.gid = None @@ -313,9 +313,9 @@ class SfaRecord(Row): """ recorddict = self.as_dict() filteredDict = dict([(key, val) for (key, val) in recorddict.iteritems() if key in self.fields.keys()]) - record = XML('') - record.parse_dict(filteredDict) - str = record.toxml() + xml_record = XML('') + xml_record.parse_dict(filteredDict) + str = xml_record.toxml() return str ## @@ -329,8 +329,8 @@ class SfaRecord(Row): """ #dict = xmlrpclib.loads(str)[0][0] - record = XML(str) - self.load_from_dict(record.todict()) + xml_record = XML(str) + self.load_from_dict(xml_record.todict()) ## # Dump the record to stdout @@ -365,14 +365,14 @@ class SfaRecord(Row): print " %s: %s" % (key, self[key]) def summary_string(self): - return "Record(record_id=%s, hrn=%s, type=%s, auth=%s, pointer=%s)" % \ - (self.get('record_id'), self.get('hrn'), self.get('type'), self.get('auth'), \ + return "Record(record_id=%s, hrn=%s, type=%s, authority=%s, pointer=%s)" % \ + (self.get('record_id'), self.get('hrn'), self.get('type'), self.get('authority'), \ self.get('pointer')) def getdict(self): return dict(self) - def sync(self, verbose=False): + def sync(self): """ Sync this record with the database. """ @@ -389,21 +389,18 @@ class SfaRecord(Row): existing_records = table.find(filter) if not existing_records: table.insert(self) - if verbose: - logger.info("Inserted record: %s" %self.summary_string()) else: existing_record = existing_records[0] self['record_id'] = existing_record['record_id'] - table.upate(self) - if verbose: - logger.info("Updated record: %s" % self.summary_string()) + table.update(self) - def delete(self, verbose=False): + def delete(self): """ Remove record from the database. """ from sfa.storage.table import SfaTable table = SfaTable() + filter = {} if self.get('record_id'): filter['record_id'] = self.get('record_id') if self.get('hrn') and self.get('type'): @@ -411,11 +408,10 @@ class SfaRecord(Row): filter['type'] = self.get('type') if self.get('pointer'): filter['pointer'] = self.get('pointer') - existing_records = table.find(filter) - for record in existing_records: - table.remove(record) - if verbose: - logger.info("Removed record: %s" % self.summary_string()) + if filter: + existing_records = table.find(filter) + for record in existing_records: + table.remove(record) class UserRecord(SfaRecord): @@ -445,7 +441,6 @@ class NodeRecord(SfaRecord): fields = { 'hostname': Parameter(str, 'This nodes dns name'), 'node_type': Parameter(str, 'Type of node this is'), - 'node_type': Parameter(str, 'Type of node this is'), 'latitude': Parameter(str, 'latitude'), 'longitude': Parameter(str, 'longitude'), }