Search in sources :

Example 11 with CompositeResult

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();
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Composite(org.jboss.hal.dmr.Composite) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CompositeResult(org.jboss.hal.dmr.CompositeResult) Metadata(org.jboss.hal.meta.Metadata) Operation(org.jboss.hal.dmr.Operation) ModelNode(org.jboss.hal.dmr.ModelNode) Property(org.jboss.hal.dmr.Property)

Example 12 with CompositeResult

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());
    });
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) Logger(org.slf4j.Logger) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) StatementContext(org.jboss.hal.meta.StatementContext) Collections.emptyList(java.util.Collections.emptyList) LoggerFactory(org.slf4j.LoggerFactory) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) ArrayList(java.util.ArrayList) Consumer(java.util.function.Consumer) Inject(javax.inject.Inject) Composite(org.jboss.hal.dmr.Composite) List(java.util.List) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) AddressTemplate(org.jboss.hal.meta.AddressTemplate) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) Composite(org.jboss.hal.dmr.Composite) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CompositeResult(org.jboss.hal.dmr.CompositeResult) ArrayList(java.util.ArrayList) Operation(org.jboss.hal.dmr.Operation) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 13 with CompositeResult

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()));
    }
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ModelNode(org.jboss.hal.dmr.ModelNode) Constraint(org.jboss.hal.meta.security.Constraint) MessageEvent(org.jboss.hal.spi.MessageEvent) SHORT_TIMEOUT(org.jboss.hal.resources.UIConstants.SHORT_TIMEOUT) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Supplier(java.util.function.Supplier) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) FormValidation(org.jboss.hal.ballroom.form.FormValidation) Strings(com.google.common.base.Strings) Message(org.jboss.hal.spi.Message) EmptyState(org.jboss.hal.ballroom.EmptyState) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) ComplexAttributeOperations(org.jboss.hal.core.ComplexAttributeOperations) EventBus(com.google.web.bindery.event.shared.EventBus) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Composite(org.jboss.hal.dmr.Composite) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) FormItem(org.jboss.hal.ballroom.form.FormItem) Callback(org.jboss.hal.spi.Callback) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) ValidationResult(org.jboss.hal.ballroom.form.ValidationResult) Form(org.jboss.hal.ballroom.form.Form) DomGlobal.setTimeout(elemental2.dom.DomGlobal.setTimeout) Composite(org.jboss.hal.dmr.Composite) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CompositeResult(org.jboss.hal.dmr.CompositeResult) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Operation(org.jboss.hal.dmr.Operation) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 14 with CompositeResult

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")));
}
Also used : CompositeResult(org.jboss.hal.dmr.CompositeResult) Before(org.junit.Before)

Example 15 with CompositeResult

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")));
}
Also used : CompositeResult(org.jboss.hal.dmr.CompositeResult) Before(org.junit.Before)

Aggregations

CompositeResult (org.jboss.hal.dmr.CompositeResult)53 Composite (org.jboss.hal.dmr.Composite)48 Operation (org.jboss.hal.dmr.Operation)42 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)33 ModelNode (org.jboss.hal.dmr.ModelNode)31 ArrayList (java.util.ArrayList)21 List (java.util.List)18 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)17 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)16 AddressTemplate (org.jboss.hal.meta.AddressTemplate)16 StatementContext (org.jboss.hal.meta.StatementContext)16 Inject (javax.inject.Inject)15 Ids (org.jboss.hal.resources.Ids)14 Environment (org.jboss.hal.config.Environment)13 FlowContext (org.jboss.hal.flow.FlowContext)13 Resources (org.jboss.hal.resources.Resources)13 EventBus (com.google.web.bindery.event.shared.EventBus)12 Collectors.toList (java.util.stream.Collectors.toList)12 Message (org.jboss.hal.spi.Message)12 MessageEvent (org.jboss.hal.spi.MessageEvent)12