op.get(OP_ADDR).set(addr.toModelNode());
}
}
ProxyOperationAddressTranslator translator = null;
ImmutableManagementResourceRegistration proxyReg = null;
PathAddress proxyAddr = PathAddress.EMPTY_ADDRESS;
for (PathElement element : addr) {
proxyAddr = proxyAddr.append(element);
ImmutableManagementResourceRegistration reg = context.getResourceRegistration().getSubModel(proxyAddr);
if (reg.isRemote()) {
translator = element.getKey().equals(SERVER) ? ProxyOperationAddressTranslator.SERVER : ProxyOperationAddressTranslator.HOST;
proxyReg = reg;
break;
}
}
if (proxyReg != null) {
ModelNode proxyOp = operation.clone();
proxyOp.get(OP_ADDR).set(proxyAddr.toModelNode());
proxyOp.get(VALUE, OP_ADDR).set(translator.translateAddress(addr).toModelNode());
ModelNode result = new ModelNode();
context.addStep(result, proxyOp, proxyReg.getOperationHandler(PathAddress.EMPTY_ADDRESS, VALIDATE_OPERATION), Stage.IMMEDIATE);
if( context.completeStep() == ResultAction.ROLLBACK) {
context.getFailureDescription().set(result.get(FAILURE_DESCRIPTION));