Changeset 69692a9 for fedd/federation/emulab_access.py
- Timestamp:
- Sep 21, 2009 6:48:12 PM (15 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-2.00, version-3.01, version-3.02
- Children:
- ae0f69a
- Parents:
- adcbdaf
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/emulab_access.py
radcbdaf r69692a9 69 69 self.ssh_privkey_file = config.get("access","ssh_privkey_file") 70 70 self.create_debug = config.getboolean("access", "create_debug") 71 self.cleanup = not config.getboolean("access", "leave_tmpfiles") 71 72 self.access_type = config.get("access", "type") 72 73 … … 915 916 916 917 def generate_ns2(self, topo, expfn, softdir, master): 918 def dragon_commands(e): 919 s = "" 920 if isinstance(e, topdl.Computer): 921 for i in e.interface: 922 vlan = i.get_attribute('dragon_vlan') 923 if vlan: 924 type = i.get_attribute('dragon_type') 925 ip = i.get_attribute('ip4_address') 926 if type == 'link': 927 s = ("tb-allow-external $%s dragonportal " + \ 928 "ip %s vlan %s\n") % \ 929 (topdl.to_tcl_name(e.name[0]), ip, vlan) 930 elif type == 'lan': 931 s = ("tb-allow-external $%s dragonportal " + \ 932 "ip %s vlan %s usurp %s\n") % \ 933 (topdl.to_tcl_name(e.name[0]), ip, vlan, 934 i.substrate[0]) 935 else: 936 raise service_error(service_error_internal, 937 "Unknown DRAGON type %s" % type) 938 return s 939 940 def not_dragon(e): 941 return all([not i.get_attribute('dragon_vlan') \ 942 for i in e.interface]) 943 917 944 t = topo.clone() 918 945 … … 925 952 if isinstance(e, topdl.Computer): 926 953 e.interface = [i for i in e.interface \ 927 if not i.get_attribute('portal')] 928 t.substrates = [ s for s in t.substrates \ 929 if not s.get_attribute('portal')] 954 if not i.get_attribute('portal') or \ 955 i.get_attribute('dragon_vlan')] 956 t.substrates = [ s.clone() for s in t.substrates ] 957 #t.substrates = [ s for s in t.substrates \ 958 # if not s.get_attribute('portal')] 930 959 t.incorporate_elements() 931 960 … … 941 970 else:cmdname = 'SlaveConnectorCmd' 942 971 972 if self.attrs.has_key('dragon'): 973 add_filter = not_dragon 974 filters.append(dragon_commands) 975 else: 976 add_filter = None 977 943 978 if self.attrs.has_key(cmdname): 944 979 filters.append(topdl.generate_portal_command_filter( 945 self.attrs.get(cmdname) ))980 self.attrs.get(cmdname), add_filter=add_filter)) 946 981 947 982 if self.attrs.has_key('connectorImage'): … … 1086 1121 err = e 1087 1122 1088 self.log.debug("[StartSegment]: removing %s" % tmpdir)1089 1123 # Walk up tmpdir, deleting as we go 1090 for path, dirs, files in os.walk(tmpdir, topdown=False): 1091 for f in files: 1092 os.remove(os.path.join(path, f)) 1093 for d in dirs: 1094 os.rmdir(os.path.join(path, d)) 1095 os.rmdir(tmpdir) 1124 if self.cleanup: 1125 self.log.debug("[StartSegment]: removing %s" % tmpdir) 1126 for path, dirs, files in os.walk(tmpdir, topdown=False): 1127 for f in files: 1128 os.remove(os.path.join(path, f)) 1129 for d in dirs: 1130 os.rmdir(os.path.join(path, d)) 1131 os.rmdir(tmpdir) 1132 else: 1133 self.log.debug("[StartSegment]: not removing %s" % tmpdir) 1096 1134 1097 1135 if rv:
Note: See TracChangeset
for help on using the changeset viewer.