@Override
  public Set<Resource> getResources(Request request, Predicate predicate) throws NoSuchResourceException, NoSuchParentResourceException {

    List<KerberosDescriptorEntity> results = null;
    boolean applyPredicate = false;

    if (predicate != null) {
      Set<Map<String, Object>> requestProps = getPropertyMaps(predicate);
      if (requestProps.size() == 1) {
        String name = (String) requestProps.iterator().next().get(
            KERBEROS_DESCRIPTOR_NAME_PROPERTY_ID);

        if (name != null) {
          KerberosDescriptorEntity entity = kerberosDescriptorDAO.findByName(name);
          results = entity == null ? Collections.emptyList() :
              Collections.singletonList(entity);
        }
      }
    }

    if (results == null) {
      applyPredicate = true;
      results = kerberosDescriptorDAO.findAll();
    }

    Set<Resource> resources = new HashSet<>();
    Set<String> requestPropertyIds = getRequestPropertyIds(request, predicate);
    for (KerberosDescriptorEntity entity : results) {
      Resource resource = new ResourceImpl(Resource.Type.KerberosDescriptor);
      toResource(resource, entity, requestPropertyIds);

      if (predicate == null || !applyPredicate || predicate.evaluate(resource)) {
        resources.add(resource);
      }
    }

    if (predicate != null && resources.isEmpty()) {
      throw new NoSuchResourceException(
          "The requested resource doesn't exist: Kerberos Descriptor not found, " + predicate);
    }

    return resources;
  }
The property ids for a KerberosDescriptor resource.
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/KerberosDescriptorResourceProvider.java