Changeset 1b376ca
- Timestamp:
- Dec 3, 2008 10:12:13 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:
- c8853fd
- Parents:
- dceeef9
- Location:
- fedd/federation
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/access.py
rdceeef9 r1b376ca 541 541 """ 542 542 543 def gateway_hardware(h): 544 if h == 'GWTYPE': return self.attrs.get('connectorType', 'GWTYPE') 545 else: return h 546 543 547 # The dance to get into the request body 544 548 if req.has_key('RequestAccessRequestBody'): … … 567 571 if req.has_key('resources') and req['resources'].has_key('node'): 568 572 resources = req['resources'] 569 restricted = [ tfor n in resources['node'] \573 restricted = [ gateway_hardware(t) for n in resources['node'] \ 570 574 if n.has_key('hardware') \ 571 575 for t in n['hardware'] \ 572 if t in self.restricted ] 576 if gateway_hardware(t) \ 577 in self.restricted ] 573 578 inaccessible = [ t for t in restricted \ 574 579 if t not in found[0].node_types] … … 611 616 if restricted != None and len(restricted) > 0: 612 617 preq['AllocateProjectRequestBody']['resources'] = \ 613 [ {'node': { 'hardware' : [ h ] }} \614 for h in restricted ] 618 {'node': [ { 'hardware' : [ h ] } \ 619 for h in restricted ] } 615 620 ap = self.allocate_project.dynamic_project(preq) 616 621 else: … … 636 641 if restricted != None and len(restricted) > 0: 637 642 preq['StaticProjectRequestBody']['resources'] = \ 638 [ {'node': { 'hardware' : [ h ] }} \639 for h in restricted ] 643 {'node': [ { 'hardware' : [ h ] } \ 644 for h in restricted ] } 640 645 ap = self.allocate_project.static_project(preq) 641 646 else: -
fedd/federation/allocate_project.py
rdceeef9 r1b376ca 176 176 dir="/tmp") 177 177 178 if req.has_key('AllocateProjectRequestBody') and \ 179 req['AllocateProjectRequestBody'].has_key('project'): 180 proj = req['AllocateProjectRequestBody']['project'] 178 if req.has_key('AllocateProjectRequestBody'): 179 proj = req['AllocateProjectRequestBody'].get('project', None) 180 if not proj: 181 raise service_error(service_error.req, 182 "Badly formed allocation request") 183 resources = req['AllocateProjectRequestBody'].get('resources', { }) 181 184 else: 182 185 raise service_error(service_error.req, … … 279 282 ] 280 283 281 # Add commands to grant access to any resources in the request. 282 for nt in [ h for r in req.get('resources', []) \ 283 if r.has_key('node') and r['node'].has_key('hardware')\ 284 for h in r['node']['hardware'] ] : 285 cmds.append((self.wap, self.grantnodetype, '-p', name, nt)) 284 # Add commands to grant access to any resources in the request. The 285 # list comprehension pulls out the hardware types in the node entries 286 # in the resources list. 287 if resources.has_key('node'): 288 for nt in [ h for n in resources['node']\ 289 if n.has_key('hardware') for h in n['hardware'] ] : 290 if self.allocation_level >= self.confirm_keys: 291 cmds.append((self.wap, self.grantnodetype, '-p', pname, nt)) 292 286 293 287 294 # Create the projects … … 344 351 pname = req['StaticProjectRequestBody']['project']\ 345 352 ['name']['localname'] 346 resources = req['StaticProjectRequestBody'].get('resources', [])353 resources = req['StaticProjectRequestBody'].get('resources', { }) 347 354 except KeyError: 348 355 raise service_error(service_error.req, "Badly formed request") … … 370 377 # list comprehension pulls out the hardware types in the node entries 371 378 # in the resources list. 372 for nt in [ h for r in resources \373 if r.has_key('node') and r['node'].has_key('hardware')\374 for h in r['node']['hardware'] ] :375 376 cmds.append((self.wap, self.grantnodetype, '-p', pname, nt))379 if resources.has_key('node'): 380 for nt in [ h for n in resources['node']\ 381 if n.has_key('hardware') for h in n['hardware'] ] : 382 if self.allocation_level >= self.confirm_keys: 383 cmds.append((self.wap, self.grantnodetype, '-p', pname, nt)) 377 384 378 385 # Run the commands
Note: See TracChangeset
for help on using the changeset viewer.