private boolean isTrimReadResourceDefinitionArray(String opName, PathAddress aliasAddr, PathAddress targetAddr) { if (!opName.equals(READ_RESOURCE_DESCRIPTION_OPERATION)) { return false; } if (aliasAddr.isMultiTarget()) { return false; } if (targetAddr.isMultiTarget()) { return true; } return false; } }
private boolean isTrimReadResourceDefinitionArray(String opName, PathAddress aliasAddr, PathAddress targetAddr) { if (!opName.equals(READ_RESOURCE_DESCRIPTION_OPERATION)) { return false; } if (aliasAddr.isMultiTarget()) { return false; } if (targetAddr.isMultiTarget()) { return true; } return false; } }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); if (address.isMultiTarget()) { executeMultiTarget(context, operation); } else { doExecute(context, operation); } }
private ResultTransformer(ModelNode operation, PathAddress address) { this.multiTarget = address.isMultiTarget(); try { this.filter = WHERE_ATT.validateOperation(operation); this.select = SELECT_ATT.validateOperation(operation); // Use resolveModelAttribute for OPERATOR_ATT to pull out the default value this.operator = Operator.valueOf(OPERATOR_ATT.resolveModelAttribute(ExpressionResolver.SIMPLE, operation).asString()); } catch (OperationFailedException e) { // the validateOperation calls above would have already been invoked in QueryOperationHandler.execute // so this shouldn't happen throw new IllegalStateException(e); } }
private ResultTransformer(ModelNode operation, PathAddress address) { this.multiTarget = address.isMultiTarget(); try { this.filter = WHERE_ATT.validateOperation(operation); this.select = SELECT_ATT.validateOperation(operation); // Use resolveModelAttribute for OPERATOR_ATT to pull out the default value this.operator = Operator.valueOf(OPERATOR_ATT.resolveModelAttribute(ExpressionResolver.SIMPLE, operation).asString()); } catch (OperationFailedException e) { // the validateOperation calls above would have already been invoked in QueryOperationHandler.execute // so this shouldn't happen throw new IllegalStateException(e); } }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); if (getAccessControlContext() == null && address.isMultiTarget()) { executeMultiTarget(context, operation); } else { ReadResourceDescriptionAccessControlContext accessControlContext = getAccessControlContext() == null ? new ReadResourceDescriptionAccessControlContext(address, null) : getAccessControlContext(); doExecute(context, operation, accessControlContext); } }
context.getFailureDescription().set(preparedResponse.get(FAILURE_DESCRIPTION)); if (preparedResult.isDefined()) { if (context.getCurrentAddress().isMultiTarget()) { untranslateResultAddress(context.getCurrentAddress(), preparedResult);
context.getFailureDescription().set(preparedResponse.get(FAILURE_DESCRIPTION)); if (preparedResult.isDefined()) { if (context.getCurrentAddress().isMultiTarget()) { untranslateResultAddress(context.getCurrentAddress(), preparedResult);
ModelNode finalResult = responseNode.get(RESULT); PathAddress currentAddress = context.getCurrentAddress(); if (currentAddress.isMultiTarget()) { untranslateResultAddress(currentAddress, finalResult);
ModelNode finalResult = responseNode.get(RESULT); PathAddress currentAddress = context.getCurrentAddress(); if (currentAddress.isMultiTarget()) { untranslateResultAddress(currentAddress, finalResult);
if (paramAddress.isMultiTarget()) { if (paramAddress.isMultiTarget()) {
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.require(OP_ADDR)); // In case if it's a multiTarget operation, resolve the address first // This only works for model resources, which can be resolved into a concrete addresses if (address.isMultiTarget()) { // The final result should be a list of executed operations final ModelNode result = context.getResult().setEmptyList(); // Trick the context to give us the model-root context.addStep(new ModelNode(), FAKE_OPERATION.clone(), new ModelAddressResolver(operation, result, new OperationStepHandler() { @Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { doExecute(context, operation); } }), OperationContext.Stage.IMMEDIATE); context.stepCompleted(); } else { doExecute(context, operation); } }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.require(OP_ADDR)); // In case if it's a multiTarget operation, resolve the address first // This only works for model resources, which can be resolved into a concrete addresses if (address.isMultiTarget()) { final FilteredData localFilteredData = filteredData == null ? new FilteredData(PathAddress.EMPTY_ADDRESS) : filteredData; // The final result should be a list of executed operations final ModelNode result = context.getResult().setEmptyList(); // Trick the context to give us the model-root context.addStep(new ModelNode(), FAKE_OPERATION.clone(), new ModelAddressResolver(operation, result, localFilteredData, new OperationStepHandler() { @Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { doExecute(context, operation, localFilteredData); } }), OperationContext.Stage.MODEL, true); context.completeStep(new OperationContext.ResultHandler() { @Override public void handleResult(OperationContext.ResultAction resultAction, OperationContext context, ModelNode operation) { if (resultAction == OperationContext.ResultAction.KEEP && localFilteredData.hasFilteredData()) { // Report on filtering context.getResponseHeaders().get(ACCESS_CONTROL).set(localFilteredData.toModelNode()); } } }); } else { doExecute(context, operation, filteredData); } }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = context.getCurrentAddress(); // In case if it's a multiTarget operation, resolve the address first // This only works for model resources, which can be resolved into a concrete addresses if (address.isMultiTarget()) { final FilteredData localFilteredData = filteredData == null ? new FilteredData(PathAddress.EMPTY_ADDRESS) : filteredData; // The final result should be a list of executed operations final ModelNode result = context.getResult().setEmptyList(); // Trick the context to give us the model-root final OperationStepHandler delegateStepHandler = new OperationStepHandler() { @Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { doExecute(context, operation, localFilteredData, true); } }; final ModelNode fakeOperationResponse = new ModelNode(); context.addStep(fakeOperationResponse, FAKE_OPERATION.clone(), registryOnly ? new RegistrationAddressResolver(operation, result, delegateStepHandler) : new ModelAddressResolver(operation, result, localFilteredData, delegateStepHandler, predicate), OperationContext.Stage.MODEL, true ); context.completeStep(new MultiTargetResultHandler(fakeOperationResponse, localFilteredData, result)); } else { doExecute(context, operation, filteredData, ignoreMissingResource); } }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final PathAddress address = context.getCurrentAddress(); // In case if it's a multiTarget operation, resolve the address first // This only works for model resources, which can be resolved into a concrete addresses if (address.isMultiTarget()) { final FilteredData localFilteredData = filteredData == null ? new FilteredData(PathAddress.EMPTY_ADDRESS) : filteredData; // The final result should be a list of executed operations final ModelNode result = context.getResult().setEmptyList(); // Trick the context to give us the model-root final OperationStepHandler delegateStepHandler = new OperationStepHandler() { @Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { doExecute(context, operation, localFilteredData, true); } }; final ModelNode fakeOperationResponse = new ModelNode(); context.addStep(fakeOperationResponse, FAKE_OPERATION.clone(), registryOnly ? new RegistrationAddressResolver(operation, result, delegateStepHandler) : new ModelAddressResolver(operation, result, localFilteredData, delegateStepHandler, predicate), OperationContext.Stage.MODEL, true ); context.completeStep(new MultiTargetResultHandler(fakeOperationResponse, localFilteredData, result)); } else { doExecute(context, operation, filteredData, ignoreMissingResource); } }