from types import StringTypes
from datetime import datetime
-from sqlalchemy import Column, Integer, String, DateTime
+from sqlalchemy import Integer, String, DateTime
from sqlalchemy import Table, Column, MetaData, join, ForeignKey
from sqlalchemy.orm import relationship, backref
from sqlalchemy.orm import column_property
'reg-slices':'reg_slices_as_researcher',},
}
-def augment_with_related_hrns (local_record):
+def augment_with_sfa_builtins (local_record):
+ # don't ruin the import of that file in a client world
+ from sfa.util.xrn import Xrn
+ # add a 'urn' field
+ setattr(local_record,'reg-urn',Xrn(xrn=local_record.hrn,type=local_record.type).urn)
+ # users have keys and this is needed to synthesize 'users' sent over to CreateSliver
+ if local_record.type=='user':
+ user_keys = [ key.key for key in local_record.reg_keys ]
+ setattr(local_record, 'reg-keys', user_keys)
# search in map according to record type
type_map=augment_map.get(local_record.type,{})
# use type-dep. map to do the job
related_records = getattr(local_record,attribute,[])
hrns = [ r.hrn for r in related_records ]
setattr (local_record, field_name, hrns)
+
+ # include legacy 'slices' and 'keys' fields for backwards compatibility
+ reg_keys = getattr(local_record, 'reg-keys', None)
+ if reg_keys:
+ setattr(local_record, 'keys', reg_keys)
+ reg_slices = getattr(local_record, 'reg-slices', None)
+ if reg_slices:
+ setattr(local_record, 'slices', reg_slices)
+