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))]