private static Set<Resource> getResources(AddServiceInfo request, Set<String> propertyIds, Resource.Type resourceType, Predicate predicate) {
    Request internalRequest = createRequest(null, null, propertyIds);
    ResourceProvider rp = getClusterController().ensureResourceProvider(resourceType);
    try {
      return rp.getResources(internalRequest, predicate);
    } catch (NoSuchResourceException e) {
      return ImmutableSet.of();
    } catch (UnsupportedPropertyException | SystemException | NoSuchParentResourceException e) {
      return CHECK.wrapInUnchecked(e, RuntimeException::new, "Error getting resources %s for %s", resourceType, request);
    }
  }
@return {@code Optional} with the cluster's kerberos descriptor artifact if it exists, otherwise empty {@code Optional}
ambari-server/src/main/java/org/apache/ambari/server/topology/addservice/ResourceProviderAdapter.java