--- /usr/lib/python2.6/site-packages/sfa/managers/aggregate_manager_max_old.py 2013-04-16 10:31:10.982148848 -0400 +++ /usr/lib/python2.6/site-packages/sfa/managers/aggregate_manager_max.py 2013-04-19 13:44:01.513153283 -0400 @@ -350,7 +350,21 @@ class AggregateManagerMax (AggregateMana #TODO: create real CreateSliver response rspec ret = self.create_slice(api, slice_xrn, creds, rspec_string, users) if ret: - return self.get_rspec(api, creds, slice_xrn) + # wait some time for circuit ID to show up in query + time.sleep(30) + ret = self.get_rspec(api, creds, slice_xrn) + gri = self.get_xml_by_tag(ret, 'globalId') + rest_of_ret = ret + while gri: + tokens = gri.split('<') + gri = tokens[1].split('>')[1] + creatorUrn = Credential(string=creds[0]).gidCaller.get_urn() + creatorEmail = Credential(string=creds[0]).gidCaller.get_email() + sliceEmail = Credential(string=creds[0]).gidObject.get_email() + logger.info("NOCReport{CreateSliver: CircuitID='%s',SliceURN='%s',CreatorUrn='%s',CreatorEmail='%s',SliceEmail='%s'}" % (gri, slice_xrn, creatorUrn, creatorEmail, sliceEmail)) + rest_of_ret = rest_of_ret[rest_of_ret.find(''+gri)+(10+len(gri)):] + gri = self.get_xml_by_tag(rest_of_ret, 'globalId') + return ret else: return " Error! " --- /usr/lib/python2.6/site-packages/sfa/trust/gid_old.py 2013-01-30 11:41:11.992754886 -0500 +++ /usr/lib/python2.6/site-packages/sfa/trust/gid.py 2013-04-16 14:06:56.687159553 -0400 @@ -69,6 +69,7 @@ class GID(Certificate): uuid = None hrn = None urn = None + email = None # for adding to the SubjectAltName ## # Create a new GID object @@ -121,6 +122,15 @@ class GID(Certificate): self.decode() return self.urn + # Will be stuffed into subjectAltName + def set_email(self, email): + self.email = email + + def get_email(self): + if not self.email: + self.decode() + return self.email + def get_type(self): if not self.urn: self.decode() @@ -143,6 +153,9 @@ class GID(Certificate): if self.uuid: str += ", " + "URI:" + uuid.UUID(int=self.uuid).urn + if self.email: + str += ", " + "email:" + self.email + self.set_data(str, 'subjectAltName') @@ -166,10 +179,15 @@ class GID(Certificate): dict['uuid'] = uuid.UUID(val[4:]).int elif val.lower().startswith('uri:urn:publicid:idn+'): dict['urn'] = val[4:] + elif val.lower().startswith('email:'): + # FIXME: Ensure there isn't cruft in that address... + # EG look for email:copy,.... + dict['email'] = val[6:] self.uuid = dict.get("uuid", None) self.urn = dict.get("urn", None) - self.hrn = dict.get("hrn", None) + self.hrn = dict.get("hrn", None) + self.email = dict.get("email", None) if self.urn: self.hrn = urn_to_hrn(self.urn)[0] @@ -187,6 +205,8 @@ class GID(Certificate): result += " "*indent + "hrn:" + str(self.get_hrn()) +"\n" result += " "*indent + "urn:" + str(self.get_urn()) +"\n" result += " "*indent + "uuid:" + str(self.get_uuid()) + "\n" + if self.get_email() is not None: + result += " "*indent + "email:" + str(self.get_email()) + "\n" filename=self.get_filename() if filename: result += "Filename %s\n"%filename