use of org.jboss.hal.dmr.CompositeResult in project console by hal.
the class CacheContainerColumn method addRemoteCacheContainer.
private void addRemoteCacheContainer() {
Metadata rccMetadata = metadataRegistry.lookup(REMOTE_CACHE_CONTAINER_TEMPLATE);
Metadata rcMetadata = metadataRegistry.lookup(REMOTE_CLUSTER_TEMPLATE);
// add nested 'socket-bindings' attribute from 'remote-cluster' resource to top level metadata
String path = OPERATIONS + "/" + ADD + "/" + REQUEST_PROPERTIES;
Property socketBindingsDescription = rcMetadata.getDescription().findAttribute(path, SOCKET_BINDINGS);
failSafeGet(rccMetadata.getDescription(), path).get(SOCKET_BINDINGS).set(socketBindingsDescription.getValue());
ModelNode socketBindingsPermissions = failSafeGet(rcMetadata.getSecurityContext(), ATTRIBUTES + "/" + SOCKET_BINDINGS);
failSafeGet(rccMetadata.getSecurityContext(), ATTRIBUTES).get(SOCKET_BINDINGS).set(socketBindingsPermissions);
AddResourceDialog dialog = new AddResourceDialog(Ids.REMOTE_CACHE_CONTAINER_FORM, resources.messages().addResourceTitle(Names.REMOTE_CACHE_CONTAINER), rccMetadata, asList(DEFAULT_REMOTE_CLUSTER, SOCKET_BINDINGS), (name, model) -> {
String rcName = model.get(DEFAULT_REMOTE_CLUSTER).asString();
ModelNode socketBindings = model.remove(SOCKET_BINDINGS);
ResourceAddress rccAddress = REMOTE_CACHE_CONTAINER_TEMPLATE.resolve(statementContext, name);
ResourceAddress rcAddress = REMOTE_CLUSTER_TEMPLATE.resolve(statementContext, name, rcName);
List<Operation> operations = asList(new Operation.Builder(rccAddress, ADD).payload(model).build(), new Operation.Builder(rcAddress, ADD).param(SOCKET_BINDINGS, socketBindings).build());
dispatcher.execute(new Composite(operations), (CompositeResult result) -> {
MessageEvent.fire(eventBus, Message.success(resources.messages().addResourceSuccess(Names.REMOTE_CACHE_CONTAINER, name)));
refresh(Ids.remoteCacheContainer(name));
});
});
dialog.getForm().<String>getFormItem(NAME).addValidationHandler(createUniqueValidationFromFilteredItems(CacheContainer::isRemote));
dialog.show();
}
use of org.jboss.hal.dmr.CompositeResult in project console by hal.
the class DeploymentResources method readChildren.
public <T extends DeploymentResource> void readChildren(String subsystem, String resource, DeploymentResourceSupplier<T> supplier, Consumer<List<T>> callback) {
// /deployment=*/subsystem=<subsystem>:read-children-resources(child-type=<resource>)
// fails with "WFLYCTL0217: Child resource '\"deployment\" => \"*\"' not found"
// That's why we use: /deployment=*/subsystem=<subsystem>/<resource>=*:read-resource()
ResourceAddress deploymentAddress = DEPLOYMENT_TEMPLATE.append(SUBSYSTEM + "=" + subsystem).append(resource + "=*").resolve(statementContext);
Operation deploymentJobOperation = new Operation.Builder(deploymentAddress, READ_RESOURCE_OPERATION).param(INCLUDE_RUNTIME, true).param(RECURSIVE, true).build();
ResourceAddress subdeploymentAddress = SUBDEPLOYMENT_TEMPLATE.append(SUBSYSTEM + "=" + subsystem).append(resource + "=*").resolve(statementContext);
Operation subdeploymentJobOperation = new Operation.Builder(subdeploymentAddress, READ_RESOURCE_OPERATION).param(INCLUDE_RUNTIME, true).param(RECURSIVE, true).build();
dispatcher.execute(new Composite(deploymentJobOperation, subdeploymentJobOperation), (CompositeResult result) -> {
List<T> nodes = new ArrayList<>();
Consumer<ModelNode> nodeConsumer = node -> {
ResourceAddress address = new ResourceAddress(node.get(ADDRESS));
nodes.add(supplier.get(address, node.get(RESULT)));
};
result.step(0).get(RESULT).asList().forEach(nodeConsumer);
result.step(1).get(RESULT).asList().forEach(nodeConsumer);
callback.accept(nodes);
}, (operation, failure) -> {
logger.error("Unable to read {}/{} deployment resources: {}", subsystem, resource, failure);
callback.accept(emptyList());
});
}
use of org.jboss.hal.dmr.CompositeResult in project console by hal.
the class CredentialReference method addCredentialReference.
private void addCredentialReference(String baseId, Metadata crMetadata, String credentialReferenceName, String alternativeName, Supplier<ResourceAddress> address, Callback callback) {
ResourceAddress fqAddress = address.get();
if (fqAddress != null) {
String id = Ids.build(baseId, credentialReferenceName, Ids.ADD);
Form<ModelNode> form = new ModelNodeForm.Builder<>(id, crMetadata).addOnly().include(STORE, ALIAS, CLEAR_TEXT, TYPE).unsorted().build();
form.addFormValidation(new CrFormValuesValidation(resources));
new AddResourceDialog(resources.messages().addResourceTitle(Names.CREDENTIAL_REFERENCE), form, (name, model) -> {
if (alternativeName != null) {
Operation undefine = new Operation.Builder(fqAddress, UNDEFINE_ATTRIBUTE_OPERATION).param(NAME, alternativeName).build();
Operation write = new Operation.Builder(fqAddress, WRITE_ATTRIBUTE_OPERATION).param(NAME, credentialReferenceName).param(VALUE, model).build();
dispatcher.execute(new Composite(undefine, write), (CompositeResult result) -> {
MessageEvent.fire(eventBus, Message.success(resources.messages().addSingleResourceSuccess(Names.CREDENTIAL_REFERENCE)));
callback.execute();
});
} else {
ca.add(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqAddress, model, callback);
}
}).show();
} else {
MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
}
}
use of org.jboss.hal.dmr.CompositeResult in project console by hal.
the class CompositeOperationOneWildcardTest method setUp.
@Before
public void setUp() throws Exception {
resultProcessor = new CompositeReadChildrenProcessor();
compositeResult = new CompositeResult(ExternalModelNode.read(NamesResultProcessorTest.class.getResourceAsStream("composite-operation-one-wildcard.dmr")));
}
use of org.jboss.hal.dmr.CompositeResult in project console by hal.
the class CompositeOperationTwoWildcardsTest method setUp.
@Before
public void setUp() throws Exception {
resultProcessor = new CompositeReadChildrenProcessor();
compositeResult = new CompositeResult(ExternalModelNode.read(NamesResultProcessorTest.class.getResourceAsStream("composite-operation-two-wildcards.dmr")));
}
Aggregations