public boolean removeLeaderFor()

in iep-leader-api/src/main/java/com/netflix/iep/leader/StandardLeaderElector.java [141:181]


  public boolean removeLeaderFor(ResourceId resourceId) {
    boolean removed = false;
    try {
      removed = leaderDatabase.removeLeadershipFor(resourceId);
      if (removed) {
        resourceLeaders.put(resourceId, LeaderId.NO_LEADER);
        registry.counter(
            leaderRemovalsCounterId
                .withTag("resource", resourceId.getId())
                .withTag("result", "success")
        )
        .increment();
      } else {
        registry.counter(
            leaderRemovalsCounterId
                .withTag("resource", resourceId.getId())
                .withTag("result", "failure")
                .withTag("error", "not_leader")
        )
        .increment();
      }
    } catch (Exception e) {
      final boolean removeLocalLeaderOnError = removeLocalLeaderStatusOnError();
      if (removeLocalLeaderOnError) {
        resourceLeaders.put(resourceId, LeaderId.UNKNOWN);
      }

      final String exceptionName = e.getCause() != null ?
          e.getCause().getClass().getSimpleName() : e.getClass().getSimpleName();
      registry.counter(
          leaderRemovalsCounterId
              .withTag("resource", resourceId.getId())
              .withTag("result", "failure")
              .withTag("error", exceptionName)
      )
      .increment();
      logger.error("Exception during leader removal", e);
    }

    return removed;
  }