private String obtainServerUUID() throws OperationFailedException { try { ModelNode operation = Operations.createReadAttributeOperation(new ModelNode().setEmptyList(), UUID); operation.get(INCLUDE_RUNTIME).set(true); ModelControllerClient client = env.getClient(); if (client == null) { client = env.getCli().getCommandContext().getModelControllerClient(); } ModelNode result = client.execute(operation); if (Operations.isSuccessfulOutcome(result)) { return Operations.readResult(result).asString(); } return null; } catch (IOException ex) { return null; } }
private boolean isEnabled(final ModelNode address) { final ModelNode op = Operations.createReadAttributeOperation(address, DeploymentOperations.ENABLED); try { final ModelNode result = client.execute(op); // Check to make sure there is an outcome if (Operations.isSuccessfulOutcome(result)) { return Operations.readResult(result).asBoolean(); } else { throw new IllegalStateException(Operations.getFailureDescription(result).asString()); } } catch (IOException e) { throw new IllegalStateException(String.format("Could not execute operation '%s'", op), e); } }
private DeploymentDescription getServerGroupDeployment(final String name) throws IOException { final Set<String> serverGroups = new LinkedHashSet<>(); final ModelNode address = createAddress(SERVER_GROUP, "*", DEPLOYMENT, name); final ModelNode result = client.execute(Operations.createReadResourceOperation(address)); if (Operations.isSuccessfulOutcome(result)) { // Load the server groups for (ModelNode r : Operations.readResult(result).asList()) { final List<Property> resultAddress = Operations.getOperationAddress(r).asPropertyList(); String foundServerGroup = null; for (Property property : resultAddress) { if (SERVER_GROUP.equals(property.getName())) { foundServerGroup = property.getValue().asString(); } } // Add the server-group to the map of deployments serverGroups.add(foundServerGroup); } return SimpleDeploymentDescription.of(name, serverGroups); } throw new RuntimeException("Failed to get listing of deployments. Reason: " + Operations.getFailureDescription(result).asString()); }
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 { final ModelNode operation = Operations.createReadResourceOperation(address); operation.get(RECURSIVE_DEPTH).set(2); operation.get(INCLUDE_RUNTIME).set(true); if (Operations.isSuccessfulOutcome(result)) { return Operations.readResult(result); } else { final ModelNode checkOp = Operations.createOperation(READ_CHILDREN_NAMES_OPERATION, Operations.createAddress(DEPLOYMENT, deploymentName)); checkOp.get(CHILD_TYPE).set(SUBSYSTEM); final ModelNode r = client.execute(checkOp); if (Operations.isSuccessfulOutcome(r)) { final ModelNode children = Operations.readResult(r); if (children.isDefined()) { for (ModelNode child : children.asList()) { if (UNDERTOW.equals(child.asString())) { throw new UnSuccessfulOperationException(Operations.getFailureDescription(result).asString()); throw new UnSuccessfulOperationException(Operations.getFailureDescription(result).asString());
@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; }
/** * Creates an add operation. * * @param address the address for the operation * * @return the operation */ public static ModelNode createAddOperation(final ModelNode address) { return createOperation(ADD, address); }
/** * Shuts down a standalone server. * * @param client the client used to communicate with the server * @param timeout the graceful shutdown timeout, a value of {@code -1} will wait indefinitely and a value of * {@code 0} will not attempt a graceful shutdown * * @throws IOException if an error occurs communicating with the server */ public static void shutdownStandalone(final ModelControllerClient client, final int timeout) throws IOException { final ModelNode op = Operations.createOperation("shutdown"); op.get("timeout").set(timeout); final ModelNode response = client.execute(op); if (Operations.isSuccessfulOutcome(response)) { while (true) { if (isStandaloneRunning(client)) { try { TimeUnit.MILLISECONDS.sleep(20L); } catch (InterruptedException e) { LOGGER.trace("Interrupted during sleep", e); } } else { break; } } } else { throw new OperationExecutionException(op, response); } }
@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))); }
private ModelNode executeForSuccess(final ModelNode op) throws IOException { final ModelControllerClient client = Objects.requireNonNull(getModelControllerClient(), "The client cannot be null"); final ModelNode result = client.execute(op); if (!Operations.isSuccessfulOutcome(result)) { throw new RuntimeException(Operations.getFailureDescription(result).asString()); } return Operations.readResult(result); } }
initialized = true; try { final ModelNode op = Operations.createReadResourceOperation(UNDERTOW_SUBSYSTEM_ADDRESS, true); final ModelNode result = client.execute(op); undertowSubsystemPresent = Operations.isSuccessfulOutcome(result); if (undertowSubsystemPresent) { undertowSubsystem = Operations.readResult(result);
protected ModelNode executeOperation(final ModelNode op) throws IOException { final ModelNode result = client.execute(op); if (!Operations.isSuccessfulOutcome(result)) { fail(Operations.getFailureDescription(result).asString()); } return result; }
@Override public void configure(ModelControllerClient controller) { ModelNode removeLoggingOp = createRemoveOperation(loggingSubsystemAddress()); try { ModelNode result = controller.execute(removeLoggingOp); if (isSuccessfulOutcome(result)) { reload(controller); } } catch (IOException e) { throw new RuntimeException("Unable to disable logging subsystem.", e); } }
Result cmdResult = cli.cmd("/subsystem=jdr:generate-jdr-report()"); ModelNode response = cmdResult.getResponse(); if(Operations.isSuccessfulOutcome(response) || !embedded) { reportFailure(response); ModelNode result = response.get(ClientConstants.RESULT);
private String setElytronDomain(ModelControllerClient client, String domainToSet) throws Exception { String origDomainValue = null; ModelNode op = Util.createEmptyOperation("read-attribute", messagingServerAddress); op.get("name").set("elytron-domain"); ModelNode result = client.execute(op); boolean isConfigured = Operations.isSuccessfulOutcome(result); op = null; if (isConfigured) { result = Operations.readResult(result); origDomainValue = result.isDefined() ? result.asString() : null; } op = Util.createEmptyOperation("write-attribute", messagingServerAddress); op.get("name").set("elytron-domain"); op.get("value").set(domainToSet); Utils.applyUpdate(op, client); return origDomainValue; }
@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); }
private static void addUndeployOperationStep(final CompositeOperationBuilder builder, @SuppressWarnings("TypeMayBeWeakened") final UndeployDescription undeployDescription) { final String name = undeployDescription.getName(); final Set<String> serverGroups = undeployDescription.getServerGroups(); if (serverGroups.isEmpty()) { final ModelNode address = createAddress(DEPLOYMENT, name); builder.addStep(createOperation(DEPLOYMENT_UNDEPLOY_OPERATION, address)); if (undeployDescription.isRemoveContent()) { builder.addStep(createRemoveOperation(address)); } } else { for (String serverGroup : serverGroups) { final ModelNode address = createAddress(SERVER_GROUP, serverGroup, DEPLOYMENT, name); builder.addStep(createOperation(DEPLOYMENT_UNDEPLOY_OPERATION, address)); if (undeployDescription.isRemoveContent()) { builder.addStep(createRemoveOperation(address)); } } if (undeployDescription.isRemoveContent()) { builder.addStep(createRemoveOperation(createAddress(DEPLOYMENT, name))); } } }
@Override public void tearDown(ManagementClient managementClient, String s) throws Exception { ModelNode op = Operations.createUndefineAttributeOperation( ADDRESS_TRANSACTIONS_SUBSYSTEM, "default-timeout" ); ModelNode result = managementClient.getControllerClient().execute( op ); if ( !Operations.isSuccessfulOutcome( result ) ) { logger.warning( "Can't reset default transaction timeout: " + result.toJSONString( false ) ); } }
@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); }
private void addLogger(ModelNode node, String loggerLevel) throws IOException { ModelNode op = Operations.createAddOperation( node ); op.get( "level" ).set( loggerLevel ); final ModelNode result = managementClient.get().getControllerClient() .execute( op ); if ( !Operations.isSuccessfulOutcome( result ) ) { logger.warning( "Can't create " + node + " logger: " + result.toJSONString( false ) ); } }
private static String formatMessage(final String message, final ModelNode operation, final ModelNode result) { if (message == null) { return String.format("Failed to execute %s%nReason:%s", operation, Operations.getFailureDescription(result).asString()); } final String msg = (message.endsWith(".") ? message : message + "."); return String.format("%s Failed to execute %s%nReason:%s", msg, operation, Operations.getFailureDescription(result).asString()); } }