protected ModelNode testWrite( final ModelNode address, final String attribute, final ModelNode value) throws IOException { final CompositeOperationBuilder builder = CompositeOperationBuilder.create(); builder.addStep(Operations.createWriteAttributeOperation(address, attribute, value)); // Create the read operation builder.addStep(Operations.createReadAttributeOperation(address, attribute)); final ModelNode result = executeOperation(builder.build()); assertEquals(value, Operations.readResult(Operations.readResult(result).get("step-2"))); return result; }
private boolean addCompositeResource( final String profileName, final ModelControllerClient client, final Resource resource, final String parentAddress, final CompositeOperationBuilder compositeOp, final boolean checkExistence) throws IOException { final String inputAddress; if (parentAddress == null) { inputAddress = resource.getAddress(); } else if (parentAddress.equals(resource.getAddress())) { inputAddress = resource.getAddress(); } else if (resource.getAddress() == null) { inputAddress = parentAddress; } else { inputAddress = String.format("%s,%s", parentAddress, resource.getAddress()); } // The address cannot be null if (inputAddress == null) { throw new RuntimeException("You must specify the address to deploy the resource to."); } final ModelNode address = parseAddress(profileName, inputAddress); if (checkExistence) { final boolean exists = resourceExists(address, client); if (resource.isAddIfAbsent() && exists) { return false; } if (exists && force) { reportFailure(client.execute(ServerOperations.createRemoveOperation(address, true))); } else if (exists && !force) { throw new RuntimeException(String.format("Resource %s already exists.", address)); } } compositeOp.addStep(buildAddOperation(address, resource.getProperties())); if (resource.getResources() != null) { final String resourceAddress = resource.getAddress(); final String addr; if (parentAddress != null && resourceAddress != null) { addr = parentAddress + "," + resourceAddress; } else if (parentAddress != null) { addr = parentAddress; } else if (resourceAddress != null) { addr = resourceAddress; } else { addr = null; } for (Resource r : resource.getResources()) { addCompositeResource(profileName, client, r, addr, compositeOp, false); } } return true; }
protected ModelNode testUndefine( final ModelNode address, final String attribute, final boolean expectFailure) throws IOException { final CompositeOperationBuilder builder = CompositeOperationBuilder.create(); builder.addStep(Operations.createUndefineAttributeOperation(address, attribute)); // Create the read operation final ModelNode readOp = Operations.createReadAttributeOperation(address, attribute); readOp.get("include-defaults").set(false); builder.addStep(readOp); final ModelNode result = client.getControllerClient().execute(builder.build()); if (expectFailure) { assertFalse( "Undefining attribute " + attribute + " should have failed.", Operations.isSuccessfulOutcome(result)); } else { if (!Operations.isSuccessfulOutcome(result)) { Assert.fail(Operations.getFailureDescription(result).toString()); } assertFalse( "Attribute '" + attribute + "' was not undefined.", Operations.readResult(Operations.readResult(result).get("step-2")).isDefined()); } return result; }
private void processResources(final ModelControllerClient client, final Resource... resources) throws IOException { for (Resource resource : resources) { if (isDomainServer()) { // Profiles are required when adding resources in domain mode final List<String> profiles = domain.getProfiles(); if (profiles.isEmpty()) { throw new IllegalStateException("Cannot add resources when no profiles were defined."); } for (String profile : profiles) { final CompositeOperationBuilder compositeOperationBuilder = CompositeOperationBuilder.create(); if (addCompositeResource( profile, client, resource, address, compositeOperationBuilder, true)) { if (resource.hasBeforeAddCommands()) { resource.getBeforeAdd().execute(client); } // Execute the add resource operation reportFailure(client.execute(compositeOperationBuilder.build())); if (resource.hasAfterAddCommands()) { resource.getAfterAdd().execute(client); } } } } else { final CompositeOperationBuilder compositeOperationBuilder = CompositeOperationBuilder.create(); if (addCompositeResource( null, client, resource, address, compositeOperationBuilder, true)) { if (resource.hasBeforeAddCommands()) { resource.getBeforeAdd().execute(client); } // Execute the add resource operation reportFailure(client.execute(compositeOperationBuilder.build())); if (resource.hasAfterAddCommands()) { resource.getAfterAdd().execute(client); } } } } }