Index: umc/python/diagnostic/plugins/samba_tool_showrepl.py =================================================================== --- umc/python/diagnostic/plugins/samba_tool_showrepl.py (Revision 82038) +++ umc/python/diagnostic/plugins/samba_tool_showrepl.py (Arbeitskopie) @@ -99,31 +99,32 @@ return (info_type, info) def neighbours(self): - (info_type, info) = self._replica_info(drsuapi.DRSUAPI_DS_REPLICA_INFO_NEIGHBORS) - for neighbour in info.array: - yield neighbour + for replica_info_direction in (drsuapi.DRSUAPI_DS_REPLICA_INFO_NEIGHBORS, + drsuapi.DRSUAPI_DS_REPLICA_INFO_REPSTO): + (info_type, info) = self._replica_info(replica_info_direction) + for neighbour in info.array: + yield (replica_info_direction, neighbour) - (info_type, info) = self._replica_info(drsuapi.DRSUAPI_DS_REPLICA_INFO_REPSTO) - for neighbour in info.array: - yield neighbour - def replication_problems(self): - for neighbour in self.neighbours(): + for replica_info, neighbour in self.neighbours(): (ecode, estring) = neighbour.result_last_attempt if ecode != 0: - yield ReplicationProblem(neighbour) + yield ReplicationProblem(replica_info, neighbour, estring) class ReplicationProblem(Exception): - def __init__(self, neighbour): + def __init__(self, replica_info, neighbour, estring): super(ReplicationProblem, self).__init__(neighbour) self.neighbour = neighbour + self.estring = estring + self.direction = {drsuapi.DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: 'Inbound', + drsuapi.DRSUAPI_DS_REPLICA_INFO_REPSTO: 'Outbound'}[replica_info] def __str__(self): - msg = _('In {nc!r}: error during DRS replication from {source}.') + msg = _('{direction} {nc!r}: error during DRS replication from {source} ({estring})') source = self._parse_ntds_dn(self.neighbour.source_dsa_obj_dn) - return msg.format(nc=self.neighbour.naming_context_dn.encode(), - source=source) + return msg.format(direction= self.direction, nc=self.neighbour.naming_context_dn.encode(), + source=source, estring=self.estring) @staticmethod def _parse_ntds_dn(dn):