private static FailedOperationTransformationConfig createFailedOperationTransformationConfig(ModelVersion version) { FailedOperationTransformationConfig config = new FailedOperationTransformationConfig(); PathAddress subsystemAddress = PathAddress.pathAddress(JGroupsSubsystemResourceDefinition.PATH); if (JGroupsModel.VERSION_3_0_0.requiresTransformation(version)) { // Channel resource in a typical configuration would be not rejected, but since we don't have infinispan subsystem setup (because // that would create a cyclical dependency) it has to be rejected in this subsystem test config.addFailedAttribute(subsystemAddress.append(ChannelResourceDefinition.WILDCARD_PATH), FailedOperationTransformationConfig.REJECTED_RESOURCE); config.addFailedAttribute(subsystemAddress.append(StackResourceDefinition.WILDCARD_PATH).append(TransportResourceDefinition.WILDCARD_PATH).append(ThreadPoolResourceDefinition.WILDCARD_PATH), FailedOperationTransformationConfig.REJECTED_RESOURCE); } if (JGroupsModel.VERSION_2_0_0.requiresTransformation(version)) { PathAddress stackAddress = subsystemAddress.append(StackResourceDefinition.WILDCARD_PATH); PathAddress relayAddress = stackAddress.append(RelayResourceDefinition.PATH); config.addFailedAttribute(relayAddress, FailedOperationTransformationConfig.REJECTED_RESOURCE); config.addFailedAttribute(relayAddress.append(RemoteSiteResourceDefinition.WILDCARD_PATH), FailedOperationTransformationConfig.REJECTED_RESOURCE); } return config; }
ModelNode operation, FailedOperationTransformationConfig config, ModelNode legacySteps) throws OperationFailedException { TransformedOperation transformedOperation = mainServices.transformOperation(modelVersion, operation.clone()); if (config.expectFailed(operation)) { Assert.assertTrue("Expected transformation to get rejected " + operation + " for version " + modelVersion, transformedOperation.rejectOperation(successResult())); Assert.assertNotNull("Expected transformation to get rejected " + operation + " for version " + modelVersion , transformedOperation.getFailureDescription()); if (config.canCorrectMore(operation)) { checkFailedTransformedAddOperation(mainServices, modelVersion, config.correctOperation(operation), config, legacySteps); } else if (config.expectDiscarded(operation)) { Assert.assertNull("Expected null transformed operation for discarded " + operation, transformedOperation.getTransformedOperation()); Assert.assertFalse("Expected transformation to not be rejected for discarded " + operation, transformedOperation.rejectOperation(successResult())); Assert.fail(operation + " should not have been rejected " + transformedOperation.getFailureDescription()); Assert.assertFalse(config.canCorrectMore(operation)); config.operationDone(operation); if (config.isTransformComposite()) {
writeOps.addAll(config.createWriteAttributeOperations(op)); checkFailedTransformedAddOperation(mainServices, modelVersion, op, config, legacySteps); config.invokeCallback(); if (config.isTransformComposite()) {
private static void checkFailedTransformedWriteAttributeOperation(ModelTestKernelServices<?> mainServices, ModelVersion modelVersion, ModelNode operation, FailedOperationTransformationConfig config) throws OperationFailedException { TransformedOperation transformedOperation = mainServices.transformOperation(modelVersion, operation.clone()); if (config.expectFailedWriteAttributeOperation(operation)) { Assert.assertNotNull("Expected transformation to get rejected " + operation, transformedOperation.getFailureDescription()); //For write-attribute we currently only correct once, all in one go checkFailedTransformedWriteAttributeOperation(mainServices, modelVersion, config.correctWriteAttributeOperation(operation), config); } else { ModelNode result = mainServices.executeOperation(modelVersion, transformedOperation); Assert.assertEquals("Failed: " + operation + "\n: " + result, SUCCESS, result.get(OUTCOME).asString()); } }