Ignore:
Timestamp:
Sep 9, 2008 2:07:18 PM (16 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
Children:
45ebc4d
Parents:
4fc2250
Message:

get topo and vis data, persistent state

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fedd/fedd_create_experiment.py

    r4fc2250 r987aaa1  
    7474        self.ssh_identity_file = ssh_identity_file
    7575        self.ssh_type = ssh_type
     76        self.state = { }
    7677        self.tclsh = tclsh
    7778        self.tcl_splitter = tcl_splitter
     
    12521253                os.rmdir(os.path.join(path, d))
    12531254        os.rmdir(tmpdir)
    1254        
    1255         return { 'emulab' : [ tbparams[tb]['emulab'] \
     1255
     1256        resp = { 'emulab' : [ tbparams[tb]['emulab'] \
    12561257                for tb in tbparams.keys() \
    12571258                    if tbparams[tb].has_key('emulab') ],\
     
    12611262                    'experimentAccess': { 'X509' : expcert },\
    12621263                }
     1264       
     1265        self.state[expid] = {\
     1266                'emulab': [ tbparams[tb]['emulab'] \
     1267                    for tb in tbparams.keys() \
     1268                        if tbparams[tb].has_key('emulab') ],\
     1269                'vis': vis,\
     1270                'vtopo': vtopo,\
     1271            }
     1272           
     1273        return resp
     1274
     1275    def get_vtopo(self, req, fid):
     1276
     1277        req = req.get('VtopoRequestBody', None)
     1278        if not req:
     1279            raise service_error(service_error.req,
     1280                    "Bad request format (no VtopoRequestBody)")
     1281        if req.has_key('experiment') and req['experiment'].has_key('fedid'):
     1282            qfedid = req['experiment']['fedid']
     1283        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'],\
     1289                    }
     1290        else:
     1291            raise service_error(service_error.req, "No such experiment")
     1292
     1293    def get_vis(self, req, fid):
     1294
     1295        req = req.get('VisRequestBody', None)
     1296        if not req:
     1297            raise service_error(service_error.req,
     1298                    "Bad request format (no VisRequestBody)")
     1299        if req.has_key('experiment') and req['experiment'].has_key('fedid'):
     1300            qfedid = req['experiment']['fedid']
     1301        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'],\
     1307                    }
     1308        else:
     1309            raise service_error(service_error.req, "No such experiment")
     1310
    12631311
    12641312if __name__ == '__main__':
Note: See TracChangeset for help on using the changeset viewer.