@Override
  public boolean canBeRemoved() {
    clusterGlobalLock.readLock().lock();
    try {
      boolean safeToRemove = true;
      for (Service service : services.values()) {
        if (!service.canBeRemoved()) {
          safeToRemove = false;
          LOG.warn("Found non removable service" + ", clusterName="
              + getClusterName() + ", serviceName=" + service.getName());
        }
      }
      return safeToRemove;
    } finally {
      clusterGlobalLock.readLock().unlock();
    }
  }
Deletes the specified service also removes references to it from {@link this.serviceComponentHosts}
and references to ServiceComponentHost objects that belong to the service from {@link this.serviceComponentHostsByHost}
<p>
  Note: This method must be called only with write lock acquired.
</p>
@param service the service to be deleted
@throws AmbariException
@see   ServiceComponentHost
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java