Changeset d81971a for fedd/fedd_experiment_control.py
- Timestamp:
- Nov 17, 2008 6:19:40 PM (15 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
- Children:
- 7583a62
- Parents:
- afa43a8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd_experiment_control.py
rafa43a8 rd81971a 869 869 "eventserver": e['eventServer'], 870 870 "project": unpack_id(p['name']), 871 "emulab" : e 871 "emulab" : e, 872 "allocID" : r['allocID'], 872 873 } 873 874 # Make the testbed name be the label the user applied … … 883 884 tbparam[tb][key]= a['value'] 884 885 886 def release_access(self, tb, aid): 887 """ 888 Release access to testbed through fedd 889 """ 890 891 uri = self.tbmap.get(tb, None) 892 if not uri: 893 raise service_error(serice_error.server_config, 894 "Unknown testbed: %s" % tb) 895 896 # The basic request 897 req = { 'allocID' : aid } 898 899 # No retry loop here. Proxy servers must correctly authenticate 900 # themselves without help 901 902 try: 903 ctx = fedd_ssl_context(self.cert_file, 904 self.trusted_certs, password=self.cert_pwd) 905 except SSL.SSLError: 906 raise service_error(service_error.server_config, 907 "Server certificates misconfigured") 908 909 loc = feddServiceLocator(); 910 port = loc.getfeddPortType(uri, 911 transport=M2Crypto.httpslib.HTTPSConnection, 912 transdict={ 'ssl_context' : ctx }) 913 914 # Reconstruct the full request message 915 msg = ReleaseAccessRequestMessage() 916 msg.set_element_ReleaseAccessRequestBody( 917 pack_soap(msg, "ReleaseAccessRequestBody", req)) 918 919 try: 920 resp = port.ReleaseAccess(msg) 921 except ZSI.ParseException, e: 922 raise service_error(service_error.req, 923 "Bad format message (XMLRPC??): %s" % str(e)) 924 except ZSI.FaultException, e: 925 resp = e.fault.detail[0] 926 927 # better error coding 928 929 930 885 931 def remote_splitter(self, uri, desc, master): 886 932 … … 1510 1556 'name': [ { 'localname' : eid} ],\ 1511 1557 'emulab': tbparams[k]['emulab'],\ 1558 'allocID' : tbparams[k]['allocID'],\ 1512 1559 'master' : k == master,\ 1513 1560 } … … 1789 1836 domain = fed['emulab']['domain'] 1790 1837 host = "%s%s" % (fed['emulab']['ops'], domain) 1838 aid = fed['allocID'] 1791 1839 except KeyError, e: 1792 1840 continue … … 1797 1845 'host': host,\ 1798 1846 'eid': eid,\ 1847 'aid': aid,\ 1799 1848 } 1800 1849 self.state_lock.release() … … 1804 1853 self.stop_segment(tb, tbparams[tb]['eid'], tbparams) 1805 1854 1806 # Remove teh terminated experiment 1855 # release the allocations 1856 for tb in tbparams.keys(): 1857 self.release_access(tb, tbparams[tb]['aid']) 1858 1859 # Remove the terminated experiment 1807 1860 self.state_lock.acquire() 1808 1861 for id in ids:
Note: See TracChangeset
for help on using the changeset viewer.