package org.jboss.as.test.clustering;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.*;
import org.junit.Assert;
import org.apache.log4j.Logger;
import org.jboss.as.controller.client.ModelControllerClient;
import org.jboss.as.test.integration.management.ManagementOperations;
import org.jboss.dmr.ModelNode;
/**
* @author Ondrej Chaloupka
*/
public class DMRUtil {
private static final Logger log = Logger.getLogger(DMRUtil.class);
private static final String MAX_SIZE_ATTRIBUTE = "max-size";
/**
* Hidden constructor.
*/
private DMRUtil() {
}
/**
* Returning modelnode address for DRM to be able to set cache attributes (client drm call).
*/
private static ModelNode getEJB3PassivationStoreAddress() {
ModelNode address = new ModelNode();
address.add(SUBSYSTEM, "ejb3");
address.add("passivation-store", "infinispan");
address.protect();
return address;
}
/**
* Setting max size cache attribute (client drm call).
*/
public static void setMaxSize(ModelControllerClient client, int maxSize) throws Exception {
ModelNode address = getEJB3PassivationStoreAddress();
ModelNode operation = new ModelNode();
operation.get(OP).set(WRITE_ATTRIBUTE_OPERATION);
operation.get(OP_ADDR).set(address);
operation.get("name").set(MAX_SIZE_ATTRIBUTE);
operation.get("value").set(maxSize);
// ModelNode result = client.execute(operation);
ModelNode result = ManagementOperations.executeOperationRaw(client, operation);
Assert.assertEquals("Setting of max-size attribute was not successful", SUCCESS, result.get(OUTCOME).asString());
}
/**
* Unsetting specific attribute (client drm call).
*/
private static void unsetPassivationAttributes(ModelControllerClient client, String attrName) throws Exception {
ModelNode address = getEJB3PassivationStoreAddress();
ModelNode operation = new ModelNode();
operation.get(OP).set(UNDEFINE_ATTRIBUTE_OPERATION);
operation.get(OP_ADDR).set(address);
operation.get("name").set(attrName);
ModelNode result = client.execute(operation);
Assert.assertEquals("Unset of attribute " + attrName + " on server was not successful", SUCCESS, result.get(OUTCOME).asString());
log.trace("unset modelnode operation " + UNDEFINE_ATTRIBUTE_OPERATION + " on " + attrName + ": " + result);
}
public static void unsetMaxSizeAttribute(ModelControllerClient client) throws Exception {
unsetPassivationAttributes(client, MAX_SIZE_ATTRIBUTE);
}
}