fix bug in get_sliver_id()
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 13 Apr 2012 01:35:24 +0000 (21:35 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 13 Apr 2012 01:35:24 +0000 (21:35 -0400)
sfa/util/xrn.py

index c38fff5..20a1132 100644 (file)
@@ -166,8 +166,12 @@ class Xrn:
         self._normalize()
         urn = self.get_urn()
         if authority:
-            tmp_hrn = ".".join([authority,self.get_authority_hrn(), self.get_leaf()])
-            urn = Xrn(tmp_hrn, self.get_type()).get_urn()
+            authority_hrn = self.get_authority_hrn()
+            if not authority_hrn.startswith(authority):
+                hrn = ".".join([authority,self.get_authority_hrn(), self.get_leaf()])
+            else:
+                hrn = ".".join([self.get_authority_hrn(), self.get_leaf()])
+            urn = Xrn(hrn, self.get_type()).get_urn()
         return ":".join(map(str, [urn, slice_id, node_id, index])) 
  
     def urn_to_hrn(self):