public LeaderId getLeaderFor()

in iep-spring-leader-dynamodb/src/main/java/com/netflix/iep/leader/dynamodb/DynamoDbLeaderDatabase.java [214:243]


  public LeaderId getLeaderFor(ResourceId resourceId) {
    final String resourceIdStr = resourceId.getId();
    final Map<String, AttributeValue> resourceRecordKey = Collections.singletonMap(
        hashKeyName, AttributeValue.builder().s(resourceIdStr).build()
    );

    final GetItemRequest request =
        GetItemRequest
            .builder()
            .tableName(tableName)
            .key(resourceRecordKey)
            .projectionExpression(leaderIdAttributeName)
            .consistentRead(true)
            .build();

    LeaderId leader = LeaderId.NO_LEADER;
    try {
      final Map<String, AttributeValue> itemMap = db.getItem(request).item();

      if (itemMap != null) {
        final AttributeValue leaderIdAttrVal = itemMap.get(leaderIdAttributeName);
        if (leaderIdAttrVal != null) {
          leader = LeaderId.create(leaderIdAttrVal.s());
        }
      }
    } catch (ResourceNotFoundException e) {
      logger.warn("No current record for resource " + resourceIdStr, e);
    }
    return leader;
  }