HostControllerExecutionSupport addSteps(
      final OperationContext context,
      final ModelNode operation,
      final ModelNode response,
      final boolean recordResponse)
      throws OperationFailedException {
    final PathAddress originalAddress = PathAddress.pathAddress(operation.get(OP_ADDR));
    final ImmutableManagementResourceRegistration originalRegistration =
        context.getResourceRegistration();

    final HostControllerExecutionSupport hostControllerExecutionSupport =
        HostControllerExecutionSupport.Factory.create(
            operation,
            localHostControllerInfo.getLocalHostName(),
            new LazyDomainModelProvider(context),
            ignoredDomainResourceRegistry,
            !localHostControllerInfo.isMasterDomainController()
                && localHostControllerInfo.isRemoteDomainControllerIgnoreUnaffectedConfiguration(),
            extensionRegistry);
    ModelNode domainOp = hostControllerExecutionSupport.getDomainOperation();
    if (domainOp != null) {
      // Only require an existing registration if the domain op is not ignored
      if (originalRegistration == null) {
        throw new OperationFailedException(
            new ModelNode(ControllerMessages.MESSAGES.noSuchResourceType(originalAddress)));
      }
      addBasicStep(context, domainOp);
    }

    ServerOperationResolver resolver =
        new ServerOperationResolver(localHostControllerInfo.getLocalHostName(), serverProxies);
    ServerOperationsResolverHandler sorh =
        new ServerOperationsResolverHandler(
            resolver,
            hostControllerExecutionSupport,
            originalAddress,
            originalRegistration,
            response);
    context.addStep(sorh, OperationContext.Stage.DOMAIN);

    return hostControllerExecutionSupport;
  }
  void addSteps(
      final OperationContext context,
      final ModelNode operation,
      final ModelNode response,
      final boolean recordResponse)
      throws OperationFailedException {

    final PathAddress originalAddress = PathAddress.pathAddress(operation.get(OP_ADDR));
    final ImmutableManagementResourceRegistration originalRegistration =
        context.getResourceRegistration();
    if (originalRegistration == null) {
      String operationName = operation.require(OP).asString();
      throw new OperationFailedException(
          new ModelNode().set(MESSAGES.noHandlerForOperation(operationName, originalAddress)));
    }

    HostControllerExecutionSupport hostControllerExecutionSupport =
        HostControllerExecutionSupport.Factory.create(
            operation,
            localHostControllerInfo.getLocalHostName(),
            new LazyDomainModelProvider(context),
            ignoredDomainResourceRegistry);
    ModelNode domainOp = hostControllerExecutionSupport.getDomainOperation();
    if (domainOp != null) {
      addBasicStep(context, domainOp);
    }

    ServerOperationResolver resolver =
        new ServerOperationResolver(localHostControllerInfo.getLocalHostName(), serverProxies);
    ServerOperationsResolverHandler sorh =
        new ServerOperationsResolverHandler(
            resolver,
            hostControllerExecutionSupport,
            originalAddress,
            originalRegistration,
            response);
    context.addStep(sorh, OperationContext.Stage.DOMAIN);
  }