/** * Creates an {@linkplain ModelNode address} that can be used as the address for an operation. The address is * simply a {@link ModelNode} of type {@link ModelType#LIST}. * <p> * The string is split into key/value pairs. If the final key does not have a value an {@code *} is used to * indicate a wildcard for the address. * </p> * * @param pairs the key/value pairs to use * * @return an address for the key/value pairs */ public static ModelNode createAddress(final String... pairs) { return createAddress(Arrays.asList(pairs)); }
@Override public void restartServers(final String name) { checkState(true); final ModelNode op = Operations.createOperation("restart-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void suspendServers(final String name, final int timeout) { checkState(true); final ModelNode op = Operations.createOperation("suspend-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name)); op.get("timeout").set(timeout); runtimeExecuteForSuccess(op); }
@Override public void startServer(final String hostName, final String serverName) { checkState(true); final ModelNode op = Operations.createOperation("start", Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void stopServer(final String hostName, final String serverName) { checkState(true); final ModelNode op = Operations.createOperation("stop", Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void restartServer(final String hostName, final String serverName) { checkState(true); final ModelNode op = Operations.createOperation("restart", Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void reloadServers(final String name) { checkState(true); final ModelNode op = Operations.createOperation("reload-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void stopServers(final String name) { checkState(true); final ModelNode op = Operations.createOperation("stop-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public void suspendServer(final String hostName, final String serverName, final int timeout) { checkState(true); final ModelNode op = Operations.createOperation("suspend", Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName)); op.get("timeout").set(timeout); runtimeExecuteForSuccess(op); }
@Override public void startServers(final String name) { checkState(true); final ModelNode op = Operations.createOperation("start-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name)); op.get("blocking").set(true); runtimeExecuteForSuccess(op); }
@Override public String getServerGroupName(final String hostName, final String serverName) { checkState(false); final ModelNode result = runtimeExecuteForSuccess(Operations.createReadAttributeOperation(Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName), "group")); return result.asString(); }
@Override public void resumeServers(final String name) { checkState(true); runtimeExecuteForSuccess(Operations.createOperation("resume-servers", Operations.createAddress(ClientConstants.SERVER_GROUP, name))); }
@Override public Set<ServerDescription> getServers(final String hostName) { checkState(false); final Set<ServerDescription> servers = new LinkedHashSet<>(); // Get all the servers in the servers final ModelNode op = Operations.createReadResourceOperation(Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG)); final ModelNode results = runtimeExecuteForSuccess(op); for (ModelNode result : results.asList()) { final ModelNode serverConfig = Operations.readResult(result); final String name = serverConfig.get(ClientConstants.NAME).asString(); final String groupName = serverConfig.get(ClientConstants.GROUP).asString(); servers.add(new ServerDescription() { @Override public String getHostName() { return hostName; } @Override public String getName() { return name; } @Override public String getGroupName() { return groupName; } }); } return Collections.unmodifiableSet(servers); }
public void setup(final ModelControllerClient client) throws Exception { ModelNode socketBindingOp = Util.createAddOperation(PathAddress.parseCLIStyleAddress("/socket-binding-group=standard-sockets/socket-binding=management-native")); socketBindingOp.get("interface").set("management"); socketBindingOp.get("port").set("9999"); ManagementOperations.executeOperation(client, socketBindingOp); // Determine the we should be using a security-realm or SASL String securityRealm = "ManagementRealm"; String saslAuthFactory = null; ModelNode op = Operations.createReadResourceOperation(Operations.createAddress("core-service", "management", "management-interface", "http-interface")); ModelNode result = ManagementOperations.executeOperation(client, op); if (result.hasDefined("security-realm")) { securityRealm = result.get("security-realm").asString(); } else if (result.hasDefined("http-upgrade")) { final ModelNode httpUpgrade = result.get("http-upgrade"); if (httpUpgrade.hasDefined("sasl-authentication-factory")) { saslAuthFactory = httpUpgrade.get("sasl-authentication-factory").asString(); } } op = new ModelNode(); op.get(ModelDescriptionConstants.OP_ADDR).set(address()); op.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD); op.get(ModelDescriptionConstants.SOCKET_BINDING).set("management-native"); if (saslAuthFactory != null) { op.get("sasl-authentication-factory").set(saslAuthFactory); } else { op.get(ModelDescriptionConstants.SECURITY_REALM).set(securityRealm); } ManagementOperations.executeOperation(client, op); }
@Override public void resumeServer(final String hostName, final String serverName) { checkState(true); runtimeExecuteForSuccess(Operations.createOperation("resume", Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName))); }
@Override public Set<ServerDescription> getServers() { checkState(false); final Set<ServerDescription> servers = new LinkedHashSet<>(); // Get all the servers in the servers final ModelNode op = Operations.createReadResourceOperation(Operations.createAddress(ClientConstants.HOST, "*", ClientConstants.SERVER_CONFIG)); final ModelNode results = runtimeExecuteForSuccess(op); for (ModelNode result : results.asList()) { final ModelNode serverConfig = Operations.readResult(result); final String name = serverConfig.get(ClientConstants.NAME).asString(); final String groupName = serverConfig.get(ClientConstants.GROUP).asString(); final String hostName = Operations.getOperationAddress(result).asList().get(0).get(ClientConstants.HOST).asString(); servers.add(new ServerDescription() { @Override public String getHostName() { return hostName; } @Override public String getName() { return name; } @Override public String getGroupName() { return groupName; } }); } return Collections.unmodifiableSet(servers); }
@Override public boolean isServerStarted(final String hostName, final String serverName) { checkState(true); final ModelNode op = Operations.createReadAttributeOperation(Operations.createAddress(ClientConstants.HOST, hostName, ClientConstants.SERVER_CONFIG, serverName), "status"); try { final ModelNode result = getModelControllerClient().execute(op); if (Operations.isSuccessfulOutcome(result)) { return "STARTED".equals(Operations.readResult(result).asString()); } } catch (IOException ignore) { } return false; }
private ModelNode readDeploymentNode(final String deploymentName) throws IOException, UnSuccessfulOperationException { final ModelNode address; if (isWebArchive(deploymentName)) { address = Operations.createAddress(DEPLOYMENT, deploymentName, SUBSYSTEM, UNDERTOW); } else if (isEnterpriseArchive(deploymentName)) { address = Operations.createAddress(DEPLOYMENT, deploymentName, SUBDEPLOYMENT, "*", SUBSYSTEM, UNDERTOW); } else { Operations.createAddress(DEPLOYMENT, deploymentName)); checkOp.get(CHILD_TYPE).set(SUBSYSTEM); final ModelNode r = client.execute(checkOp);
private ModelNode readDeploymentNode(final String deploymentName) throws IOException, UnSuccessfulOperationException { final ModelNode address; if (isWebArchive(deploymentName)) { address = Operations.createAddress(DEPLOYMENT, deploymentName, SUBSYSTEM, UNDERTOW); } else if (isEnterpriseArchive(deploymentName)) { address = Operations.createAddress(DEPLOYMENT, deploymentName, SUBDEPLOYMENT, "*", SUBSYSTEM, UNDERTOW); } else { Operations.createAddress(DEPLOYMENT, deploymentName)); checkOp.get(CHILD_TYPE).set(SUBSYSTEM); final ModelNode r = client.execute(checkOp);
if (Operations.isSuccessfulOutcome(result)) { final String hostName = Operations.readResult(result).asString(); op = Operations.createOperation("shutdown", Operations.createAddress(ClientConstants.HOST, hostName)); getManagementClient().getControllerClient().executeAsync(op, null);