/** * check whether the workerheartbeat is allowed in the assignedTasks * * @param whb : WorkerHeartbeat * @param assignedTasks * @return boolean if true, the assignments(LS-LOCAL-ASSIGNMENTS) is match with workerheart if * fasle, is not matched */ public boolean matchesAssignment( WorkerHeartbeat whb, Map<Integer, LocalAssignment> assignedTasks) { boolean isMatch = true; LocalAssignment localAssignment = assignedTasks.get(whb.getPort()); if (localAssignment == null) { isMatch = false; } else if (!whb.getTopologyId().equals(localAssignment.getTopologyId())) { // topology id not equal LOG.info( "topology id not equal whb=" + whb.getTopologyId() + ",localAssignment=" + localAssignment.getTopologyId()); isMatch = false; } else if (!(whb.getTaskIds().equals(localAssignment.getTaskIds()))) { // task-id isn't equal LOG.info( "task-id isn't equal whb=" + whb.getTaskIds() + ",localAssignment=" + localAssignment.getTaskIds()); isMatch = false; } return isMatch; }