Changeset 5334044 for fedd/federation/experiment_control.py
- Timestamp:
- May 27, 2010 2:25:36 AM (14 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-3.01, version-3.02
- Children:
- 1962a5b
- Parents:
- 0de1b94
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/experiment_control.py
r0de1b94 r5334044 46 46 # Right now, no support for composition. 47 47 class federated_service: 48 def __init__(self, name, exporter=None, importers=[], params={ }, reqs=[]): 48 def __init__(self, name, exporter=None, importers=None, params=None, 49 reqs=None, portal=None): 49 50 self.name=name 50 51 self.exporter=exporter 51 self.importers=importers 52 self.params = params 53 self.reqs = reqs 52 if importers is None: self.importers = [] 53 else: self.importers=importers 54 if params is None: self.params = { } 55 else: self.params = params 56 if reqs is None: self.reqs = [] 57 else: self.reqs = reqs 58 59 if portal is not None: 60 self.portal = portal 61 else: 62 self.portal = (name in federated_service.needs_portal) 54 63 55 64 def __str__(self): … … 57 66 (self.name, self.exporter, self.importers, self.params, 58 67 [ (r['name'], r['visibility']) for r in self.reqs] ) 68 69 needs_portal = ('SMB', 'seer', 'tmcd', 'project_export', 'seer_master') 59 70 60 71 class experiment_control_local: … … 1689 1700 if a.attribute == 'testbed']) 1690 1701 1702 tb_hosts = { } 1703 for tb in testbeds: 1704 tb_hosts[tb] = [ e.name for e in top.elements \ 1705 if isinstance(e, topdl.Computer) and \ 1706 e.get_attribute('testbed') and \ 1707 e.get_attribute('testbed') == tb] 1708 1691 1709 masters = { } # testbeds exporting services 1710 pmasters = { } # Testbeds exporting services that 1711 # need portals 1692 1712 for s in tb_services: 1693 # If this is a project_exportrequest with the importall field1713 # If this is a service request with the importall field 1694 1714 # set, fill it out. 1695 1715 … … 1711 1731 a.get('value','') 1712 1732 1713 masters[tb].append(federated_service(name=s['name'],1733 fser = federated_service(name=s['name'], 1714 1734 exporter=tb, importers=s.get('import',[]), 1715 params=params, reqs=[])) 1735 params=params) 1736 if fser.name == 'hide_hosts' \ 1737 and 'hosts' not in fser.params: 1738 fser.params['hosts'] = \ 1739 ",".join(tb_hosts.get(fser.exporter, [])) 1740 masters[tb].append(fser) 1741 1742 if fser.portal: 1743 if tb not in pmasters: pmasters[tb] = [ fser ] 1744 else: pmasters[tb].append(fser) 1716 1745 else: 1717 1746 self.log.error('Testbed service does not have name " + \ … … 1722 1751 topo ={ } # Sub topologies 1723 1752 connInfo = { } # Connection information 1753 1724 1754 self.get_access_to_testbeds(testbeds, access_user, allocated, 1725 1755 tbparams, masters) … … 1761 1791 part = experiment_partition(self.auth, self.store_url, self.tbmap, 1762 1792 self.muxmax, self.direct_transit) 1763 part.add_portals(top, topo, eid, masters, tbparams, ip_allocator,1793 part.add_portals(top, topo, eid, pmasters, tbparams, ip_allocator, 1764 1794 connInfo, expid) 1765 1795 # Now get access to the dynamic testbeds (those added above)
Note: See TracChangeset
for help on using the changeset viewer.