Changeset f9ef40b for fedd/federation/access.py
- Timestamp:
- Sep 2, 2009 5:59:16 PM (15 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-2.00, version-3.01, version-3.02
- Children:
- 9beaf7c
- Parents:
- 6c57fe9
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/access.py
r6c57fe9 rf9ef40b 1136 1136 return rv 1137 1137 1138 def generate_portal_configs(self, topo, pubkey_base, secretkey_base, 1139 tmpdir): 1140 for p in [ e for e in topo.elements \ 1141 if isinstance(e, topdl.Computer) and e.get_attribute('portal')]: 1142 myname = e.name[0] 1143 peer = e.get_attribute('peer') 1144 lexp = e.get_attribute('experiment') 1145 lproj, leid = lexp.split('/', 1) 1146 ldomain = e.get_attribute('domain') 1147 scriptdir = e.get_attribute('scriptdir') 1148 active = e.get_attribute('active') 1149 type = e.get_attribute('type') 1150 segid = fedid(hexstr=e.get_attribute('peer_segment')) 1151 for e in topo.elements: 1152 if isinstance(e, topdl.Segment) and e.id.fedid == segid: 1153 seg = e 1154 break 1155 else: 1156 raise service_error(service_error.req, 1157 "Can't find segment for portal %s" % myname) 1158 1159 rexp = seg.get_attribute('experiment') 1160 rproj, reid = rexp.split("/", 1) 1161 rdomain = seg.get_attribute('domain') 1162 cfn = "%s/%s.%s.%s%s.gw.conf" % \ 1163 (tmpdir, myname, leid, lproj, ldomain) 1164 try: 1165 f = open(cfn, "w") 1166 print >>f, "Active: %s" % active 1167 print >>f, "BossName: boss" 1168 print >>f, "FsName: fs" 1169 print >>f, "EventServerName: event-server%s" % ldomain 1170 print >>f, "RemoteEventServerName: event-server%s" % rdomain 1171 print >>f, "SeerControl: control.%s.%s%s" % \ 1172 (leid.lower(), lproj.lower(), ldomain) 1173 print >>f, "Type: %s" % type 1174 print >>f, "RemoteExperiment: %s" % rexp 1175 print >>f, "LocalExperiment: %s" % lexp 1176 print >>f, "RemoteConfigFile: " + \ 1177 "/proj/%s/exp/%s/tmp/%s.%s.%s%s.gw.conf" \ 1178 % (rproj, reid, peer.lower(), reid.lower(), 1179 rproj.lower(), rdomain) 1180 print >>f, "Peer: %s.%s.%s%s" % \ 1181 (peer.lower(), reid.lower(), rproj.lower(), rdomain) 1182 print >>f, "Pubkeys: /proj/%s/exp/%s/tmp/%s" % \ 1183 (lproj, leid, pubkey_base) 1184 print >>f, "Privkey: /proj/%s/exp/%s/tmp/%s" % \ 1185 (lproj, leid, secretkey_base) 1186 f.close() 1187 except IOError, e: 1188 raise service_error(service_error.internal, 1189 "Can't write protal config %s: %s" % (cfn, e)) 1190 1138 1191 def StartSegment(self, req, fid): 1139 1192 def get_url(url, cf, tmpdir): … … 1161 1214 1162 1215 configs = set(('hosts', 'ssh_pubkey', 'ssh_secretkey')) 1216 keys = set(('ssh_pubkey', 'ssh_secretkey')) 1163 1217 1164 1218 … … 1200 1254 if a['attribute'] in configs: 1201 1255 get_url(a['value'], certfile, tmpdir) 1256 if a['attribute'] == 'ssh_pubkey': 1257 pubkey_base = a['attribute'].rpartition('/')[2] 1258 if a['attribute'] == 'ssh_secretkey': 1259 secretkey_base = a['attribute'].rpartition('/')[2] 1260 1261 self.generate_portal_configs(topo, pubkey_base, secretkey_base, tmpdir) 1202 1262 1203 1263 return { 'allocID': req['allocID'] }
Note: See TracChangeset
for help on using the changeset viewer.