public synchronized StageEntity constructNewPersistenceEntity() {
    StageEntity stageEntity = new StageEntity();
    stageEntity.setRequestId(requestId);
    stageEntity.setStageId(getStageId());
    stageEntity.setLogInfo(logDir);
    stageEntity.setSkippable(skippable);
    stageEntity.setAutoSkipFailureSupported(supportsAutoSkipOnFailure);
    stageEntity.setRequestContext(requestContext);
    stageEntity.setHostRoleCommands(new ArrayList<>());
    stageEntity.setRoleSuccessCriterias(new ArrayList<>());
    stageEntity.setCommandParamsStage(commandParamsStage);
    if (null != hostParamsStage) {
      stageEntity.setHostParamsStage(hostParamsStage);
    }
    stageEntity.setCommandExecutionType(commandExecutionType);
    stageEntity.setStatus(status);
    stageEntity.setDisplayStatus(displayStatus);

    for (Role role : successFactors.keySet()) {
      RoleSuccessCriteriaEntity roleSuccessCriteriaEntity = new RoleSuccessCriteriaEntity();
      roleSuccessCriteriaEntity.setRole(role);
      roleSuccessCriteriaEntity.setStage(stageEntity);
      roleSuccessCriteriaEntity.setSuccessFactor(successFactors.get(role).doubleValue());
      stageEntity.getRoleSuccessCriterias().add(roleSuccessCriteriaEntity);
    }
    return stageEntity;
  }
Creates object to be persisted in database
@return StageEntity
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java