AddServiceInfo createValidServiceInfo(ActionManager actionManager, RequestFactory requestFactory) {
    final State state = this.state;

    CHECK.checkState(state.isValid(), "The request needs to be validated first");
    CHECK.checkState(!serviceInfoCreated.getAndSet(true), "Can create only one instance for each validated add service request");

    RequestStageContainer stages = new RequestStageContainer(actionManager.getNextRequestId(), null, requestFactory, actionManager);
    AddServiceInfo validatedRequest = new AddServiceInfo.Builder()
      .setRequest(request)
      .setClusterName(cluster.getClusterName())
      .setStages(stages)
      .setStack(state.getStack())
      .setConfig(state.getConfig())
      .setNewServices(state.getNewServices())
      .setKerberosDescriptor(state.getKerberosDescriptor())
      .build();
    stages.setRequestContext(validatedRequest.describe());
    return validatedRequest;
  }
Create an {@link AddServiceInfo} based on the validated request.
ambari-server/src/main/java/org/apache/ambari/server/topology/addservice/RequestValidator.java