Changeset f3898f7 for fedd/federation/emulab_access.py
- Timestamp:
- Oct 5, 2011 5:11:01 PM (13 years ago)
- Branches:
- compt_changes, info-ops, master
- Children:
- b6a6206
- Parents:
- 53b5c18
- git-author:
- Ted Faber <faber@…> (10/05/11 17:10:01)
- git-committer:
- Ted Faber <faber@…> (10/05/11 17:11:01)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/emulab_access.py
r53b5c18 rf3898f7 937 937 vchars_re = '[^' + string.ascii_letters + string.digits + '-]' 938 938 939 self.state_lock.acquire() 940 if aid in self.allocation: 941 proj = self.allocation[aid].get('project', None) 942 if not proj: 943 proj = self.allocation[aid].get('sproject', None) 944 self.state_lock.release() 945 946 if not proj: 947 raise service_error(service_error.internal, 948 "Can't find project for %s" %aid) 949 939 950 for a in attrs: 940 951 if a['attribute'] in configs: … … 954 965 ename = a['value'] 955 966 956 # Names longer than the emulab max are discarder 957 if ename and len(ename) <= self.max_name_len: 967 # Names longer than the emulab max are discarded 968 # Projects with a group require nonce experiment names as well 969 if ename and len(ename) <= self.max_name_len and '/' not in proj: 958 970 # Clean up the experiment name so that emulab will accept it. 959 971 ename = re.sub(vchars_re, '-', ename) … … 976 988 self.state_lock.acquire() 977 989 if aid in self.allocation: 978 proj = self.allocation[aid].get('project', None)979 if not proj:980 proj = self.allocation[aid].get('sproject', None)981 990 user = self.allocation[aid].get('user', None) 982 991 self.allocation[aid]['experiment'] = ename … … 995 1004 self.write_state() 996 1005 self.state_lock.release() 997 998 if not proj:999 raise service_error(service_error.internal,1000 "Can't find project for %s" %aid)1001 1006 1002 1007 if not user: … … 1095 1100 certfile, tmpdir) 1096 1101 1102 if '/' in proj: proj, gid = proj.split('/') 1103 else: gid = None 1104 1105 1097 1106 # Set up userconf and seer if needed 1098 1107 self.configure_userconf(services, tmpdir) … … 1112 1121 debug=self.create_debug, log=alloc_log, boss=self.boss, 1113 1122 cert=self.xmlrpc_cert) 1114 rv = starter(self, ename, proj, user, expfile, tmpdir )1123 rv = starter(self, ename, proj, user, expfile, tmpdir, gid=gid) 1115 1124 except service_error, e: 1116 1125 err = e … … 1164 1173 raise service_error(service_error.internal, 1165 1174 "Can't find project for %s" % aid) 1175 else: 1176 if '/' in proj: proj, gid = proj.split('/') 1177 else: gid = None 1166 1178 1167 1179 if not user: … … 1173 1185 stopper = self.stop_segment(keyfile=self.ssh_privkey_file, 1174 1186 debug=self.create_debug, boss=self.boss, cert=self.xmlrpc_cert) 1175 stopper(self, user, proj, ename )1187 stopper(self, user, proj, ename, gid) 1176 1188 return { 'allocID': req['allocID'], 'proof': proof.to_dict() }
Note: See TracChangeset
for help on using the changeset viewer.