Changeset e40c7ee for fedd/fedd_create_experiment.py
- Timestamp:
- Sep 10, 2008 1:17:43 PM (16 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
- Children:
- 89d9502
- Parents:
- 03e0290
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd_create_experiment.py
r03e0290 re40c7ee 624 624 'destinationTestbed' : { 'uri' : uri }, 625 625 'user': user, 626 'allocID' : { ' username': 'test' },626 'allocID' : { 'localname': 'test' }, 627 627 'access' : [ { 'sshPubkey' : self.ssh_pubkey } ] 628 628 } … … 1077 1077 pid = "dummy" 1078 1078 gid = "dummy" 1079 eid = self.exp_stem1080 if self.randomize_experiments:1081 for i in range(0,5):1082 eid += random.choice(string.ascii_letters)1083 1079 # XXX 1084 1080 fail_soft = False … … 1106 1102 else: 1107 1103 raise service_error(service_error.req, "No experiment description") 1104 1105 if req.has_key('experimentID') and \ 1106 req['experimentID'].has_key('localname'): 1107 eid = req['experimentID']['localname'] 1108 while (self.state.has_key(eid)): 1109 eid += random.choice(string.ascii_letters) 1110 else: 1111 eid = self.exp_stem 1112 for i in range(0,5): 1113 eid += random.choice(string.ascii_letters) 1114 while (self.state.has_key(eid)): 1115 eid = self.exp_stem 1116 for i in range(0,5): 1117 eid += random.choice(string.ascii_letters) 1108 1118 1109 1119 try: … … 1172 1182 "Failed to generate visualization") 1173 1183 1184 # save federant information 1185 for k in allocated.keys(): 1186 tbparams[k]['federant'] = {\ 1187 'name': [ { 'localname' : k} ],\ 1188 'emulab': tbparams[k]['emulab'],\ 1189 'master' : k == master,\ 1190 } 1191 1192 1174 1193 # Copy tarfiles and rpms needed at remote sites into a staging area 1175 1194 try: … … 1254 1273 os.rmdir(tmpdir) 1255 1274 1256 resp = { ' emulab' : [ tbparams[tb]['emulab'] \1275 resp = { 'federant' : [ tbparams[tb]['federant'] \ 1257 1276 for tb in tbparams.keys() \ 1258 if tbparams[tb].has_key(' emulab') ],\1277 if tbparams[tb].has_key('federant') ],\ 1259 1278 'experiment': vtopo,\ 1260 1279 'vis' : vis, 1261 'experimentID' : { 'fedid': expid },\ 1280 'experimentID' : [\ 1281 { 'fedid': expid }, { 'localname': eid },\ 1282 ],\ 1262 1283 'experimentAccess': { 'X509' : expcert },\ 1263 1284 } 1264 1285 1265 1286 self.state[expid] = {\ 1266 'emulab': [ tbparams[tb]['emulab'] \ 1287 'fedid': expid, 1288 'localname': eid, 1289 'federant': [ tbparams[tb]['federant'] \ 1267 1290 for tb in tbparams.keys() \ 1268 if tbparams[tb].has_key(' emulab') ],\1291 if tbparams[tb].has_key('federant') ],\ 1269 1292 'vis': vis,\ 1270 1293 'vtopo': vtopo,\ 1271 1294 } 1295 self.state[eid] = self.state[expid] 1272 1296 1273 1297 return resp … … 1279 1303 raise service_error(service_error.req, 1280 1304 "Bad request format (no VtopoRequestBody)") 1281 if req.has_key('experiment') and req['experiment'].has_key('fedid'): 1282 qfedid = req['experiment']['fedid'] 1305 exp = req.get('experiment', None) 1306 if exp: 1307 if exp.has_key('fedid'): 1308 key = fedid(bits=exp['fedid']) 1309 keytype = "fedid" 1310 elif exp.has_key('localname'): 1311 key = exp['localname'] 1312 keytype = "localname" 1313 else: 1314 raise service_error(service_error.req, "Unknown lookup type") 1283 1315 else: 1284 raise service_error(service_error.req, " Use fedid for lookup")1285 1286 if self.state.has_key( qfedid):1287 return { 'experiment' : { 'fedid': qfedid},\1288 'vtopo': self.state[ qfedid]['vtopo'],\1316 raise service_error(service_error.req, "No request?") 1317 1318 if self.state.has_key(key): 1319 return { 'experiment' : {keytype: key },\ 1320 'vtopo': self.state[key]['vtopo'],\ 1289 1321 } 1290 1322 else: … … 1297 1329 raise service_error(service_error.req, 1298 1330 "Bad request format (no VisRequestBody)") 1299 if req.has_key('experiment') and req['experiment'].has_key('fedid'): 1300 qfedid = req['experiment']['fedid'] 1331 exp = req.get('experiment', None) 1332 if exp: 1333 if exp.has_key('fedid'): 1334 key = fedid(bits=exp['fedid']) 1335 keytype = "fedid" 1336 elif exp.has_key('localname'): 1337 key = exp['localname'] 1338 keytype = "localname" 1339 else: 1340 raise service_error(service_error.req, "Unknown lookup type") 1301 1341 else: 1302 raise service_error(service_error.req, " Use fedid for lookup")1303 1304 if self.state.has_key( qfedid):1305 return { 'experiment' : { 'fedid': qfedid},\1306 'vis': self.state[ qfedid]['vis'],\1342 raise service_error(service_error.req, "No request?") 1343 1344 if self.state.has_key(key): 1345 return { 'experiment' : {keytype: key },\ 1346 'vis': self.state[key]['vis'],\ 1307 1347 } 1308 1348 else: … … 1366 1406 'experimentdescription' : content, 1367 1407 'master' : opts.master, 1368 'user': [ {'userID' : { ' username' : 'faber' } } ],1408 'user': [ {'userID' : { 'localname' : 'faber' } } ], 1369 1409 }, 1370 1410 None)
Note: See TracChangeset
for help on using the changeset viewer.