@Override
  public RequestStatus deleteResources(Request request, Predicate predicate)
      throws SystemException, UnsupportedPropertyException,
             NoSuchResourceException, NoSuchParentResourceException {

    //TODO (jspeidel): Revisit concurrency control
    Set<Resource> setResources = getResources(
        new RequestImpl(null, null, null, null), predicate);

    List<TopologyRequestEntity> provisionRequests = topologyRequestDAO.findAllProvisionRequests();
    // Blueprints for which a provision request was submitted. This blueprints (should be zero or one) are read only.
    Set<String> provisionedBlueprints =
      provisionRequests.stream().map(TopologyRequestEntity::getBlueprintName).collect(toSet());

    for (final Resource resource : setResources) {
      final String blueprintName =
        (String) resource.getPropertyValue(BLUEPRINT_NAME_PROPERTY_ID);
      Preconditions.checkArgument(!provisionedBlueprints.contains(blueprintName),
        "Blueprint %s cannot be deleted as cluster provisioning was initiated on it.", blueprintName);
      LOG.info("Deleting Blueprint, name = " + blueprintName);
      modifyResources(() -> {
        blueprintDAO.removeByName(blueprintName);
        return null;
      });
    }

    notifyDelete(Resource.Type.Blueprint, predicate);
    return getRequestStatus(null);
  }
Static initialization.

@param factory   blueprint factory
@param bpDao       blueprint data access object
@param gson      json serializer
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java