Ejemplo n.º 1
0
    def __get_top_talkers_list(self, node_path, value_type):
        """
        Internal function to support top talkers queries.

        Iterate subtree on node_path and use the results to generate
        a result list of value_type instances.
        """
        temp_result = {}

        bindings = Mgmt.iterate(node_path, subtree=True)

        for b in bindings:
            if Mgmt.bn_name_pattern_match(b[0], node_path + '/*/*'):
                parts = Mgmt.bn_name_to_parts(b[0])
                idx = int(parts[3]) - 1 # iterate results are 1-based
                attr_name = parts[4]

                curr_val = temp_result.setdefault(idx, value_type())

                setattr(curr_val, attr_name, b[2])

        return [temp_result[i] for i in xrange(len(temp_result))]