class FinalizeKerberosServerAction extends KerberosServerAction {

  @Override
  public CommandReport execute(ConcurrentMap<String, Object> requestSharedDataContext) throws AmbariException, InterruptedException {
    String dataDirectoryPath = getCommandParameterValue(DATA_DIRECTORY);
    if(getKDCType(getCommandParameters()) != KDCType.NONE) {
      // Ensure the keytab files for the Ambari identities have the correct permissions
      // This is important in the event a secure cluster was created via Blueprints since some
      // user accounts and group may not have been created when the keytab files were created.
      requestSharedDataContext.put(this.getClass().getName() + "_visited", new HashSet<String>());
      processIdentities(requestSharedDataContext);
      requestSharedDataContext.remove(this.getClass().getName() + "_visited");
    }
    deleteDataDirectory(dataDirectoryPath);

    return sendTopologyUpdateEvent();
  }

  @Inject public  FinalizeKerberosServerAction(TopologyHolder topologyHolder);

}