Refine search
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; } }
protected void validateInput(CommandContext ctx, String typePath, String propertyName) throws CommandFormatException { ModelNode request = new ModelNode(); ModelNode address = request.get(Util.ADDRESS); address.add(node.getType(), node.getName()); result = ctx.getModelControllerClient().execute(request); } catch (IOException e) { throw new CommandFormatException("Failed to validate input: " + e.getLocalizedMessage()); throw new CommandFormatException("Type '" + typeName + "' not found among child types of '" + ctx.getNodePathFormatter().format(typeAddress) + "'"); result = ctx.getModelControllerClient().execute(request); } catch (IOException e) { throw new CommandFormatException(e.getLocalizedMessage()); for(Property prop : result.get(Util.ATTRIBUTES).asPropertyList()) { if(prop.getName().equals(propertyName)) { ModelNode value = prop.getValue(); if(value.has(Util.ACCESS_TYPE) && Util.READ_ONLY.equals(value.get(Util.ACCESS_TYPE).asString())) { return;
ModelNode request = new ModelNode(); request.get("operation").set("read-resource"); request.get("address").get("subsystem").set("naming"); request.get("recursive").set(false); ModelNode r = client.execute(new OperationBuilder(request).build()); boolean found = false; if (resultNode.hasDefined("binding")) { for (ModelNode dataSource : resultNode.get("binding").asList()) { if (dataSource.asProperty().getName().equals(JNDI_NAME)) { found = true; request.get("lookup").set("java:jboss/datasources/ExampleDS"); request.get("binding-type").set("lookup"); ModelNode result = client.execute(new OperationBuilder(request).build()); if (!result.get("outcome").asString().equals("success")) { throw new RuntimeException("DataSource java:/DefaultDS was not found and could not be created automatically: " + result);
throws CommandFormatException { String deploymentName = getName(); if (ctx.isDomainMode() && deploymentName == null && (serverGroup == null || serverGroup.isEmpty())) { throw new CommandFormatException("Either a name or --server-group is required."); final ModelNode validateRequest = new ModelNode(); validateRequest.get(Util.OPERATION).set(Util.COMPOSITE); validateRequest.get(Util.ADDRESS).setEmptyList(); ModelNode steps = validateRequest.get(Util.STEPS); final ModelNode response; try { response = client.execute(validateRequest); } catch (IOException e) { throw new CommandFormatException("Failed to query server groups " for (int i = 0; i < serverGroups.size(); ++i) { final Property prop = stepResponses.get(i); ModelNode stepResponse = prop.getValue(); if (stepResponse.has(prop.getName())) { // TODO remove when the structure is consistent stepResponse = stepResponse.get(prop.getName()); if (stepResponse.hasDefined(Util.RESULT)) {
private ModelNode getAttributeDescription(CommandContext ctx) { final ModelNode req = new ModelNode(); final ModelNode addrNode = req.get(Util.ADDRESS); for(OperationRequestAddress.Node node : address) { addrNode.add(node.getType(), node.getName()); req.get(Util.OPERATION).set(Util.READ_RESOURCE_DESCRIPTION); final ModelNode response; try { response = ctx.getModelControllerClient().execute(req); } catch (Exception e) { return null; throw new IllegalArgumentException(node.getType().toString()); if("*".equals(node.asProperty().getValue().asString())) { wildcardResult = item; break;
@Override protected ModelNode execute(CommandContext ctx, ModelNode request) throws IOException { ModelNode result; if (!unmanaged) { OperationBuilder op = new OperationBuilder(request); op.addFileAsAttachment(file); request.get(Util.CONTENT).get(0).get(Util.INPUT_STREAM_INDEX).set(0); try (Operation operation = op.build()) { result = ctx.getModelControllerClient().execute(operation); } } else { result = ctx.getModelControllerClient().execute(request); } return result; } }
ModelControllerClient client = ctx.getModelControllerClient(); assert client != null : "client is null"; ctx.printLine("Warning! The CLI is running in a non-modular environment and cannot load commands from management extensions."); return; currentAddress = address; final ModelNode req = new ModelNode(); req.get(Util.ADDRESS).setEmptyList(); req.get(Util.OPERATION).set(Util.READ_CHILDREN_RESOURCES); req.get(Util.CHILD_TYPE).set(Util.EXTENSION); response = client.execute(req); } catch (IOException e) { throw new CommandLineException("Extensions loader failed to read extensions", e); for(Property ext : result.asPropertyList()) { ModelNode module = ext.getValue().get(Util.MODULE); if(!module.isDefined()) { addError("Extension " + ext.getName() + " is missing module attribute"); } else { final ModuleIdentifier moduleId = ModuleIdentifier.fromString(module.asString()); addError("Module " + module.asString() + " from extension " + ext.getName() + " available on the server couldn't be loaded locally: " + e.getLocalizedMessage()); ctx.printLine("Warning! There were errors trying to load extensions. For more details, please, execute 'extension-commands --errors'");
private static List<String> getCapabilityNames(CommandContext ctx, ModelNode address, String staticPart) { if (ctx.getModelControllerClient() == null) { return Collections.emptyList(); ModelNode request; try { if (ctx.isDomainMode()) { Property prop = address.get(0).asProperty(); if (prop.getName().equals(Util.HOST)) { host = prop.getValue().asString(); } else { ModelControllerClient client = ctx.getModelControllerClient(); ModelNode req = Util.buildRequest(ctx, new DefaultOperationRequestAddress(), Util.READ_ATTRIBUTE); req.get(Util.NAME).set(Util.LOCAL_HOST_NAME); ModelNode outcome = client.execute(req); if (!Util.isSuccess(outcome) || !outcome.has(Util.RESULT)) { return Collections.emptyList(); ModelNode response = ctx.getModelControllerClient().execute(request); if (Util.isSuccess(response)) { ModelNode result = response.get(Util.RESULT);
try { final ModelNode op = Operations.createReadResourceOperation(UNDERTOW_SUBSYSTEM_ADDRESS, true); final ModelNode result = client.execute(op); undertowSubsystemPresent = Operations.isSuccessfulOutcome(result); if (undertowSubsystemPresent) { throw new RuntimeException(e); if (undertowSubsystem != null && undertowSubsystem.hasDefined("server")) { List<Property> vhosts = undertowSubsystem.get("server").asPropertyList(); ModelNode socketBinding = new ModelNode(); if (!vhosts.isEmpty()) {//if empty no virtual hosts defined socketBinding = vhosts.get(0).getValue().get("http-listener", "default").get("socket-binding"); if (socketBinding.isDefined()) {
/** * Checks the existence of a resource. If the resource exists, {@code true} is returned, otherwise {@code false}. * * @param address the address of the resource to check. * @param client the client used to execute the operation. * * @return {@code true} if the resources exists, otherwise {@code false}. * * @throws IOException if an error occurs executing the operation. * @throws RuntimeException if the operation fails. */ private boolean resourceExists(final ModelNode address, final ModelControllerClient client) throws IOException { final Property childAddress = ServerOperations.getChildAddress(address); final ModelNode parentAddress = ServerOperations.getParentAddress(address); final ModelNode r = client.execute(ServerOperations.createOperation(ServerOperations.READ_RESOURCE, parentAddress, false)); reportFailure(r); boolean found = false; final String name = childAddress.getName(); if (ServerOperations.isSuccessfulOutcome(r)) { final ModelNode resources = ServerOperations.readResult(r).get(name); if (resources.isDefined()) { for (ModelNode dataSource : resources.asList()) { if (dataSource.asProperty().getName().equals(childAddress.getValue().asString())) { found = true; } } } } return found; }
@Override public Map<String, Boolean> getDeploymentsStatus() { final ModelNode op = Util.getEmptyOperation(READ_CHILDREN_RESOURCES_OPERATION, new ModelNode()); op.get(CHILD_TYPE).set(DEPLOYMENT); ModelNode response; try { response = controllerClient.execute(op); } catch (IOException e) { throw new RuntimeException(e); } final ModelNode result = response.get(RESULT); final Map<String, Boolean> deployments = new HashMap<String, Boolean>(); if (result.isDefined()) { for (Property property : result.asPropertyList()) { deployments.put(property.getName(), property.getValue().get(ENABLED).asBoolean(false)); } } return deployments; }
private OperationResponse execute(ModelNode request, boolean useWaitCursor) throws IOException { if(request.get(Util.OPERATION).asString().equals(Util.COMPOSITE) && (!request.get(Util.STEPS).isDefined() || request.get(Util.STEPS).asList().isEmpty())) { return OperationResponse.Factory.createSimple(new ModelNode("WARN: no request was sent as there were no server-side operations to execute")); } try { if (useWaitCursor) { cliGuiCtx.getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } return client.get().executeOperation(OperationBuilder.create(request).build(), OperationMessageHandler.DISCARD); } finally { if (useWaitCursor) { cliGuiCtx.getMainWindow().setCursor(Cursor.getDefaultCursor()); } } }
@Override public void execute() throws Exception { ModelNode request = new ModelNode(); request.get("operation").set(this.operation); assert this.resource.size() % 2 == 0; while (this.resource.size() > 0) { request.get("address").add(this.resource.removeFirst(), this.resource.removeFirst()); } for (Map.Entry<String, String> entry : parameters.entrySet()) { request.get(entry.getKey()).set(entry.getValue()); } if (this.env.getHostControllerName() != null) { request.get("host").set(this.env.getHostControllerName()); } if (this.env.getServerName() != null) { request.get("server").set(this.env.getServerName()); } this.env.getZip().add(this.env.getClient().execute(request).toJSONString(true), this.name); } }
@Override public Set<DeploymentDescription> getDeployments() throws IOException { final ModelNode readDeployments = Operations.createOperation(READ_CHILDREN_NAMES_OPERATION); readDeployments.get(CHILD_TYPE).set(DEPLOYMENT); if (isDomain()) { final ModelNode result = client.execute(builder.build()); if (Operations.isSuccessfulOutcome(result)) { final ModelNode results = Operations.readResult(result); for (ModelNode r : Operations.readResult(results.get("step-1")).asList()) { serverGroupDeployments.put(r.asString(), new LinkedHashSet<String>()); String deployment = null; for (Property property : resultAddress) { if (SERVER_GROUP.equals(property.getName())) { serverGroup = property.getValue().asString(); } else if (DEPLOYMENT.equals(property.getName())) { deployment = property.getValue().asString(); final ModelNode result = client.execute(readDeployments); if (Operations.isSuccessfulOutcome(result)) { for (ModelNode deployment : Operations.readResult(result).asList()) {
static void applyUpdate(final ModelControllerClient client, ModelNode update, boolean allowFailure) throws IOException { ModelNode result = client.execute(new OperationBuilder(update).build()); if (result.hasDefined("outcome") && (allowFailure || "success".equals(result.get("outcome").asString()))) { if (result.hasDefined("result")) { LOGGER.trace(result.get("result")); } } else if (result.hasDefined("failure-description")) { throw new RuntimeException(result.get("failure-description").toString()); } else { throw new RuntimeException("Operation not successful; outcome = " + result.get("outcome")); } }
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()); }
@Override protected void doHandle(CommandContext ctx) throws CommandLineException { final ModelNode request = buildRequest(ctx); Attachments attachments = getAttachments(ctx); OperationBuilder builder = new OperationBuilder(request, true); for (String path : attachments.getAttachedFiles()) { builder.addFileAsAttachment(new File(path)); } final ModelControllerClient client = ctx.getModelControllerClient(); final OperationResponse operationResponse; try { operationResponse = client.executeOperation(builder.build(), OperationMessageHandler.DISCARD); } catch (Exception e) { throw new CommandLineException("Failed to perform operation", e); } try { final ModelNode response = operationResponse.getResponseNode(); if (!Util.isSuccess(response)) { throw new CommandLineException(Util.getFailureDescription(response)); } handleResponse(ctx, operationResponse, Util.COMPOSITE.equals(request.get(Util.OPERATION).asString())); operationResponse.close(); } catch (IOException ex) { throw new CommandLineException("Failed to perform operation", ex); } }
@Override protected void doHandle(CommandContext ctx) throws CommandLineException { final boolean v = verbose.isPresent(ctx.getParsedCommandLine()); boolean hasFile = file.getValue(ctx.getParsedCommandLine()) != null; try { final ModelNode request = buildRequest(ctx); builder.addFileAsAttachment(new File(path)); final ModelControllerClient client = ctx.getModelControllerClient(); try { response = client.executeOperation(builder.build(), OperationMessageHandler.DISCARD); } catch(Exception e) { throw new CommandFormatException("Failed to perform operation: " + e.getLocalizedMessage()); ModelNode steps = response.getResponseNode().get(Util.RESULT); if (steps.isDefined()) { final Batch batch = ctx.getBatchManager().getActiveBatch(); int i = 1; for (BatchedCommand cmd : batch.getCommands()) { ModelNode step = steps.get("step-" + i); if (step.isDefined()) { if (cmd.getResponseHandler() != null) {
public long restart(long executionId, Properties properties) throws IOException { ModelNode op = Operations.createOperation( "restart-job", jberetSubsystemAddress.toModelNode() ); op.get( "execution-id" ).set( executionId ); if ( properties != null ) { op.get( "properties" ).set( toModelNode( properties ) ); } final ModelNode outcome = managementClient.getControllerClient().execute( op ); if ( !Operations.isSuccessfulOutcome( outcome ) ) { throw new IllegalStateException( "Could not restart job: " + outcome ); } return outcome.get( "result" ).asLong(); }