Constructs the partitions in the consistent ring by assigning them to collection nodes
        using the hashing algorithm and then finally sorting the partitions based on the hash value.

def _ConstructPartitions(self, collection_links, partitions_per_node):
        """Constructs the partitions in the consistent ring by assigning them to collection nodes
        using the hashing algorithm and then finally sorting the partitions based on the hash value.
        """
        collections_node_count = len(collection_links)
        partitions = [partition._Partition() for _ in xrange(0, partitions_per_node * collections_node_count)]

        index = 0
        for collection_node in collection_links:
            hash_value = self.hash_generator.ComputeHash(self._GetBytes(collection_node))
            for _ in xrange(0, partitions_per_node):
                partitions[index] = partition._Partition(hash_value, collection_node)
                index += 1
                hash_value = self.hash_generator.ComputeHash(hash_value)

        partitions.sort()
        return partitions