try:
                         sliver = {}
                         sliver['hostname'] = self.nodes[node_id]['hostname']
+                        sliver['node_id'] = node_id
+                        sliver['slice_id'] = slice['slice_id']    
                         sliver['tags'] = []
                         slivers.append(sliver)
                         for tag in tags:
 
 
         # all nodes hould already be present in the rspec. Remove all 
         # nodes that done have slivers
-        from sfa.util.sfalogging import logger
         slivers = self._process_slivers(slivers)
         slivers_dict = {}
         for sliver in slivers:
                 sliver_info = slivers_dict[hostname]
                 node.set('client_id', hostname)
                 if sliver_urn:
-                    node.set('sliver_id', sliver_urn)
+                    sliver_urn = sliver_urn.replace('+slice+', '+sliver+')
+                    slice_id = sliver_info.get('slice_id', -1)
+                    node_id = sliver_info.get('node_id', -1)
+                    sliver_id = urn_to_sliver_id(sliver_urn, slice_id, node_id)
+                    node.set('sliver_id', sliver_id)
                 sliver_elem = node.xpath('//rspecv2:sliver_type | //sliver_type', namespaces=self.namespaces)
                 if sliver_elem and isinstance(sliver_elem, list):
                     sliver_elem = sliver_elem[0]