Merge branch 'upstreammaster'
[sfa.git] / sfa / util / xrn.py
index 2791e8b..4a47b58 100644 (file)
@@ -131,6 +131,7 @@ class Xrn:
             self.hrn=xrn\r
             self.type=type\r
             self.hrn_to_urn()\r
+        self._normalize()\r
 # happens all the time ..\r
 #        if not type:\r
 #            debug_logger.debug("type-less Xrn's are not safe")\r
@@ -167,7 +168,7 @@ class Xrn:
         self._normalize()\r
         return ':'.join( [Xrn.unescape(x) for x in self.authority] )\r
 \r
-    def get_sliver_id(self, slice_id, node_id, index=0, authority=None):\r
+    def get_sliver_id(self, slice_id, node_id=None, index=0, authority=None):\r
         self._normalize()\r
         urn = self.get_urn()\r
         if authority:\r
@@ -177,7 +178,8 @@ class Xrn:
             else:\r
                 hrn = ".".join([authority_hrn, self.get_leaf()])\r
             urn = Xrn(hrn, self.get_type()).get_urn()\r
-        return ":".join(map(str, [urn, slice_id, node_id, index]))\r
+        parts = [part for part in [urn, slice_id, node_id, index] if part is not None]\r
+        return ":".join(map(str, [parts]))\r
 \r
     def urn_to_hrn(self):\r
         """\r