+ def getMachines(self):
+ if time() - self.lasttime > 15:
+ self.lasttime = time()
+ sipb_xen_database.clear_cache()
+ return [machine.name for machine in sipb_xen_database.Machine.select()]
+
+ def getUid(self, machine_name):
+ return sipb_xen_database.Machine.get_by(name=machine_name).machine_id + 1000
+
+ def getK5login(self, machine_name):
+ machine = sipb_xen_database.Machine.get_by(name=machine_name)
+ users = [acl.user for acl in machine.acl]
+ return "\n".join(map(self.userToPrinc, users) + [''])
+
+ def userToPrinc(self, user):
+ if '@' in user:
+ (princ, realm) = user.split('@')
+ else:
+ princ = user
+ realm = "ATHENA.MIT.EDU"
+
+ return princ.replace('.', '/') + realm
+