package org.teiid.test.admin;
import org.jboss.as.cli.operation.OperationFormatException;
import org.jboss.as.cli.operation.impl.DefaultOperationRequestBuilder;
import org.jboss.dmr.ModelNode;
import org.teiid.adminapi.AdminComponentException;
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminPlugin;
public class DMRTest {
static boolean domainMode = false;
static String profileName = "ha";
public static void main(String[] args) throws AdminException {
final ModelNode request = buildRequest("teiid", "terminate-session", "session", "yJAH02692S2I", "execution-id", String.valueOf(0));
System.out.println(request);
}
static ModelNode buildRequest(String subsystem, String operationName, String... params) throws AdminException {
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
final ModelNode request;
try {
if (subsystem != null) {
addProfileNode(builder);
builder.addNode("subsystem", subsystem); //$NON-NLS-1$
}
builder.setOperationName(operationName);
request = builder.buildRequest();
if (params != null && params.length % 2 == 0) {
for (int i = 0; i < params.length; i+=2) {
builder.addProperty(params[i], params[i+1]);
}
}
} catch (OperationFormatException e) {
throw new AdminComponentException(AdminPlugin.Event.TEIID70010, e, "Failed to build operation"); //$NON-NLS-1$
}
return request;
}
static void addProfileNode(DefaultOperationRequestBuilder builder) throws AdminException {
if (domainMode) {
String profile = getProfileName();
if (profile != null) {
builder.addNode("profile",profile);
}
}
}
static String getProfileName() throws AdminException {
if (!domainMode) {
return null;
}
return profileName;
}
}