Ejemplo n.º 1
0
  /**
   * 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;
  }