Changeset 7a8d667 for fedd/fedd_create_experiment.py
- Timestamp:
- Sep 19, 2008 6:25:54 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:
- 01073f7
- Parents:
- 9d207bd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd_create_experiment.py
r9d207bd r7a8d667 32 32 scripts = ["fed_bootstrap", "federate.sh", "smbmount.FreeBSD.pl", 33 33 "smbmount.Linux.pl", "make_hosts", "fed-tun.pl", "fed-tun.ucb.pl", 34 "fed_evrepeater", "rc.accounts.patch", "daemon.py", 35 "experiment-setup.py"] 34 "fed_evrepeater", "rc.accounts.patch"] 36 35 37 36 def __init__(self, … … 693 692 "emulab" : e 694 693 } 694 # Make the testbed name be the label the user applied 695 p['testbed'] = {'localname': tb } 695 696 696 697 for u in p['user']: … … 1400 1401 raise service_error(service_error.req, "No such experiment") 1401 1402 1403 1404 1405 def terminate_experiment(self, req, fid): 1406 tbparams = { } 1407 req = req.get('TerminateRequestBody', None) 1408 if not req: 1409 raise service_error(service_error.req, 1410 "Bad request format (no TerminateRequestBody)") 1411 exp = req.get('experiment', None) 1412 if exp: 1413 if exp.has_key('fedid'): 1414 key = fedid(bits=exp['fedid']) 1415 keytype = "fedid" 1416 elif exp.has_key('localname'): 1417 key = exp['localname'] 1418 keytype = "localname" 1419 else: 1420 raise service_error(service_error.req, "Unknown lookup type") 1421 else: 1422 raise service_error(service_error.req, "No request?") 1423 1424 fed_exp = self.state.get(key, None) 1425 1426 if fed_exp: 1427 # Construct enough of the tbparams to make the stop_segment calls 1428 # work 1429 for fed in fed_exp['federant']: 1430 try: 1431 for e in fed['name']: 1432 eid = e.get('localname', None) 1433 if eid: break 1434 else: 1435 continue 1436 1437 p = fed['emulab']['project'] 1438 1439 project = p['name']['localname'] 1440 tb = p['testbed']['localname'] 1441 user = p['user'][0]['userID']['localname'] 1442 1443 domain = fed['emulab']['domain'] 1444 host = "%s%s" % (fed['emulab']['ops'], domain) 1445 except KeyError, e: 1446 continue 1447 tbparams[tb] = {\ 1448 'user': user,\ 1449 'domain': domain,\ 1450 'project': project,\ 1451 'host': host,\ 1452 'eid': eid,\ 1453 } 1454 # Stop everyone. 1455 for tb in tbparams.keys(): 1456 self.stop_segment(tb, tbparams[tb]['eid'], tbparams) 1457 return { 'experiment': exp } 1458 else: 1459 raise service_error(service_error.req, "No saved state") 1460 1461 1462 1463 1402 1464 if __name__ == '__main__': 1403 1465 from optparse import OptionParser
Note: See TracChangeset
for help on using the changeset viewer.