Search in sources :

Example 6 with Dispatcher

use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.

the class OtherSettingsPresenter method addSecurityDomain.

// -------------------------------------------- Security Domain
void addSecurityDomain() {
    Metadata metadata = metadataRegistry.lookup(SECURITY_DOMAIN_TEMPLATE);
    // emulate capability-reference on default-realm
    String capabilityReference = metadata.getDescription().findAttribute(ATTRIBUTES + "/" + REALMS + "/" + VALUE_TYPE, REALM).getValue().get(CAPABILITY_REFERENCE).asString();
    String id = Ids.build(Ids.ELYTRON_SECURITY_DOMAIN, Ids.ADD);
    NameItem nameItem = new NameItem();
    ModelNodeForm<ModelNode> form = new ModelNodeForm.Builder<>(id, metadata).addOnly().unboundFormItem(nameItem, 0).include(DEFAULT_REALM).unsorted().build();
    form.getFormItem(DEFAULT_REALM).setRequired(true);
    form.getFormItem(DEFAULT_REALM).registerSuggestHandler(new SuggestCapabilitiesAutoComplete(dispatcher, statementContext, capabilityReference, metadata.getTemplate()));
    new AddResourceDialog(resources.messages().addResourceTitle(Names.SECURITY_DOMAIN), form, (name, model) -> {
        if (model != null) {
            // add the default-realm in the list of realms
            ModelNode realm = new ModelNode();
            realm.get(REALM).set(model.get(DEFAULT_REALM).asString());
            model.get(REALMS).add(realm);
        }
        ResourceAddress address = SECURITY_DOMAIN_TEMPLATE.resolve(statementContext, nameItem.getValue());
        crud.add(Names.SECURITY_DOMAIN, name, address, model, (n, a) -> reload(SECURITY_DOMAIN, nodes -> getView().updateResourceElement(SECURITY_DOMAIN, nodes)));
    }).show();
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) FinishRemove(org.jboss.hal.ballroom.form.Form.FinishRemove) StatementContext(org.jboss.hal.meta.StatementContext) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) TextBoxItem(org.jboss.hal.ballroom.form.TextBoxItem) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) FinishReset(org.jboss.hal.ballroom.form.Form.FinishReset) RequireAtLeastOneAttributeValidation(org.jboss.hal.core.mbui.form.RequireAtLeastOneAttributeValidation) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) ModelNodeHelper.asNamedNodes(org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes) CrudOperations(org.jboss.hal.core.CrudOperations) ModelNodeHelper.move(org.jboss.hal.dmr.ModelNodeHelper.move) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) ComplexAttributeOperations(org.jboss.hal.core.ComplexAttributeOperations) FinderPath(org.jboss.hal.core.finder.FinderPath) PathsAutoComplete(org.jboss.hal.core.configuration.PathsAutoComplete) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) Finder(org.jboss.hal.core.finder.Finder) ValidationResult(org.jboss.hal.ballroom.form.ValidationResult) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) SupportsExpertMode(org.jboss.hal.core.mvp.SupportsExpertMode) ModelNode(org.jboss.hal.dmr.ModelNode) ProxyPlace(com.gwtplatform.mvp.client.proxy.ProxyPlace) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) NameItem(org.jboss.hal.core.mbui.dialog.NameItem) SafeHtmlUtils(com.google.gwt.safehtml.shared.SafeHtmlUtils) Requires(org.jboss.hal.spi.Requires) ProxyCodeSplit(com.gwtplatform.mvp.client.annotations.ProxyCodeSplit) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) AddressTemplates(org.jboss.hal.client.configuration.subsystem.elytron.AddressTemplates) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) Consumer(java.util.function.Consumer) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) FormItem(org.jboss.hal.ballroom.form.FormItem) NameTokens(org.jboss.hal.meta.token.NameTokens) MbuiPresenter(org.jboss.hal.core.mbui.MbuiPresenter) Resources(org.jboss.hal.resources.Resources) SuggestCapabilitiesAutoComplete(org.jboss.hal.ballroom.autocomplete.SuggestCapabilitiesAutoComplete) MbuiView(org.jboss.hal.core.mbui.MbuiView) NamedNode(org.jboss.hal.dmr.NamedNode) Collections(java.util.Collections) Form(org.jboss.hal.ballroom.form.Form) SuggestCapabilitiesAutoComplete(org.jboss.hal.ballroom.autocomplete.SuggestCapabilitiesAutoComplete) NameItem(org.jboss.hal.core.mbui.dialog.NameItem) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Metadata(org.jboss.hal.meta.Metadata) ModelNode(org.jboss.hal.dmr.ModelNode) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm)

Example 7 with Dispatcher

use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.

the class RoleColumn method editScopedRole.

private void editScopedRole(Role role, String type, AddressTemplate template, AddressTemplate typeaheadTemplate, String formId, String scopeAttribute) {
    Metadata metadata = metadataRegistry.lookup(template);
    Form<ModelNode> form = new ModelNodeForm.Builder<>(formId, metadata).include(BASE_ROLE, scopeAttribute).customFormItem(BASE_ROLE, attributeDescription -> {
        SingleSelectBoxItem item = new SingleSelectBoxItem(BASE_ROLE, new LabelBuilder().label(BASE_ROLE), standardRoleNames, false);
        item.setRequired(true);
        return item;
    }).unboundFormItem(new SwitchItem(INCLUDE_ALL, new LabelBuilder().label(INCLUDE_ALL)), 2, resources.messages().includeAllHelpText()).build();
    form.getFormItem(scopeAttribute).setRequired(true);
    form.getFormItem(scopeAttribute).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, typeaheadTemplate));
    form.getFormItem(INCLUDE_ALL).setValue(role.isIncludeAll());
    form.attach();
    ModelNode modelNode = new ModelNode();
    modelNode.get(BASE_ROLE).set(role.getBaseRole().getName());
    role.getScope().forEach(scope -> modelNode.get(scopeAttribute).add(scope));
    new ModifyResourceDialog(resources.messages().modifyResourceTitle(type), form, (frm, changedValues) -> {
        boolean includeAll = frm.<Boolean>getFormItem(INCLUDE_ALL).getValue();
        boolean includeAllChanged = includeAll != role.isIncludeAll();
        List<Task<FlowContext>> tasks = new ArrayList<>();
        if (!changedValues.isEmpty()) {
            tasks.add(new ModifyScopedRole(dispatcher, role, changedValues, metadata));
        }
        if (includeAllChanged) {
            tasks.add(new ModifyIncludeAll(dispatcher, role, includeAll));
        }
        series(new FlowContext(progress.get()), tasks).subscribe(new SuccessfulOutcome<FlowContext>(eventBus, resources) {

            @Override
            public void onSuccess(FlowContext context) {
                MessageEvent.fire(eventBus, Message.success(resources.messages().modifyResourceSuccess(type, role.getName())));
                accessControl.reload(() -> {
                    refresh(role.getId());
                    eventBus.fireEvent(new RolesChangedEvent());
                });
            }
        });
    }).show(modelNode);
}
Also used : Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) StatementContext(org.jboss.hal.meta.StatementContext) AddScopedRole(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddScopedRole) ItemDisplay(org.jboss.hal.core.finder.ItemDisplay) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) SafeHtmlBuilder(com.google.gwt.safehtml.shared.SafeHtmlBuilder) Metadata(org.jboss.hal.meta.Metadata) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping) Settings(org.jboss.hal.config.Settings) SingleSelectBoxItem(org.jboss.hal.ballroom.form.SingleSelectBoxItem) ModifyResourceDialog(org.jboss.hal.core.mbui.dialog.ModifyResourceDialog) RemoveAssignments(org.jboss.hal.client.accesscontrol.AccessControlTasks.RemoveAssignments) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) SwitchItem(org.jboss.hal.ballroom.form.SwitchItem) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) Flow.series(org.jboss.hal.flow.Flow.series) Role(org.jboss.hal.config.Role) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) Elements.small(org.jboss.gwt.elemento.core.Elements.small) CSS.subtitle(org.jboss.hal.resources.CSS.subtitle) ModelNode(org.jboss.hal.dmr.ModelNode) RemoveScopedRole(org.jboss.hal.client.accesscontrol.AccessControlTasks.RemoveScopedRole) AsyncColumn(org.jboss.hal.spi.AsyncColumn) MessageEvent(org.jboss.hal.spi.MessageEvent) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) ColumnAction(org.jboss.hal.core.finder.ColumnAction) ItemAction(org.jboss.hal.core.finder.ItemAction) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) Task(org.jboss.hal.flow.Task) ModifyIncludeAll(org.jboss.hal.client.accesscontrol.AccessControlTasks.ModifyIncludeAll) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) RemoveRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.RemoveRoleMapping) FinderColumn(org.jboss.hal.core.finder.FinderColumn) NameItem(org.jboss.hal.core.mbui.dialog.NameItem) Comparator.comparing(java.util.Comparator.comparing) ModifyScopedRole(org.jboss.hal.client.accesscontrol.AccessControlTasks.ModifyScopedRole) RolesChangedEvent(org.jboss.hal.config.RolesChangedEvent) AddressTemplates(org.jboss.hal.client.accesscontrol.AddressTemplates) ColumnActionFactory(org.jboss.hal.core.finder.ColumnActionFactory) Requires(org.jboss.hal.spi.Requires) CSS.itemText(org.jboss.hal.resources.CSS.itemText) Ids(org.jboss.hal.resources.Ids) EventBus(com.google.web.bindery.event.shared.EventBus) CSS.pfIcon(org.jboss.hal.resources.CSS.pfIcon) ReadChildrenAutoComplete(org.jboss.hal.ballroom.autocomplete.ReadChildrenAutoComplete) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) Resources(org.jboss.hal.resources.Resources) RUN_AS(org.jboss.hal.config.Settings.Key.RUN_AS) Elements.span(org.jboss.gwt.elemento.core.Elements.span) Form(org.jboss.hal.ballroom.form.Form) SingleSelectBoxItem(org.jboss.hal.ballroom.form.SingleSelectBoxItem) SafeHtmlBuilder(com.google.gwt.safehtml.shared.SafeHtmlBuilder) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Metadata(org.jboss.hal.meta.Metadata) ModifyScopedRole(org.jboss.hal.client.accesscontrol.AccessControlTasks.ModifyScopedRole) FlowContext(org.jboss.hal.flow.FlowContext) RolesChangedEvent(org.jboss.hal.config.RolesChangedEvent) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) List(java.util.List) ArrayList(java.util.ArrayList) Collectors.toList(java.util.stream.Collectors.toList) ModifyIncludeAll(org.jboss.hal.client.accesscontrol.AccessControlTasks.ModifyIncludeAll) ModelNode(org.jboss.hal.dmr.ModelNode) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) ReadChildrenAutoComplete(org.jboss.hal.ballroom.autocomplete.ReadChildrenAutoComplete) SwitchItem(org.jboss.hal.ballroom.form.SwitchItem) ModifyResourceDialog(org.jboss.hal.core.mbui.dialog.ModifyResourceDialog)

Example 8 with Dispatcher

use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.

the class AssignmentColumn method columnActionHandler.

private ColumnActionHandler<Assignment> columnActionHandler(Role role, boolean include) {
    return column -> {
        Principal principal = findPrincipal(getFinder().getContext().getPath());
        if (principal != null) {
            series(new FlowContext(progress.get()), new CheckRoleMapping(dispatcher, role), new AddRoleMapping(dispatcher, role, status -> status == 404), new AddAssignment(dispatcher, role, principal, include)).subscribe(new SuccessfulOutcome<FlowContext>(eventBus, resources) {

                @Override
                public void onSuccess(FlowContext context) {
                    String type = resources.constants().role();
                    SafeHtml message = include ? resources.messages().assignmentIncludeSuccess(type, role.getName()) : resources.messages().assignmentExcludeSuccess(type, role.getName());
                    MessageEvent.fire(eventBus, Message.success(message));
                    accessControl.reload(() -> {
                        refresh(RefreshMode.RESTORE_SELECTION);
                        if (isCurrentUser(principal)) {
                            eventBus.fireEvent(new UserChangedEvent());
                        }
                    });
                }
            });
        }
    };
}
Also used : ColumnActionHandler(org.jboss.hal.core.finder.ColumnActionHandler) Provider(javax.inject.Provider) AsyncColumn(org.jboss.hal.spi.AsyncColumn) ItemActionFactory(org.jboss.hal.core.finder.ItemActionFactory) MessageEvent(org.jboss.hal.spi.MessageEvent) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) ColumnAction(org.jboss.hal.core.finder.ColumnAction) ItemAction(org.jboss.hal.core.finder.ItemAction) ItemDisplay(org.jboss.hal.core.finder.ItemDisplay) FinderSegment(org.jboss.hal.core.finder.FinderSegment) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) UserChangedEvent(org.jboss.hal.config.UserChangedEvent) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Collections.singletonList(java.util.Collections.singletonList) Inject(javax.inject.Inject) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) Progress(org.jboss.hal.flow.Progress) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) FinderColumn(org.jboss.hal.core.finder.FinderColumn) User(org.jboss.hal.config.User) Collectors.toSet(java.util.stream.Collectors.toSet) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) INCLUDE_TEMPLATE(org.jboss.hal.client.accesscontrol.AddressTemplates.INCLUDE_TEMPLATE) EXCLUDE_TEMPLATE(org.jboss.hal.client.accesscontrol.AddressTemplates.EXCLUDE_TEMPLATE) REMOVE(org.jboss.hal.dmr.ModelDescriptionConstants.REMOVE) Set(java.util.Set) EventBus(com.google.web.bindery.event.shared.EventBus) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) FinderPath(org.jboss.hal.core.finder.FinderPath) Sets(com.google.common.collect.Sets) List(java.util.List) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) Resources(org.jboss.hal.resources.Resources) Flow.series(org.jboss.hal.flow.Flow.series) Role(org.jboss.hal.config.Role) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) Elements.span(org.jboss.gwt.elemento.core.Elements.span) CSS.fontAwesome(org.jboss.hal.resources.CSS.fontAwesome) UserChangedEvent(org.jboss.hal.config.UserChangedEvent) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) FlowContext(org.jboss.hal.flow.FlowContext) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping)

Example 9 with Dispatcher

use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.

the class DataSourceColumn method prepareWizard.

private void prepareWizard(boolean xa) {
    Task<FlowContext> readDataSources = context -> crud.readChildren(DATA_SOURCE_SUBSYSTEM_TEMPLATE, xa ? XA_DATA_SOURCE : DATA_SOURCE).doOnSuccess(children -> {
        List<DataSource> dataSources = children.stream().map(property -> new DataSource(property, xa)).collect(toList());
        context.set(DATASOURCES, dataSources);
    }).toCompletable();
    List<Task<FlowContext>> tasks = new ArrayList<>();
    tasks.add(readDataSources);
    tasks.addAll(runningServers(environment, dispatcher, properties(PROFILE_NAME, statementContext.selectedProfile())));
    tasks.add(new JdbcDriverTasks.ReadRuntime(environment, dispatcher));
    tasks.add(new JdbcDriverTasks.CombineDriverResults());
    series(new FlowContext(progress.get()), tasks).subscribe(new Outcome<FlowContext>() {

        @Override
        public void onError(FlowContext context, Throwable error) {
            showWizard(Collections.emptyList(), Collections.emptyList(), xa);
        }

        @Override
        public void onSuccess(FlowContext context) {
            List<DataSource> dataSources = context.get(DATASOURCES);
            List<JdbcDriver> drivers = context.get(JdbcDriverTasks.DRIVERS);
            showWizard(dataSources, drivers, xa);
        }
    });
}
Also used : Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) Constraint(org.jboss.hal.meta.security.Constraint) ItemActionFactory(org.jboss.hal.core.finder.ItemActionFactory) StatementContext(org.jboss.hal.meta.StatementContext) ItemDisplay(org.jboss.hal.core.finder.ItemDisplay) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Icons(org.jboss.hal.resources.Icons) JdbcDriver(org.jboss.hal.core.datasource.JdbcDriver) HTMLElement(elemental2.dom.HTMLElement) TopologyTasks.runningServers(org.jboss.hal.core.runtime.TopologyTasks.runningServers) Message(org.jboss.hal.spi.Message) Places(org.jboss.hal.core.mvp.Places) Names(org.jboss.hal.resources.Names) CrudOperations(org.jboss.hal.core.CrudOperations) List(java.util.List) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) DataSourceWizard(org.jboss.hal.client.configuration.subsystem.datasource.wizard.DataSourceWizard) AddressTemplates(org.jboss.hal.client.configuration.subsystem.datasource.AddressTemplates) Flow.series(org.jboss.hal.flow.Flow.series) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) AsyncColumn(org.jboss.hal.spi.AsyncColumn) MessageEvent(org.jboss.hal.spi.MessageEvent) ColumnAction(org.jboss.hal.core.finder.ColumnAction) ItemAction(org.jboss.hal.core.finder.ItemAction) FlowContext(org.jboss.hal.flow.FlowContext) Outcome(org.jboss.hal.flow.Outcome) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) Task(org.jboss.hal.flow.Task) Progress(org.jboss.hal.flow.Progress) RESTORE_SELECTION(org.jboss.hal.core.finder.FinderColumn.RefreshMode.RESTORE_SELECTION) FinderColumn(org.jboss.hal.core.finder.FinderColumn) Comparator.comparing(java.util.Comparator.comparing) ModelNodeHelper.properties(org.jboss.hal.dmr.ModelNodeHelper.properties) ColumnActionFactory(org.jboss.hal.core.finder.ColumnActionFactory) Requires(org.jboss.hal.spi.Requires) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) EventBus(com.google.web.bindery.event.shared.EventBus) CSS.pfIcon(org.jboss.hal.resources.CSS.pfIcon) PlaceRequest(com.gwtplatform.mvp.shared.proxy.PlaceRequest) Composite(org.jboss.hal.dmr.Composite) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) NameTokens(org.jboss.hal.meta.token.NameTokens) Resources(org.jboss.hal.resources.Resources) DataSource(org.jboss.hal.core.datasource.DataSource) NamedNode(org.jboss.hal.dmr.NamedNode) Collections(java.util.Collections) Task(org.jboss.hal.flow.Task) ArrayList(java.util.ArrayList) FlowContext(org.jboss.hal.flow.FlowContext) DataSource(org.jboss.hal.core.datasource.DataSource) List(java.util.List) ArrayList(java.util.ArrayList) Collectors.toList(java.util.stream.Collectors.toList)

Example 10 with Dispatcher

use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.

the class TopologyPreview method update.

// ------------------------------------------------------ dmr functions
@Override
public void update(StaticItem item) {
    // remember selection
    HTMLElement element = (HTMLElement) document.querySelector(DOT + topology + " ." + selected);
    String hostName = element != null ? String.valueOf(element.dataset.get("host")) : null;
    String serverGroupName = element != null ? String.valueOf(element.dataset.get("serverGroup")) : null;
    String serverName = element != null ? String.valueOf(element.dataset.get("server")) : null;
    clearSelected();
    setVisible(loadingSection, false);
    setVisible(topologySection, false);
    hideDetails();
    // show the loading indicator if the operations take too long
    double timeoutHandle = setTimeout((o) -> setVisible(loadingSection, true), MEDIUM_TIMEOUT);
    series(new FlowContext(progress.get()), topology(environment, dispatcher)).subscribe(new Outcome<FlowContext>() {

        @Override
        public void onError(FlowContext context, Throwable error) {
            clearTimeout(timeoutHandle);
            setVisible(loadingSection, false);
            MessageEvent.fire(eventBus, Message.error(resources.messages().topologyError(), error.getMessage()));
        }

        @Override
        public void onSuccess(FlowContext context) {
            clearTimeout(timeoutHandle);
            setVisible(loadingSection, false);
            Elements.removeChildrenFrom(topologySection);
            List<Host> hosts = context.get(TopologyTasks.HOSTS);
            List<ServerGroup> serverGroups = context.get(TopologyTasks.SERVER_GROUPS);
            List<Server> servers = context.get(TopologyTasks.SERVERS);
            topologySection.appendChild(buildTable(hosts, serverGroups, servers));
            setVisible(topologySection, true);
            adjustTdHeight();
            // restore selection
            if (hostName != null) {
                hosts.stream().filter(host -> hostName.equals(host.getName())).findAny().ifPresent(host -> hostDetails(host));
            }
            if (serverGroupName != null) {
                serverGroups.stream().filter(serverGroup -> serverGroupName.equals(serverGroup.getName())).findAny().ifPresent(serverGroup -> serverGroupDetails(serverGroup));
            }
            if (serverName != null) {
                servers.stream().filter(server -> serverName.equals(server.getName())).findAny().ifPresent(server -> serverDetails(server));
            }
        }
    });
}
Also used : PreviewContent(org.jboss.hal.core.finder.PreviewContent) HostActions(org.jboss.hal.core.runtime.host.HostActions) ServerGroupActionEvent(org.jboss.hal.core.runtime.group.ServerGroupActionEvent) Constraint(org.jboss.hal.meta.security.Constraint) HostResultEvent(org.jboss.hal.core.runtime.host.HostResultEvent) TopologyTasks(org.jboss.hal.core.runtime.TopologyTasks) AuthorisationDecision(org.jboss.hal.meta.security.AuthorisationDecision) PreviewAttribute(org.jboss.hal.core.finder.PreviewAttributes.PreviewAttribute) Server(org.jboss.hal.core.runtime.server.Server) CSS.hostContainer(org.jboss.hal.resources.CSS.hostContainer) Places(org.jboss.hal.core.mvp.Places) Names(org.jboss.hal.resources.Names) HostActionEvent(org.jboss.hal.core.runtime.host.HostActionEvent) ServerActions(org.jboss.hal.core.runtime.server.ServerActions) ServerGroupResultEvent(org.jboss.hal.core.runtime.group.ServerGroupResultEvent) CSS.inactive(org.jboss.hal.resources.CSS.inactive) HTMLTableElement(elemental2.dom.HTMLTableElement) Set(java.util.Set) CSS(org.jboss.hal.resources.CSS) ServerGroup(org.jboss.hal.core.runtime.group.ServerGroup) ServerActionHandler(org.jboss.hal.core.runtime.server.ServerActionEvent.ServerActionHandler) Flow.series(org.jboss.hal.flow.Flow.series) CSS.fontAwesome(org.jboss.hal.resources.CSS.fontAwesome) CSS.spinnerLg(org.jboss.hal.resources.CSS.spinnerLg) CSS.withProgress(org.jboss.hal.resources.CSS.withProgress) Constraints(org.jboss.hal.meta.security.Constraints) Supplier(java.util.function.Supplier) FlowContext(org.jboss.hal.flow.FlowContext) Outcome(org.jboss.hal.flow.Outcome) ArrayList(java.util.ArrayList) ServerGroupResultHandler(org.jboss.hal.core.runtime.group.ServerGroupResultEvent.ServerGroupResultHandler) Strings(com.google.common.base.Strings) EventCallbackFn(org.jboss.gwt.elemento.core.EventCallbackFn) Progress(org.jboss.hal.flow.Progress) CSS.marginRight5(org.jboss.hal.resources.CSS.marginRight5) CSS.name(org.jboss.hal.resources.CSS.name) EventBus(com.google.web.bindery.event.shared.EventBus) MouseEvent(elemental2.dom.MouseEvent) ServerStatusSwitch(org.jboss.hal.client.runtime.server.ServerStatusSwitch) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) NameTokens(org.jboss.hal.meta.token.NameTokens) HTMLDivElement(elemental2.dom.HTMLDivElement) NamedNode(org.jboss.hal.dmr.NamedNode) Elements(org.jboss.gwt.elemento.core.Elements) CSS.rowHeader(org.jboss.hal.resources.CSS.rowHeader) Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) HTMLTableCellElement(elemental2.dom.HTMLTableCellElement) HtmlContentBuilder(org.jboss.gwt.elemento.core.builder.HtmlContentBuilder) HostPreviewAttributes(org.jboss.hal.core.runtime.host.HostPreviewAttributes) CSS.divider(org.jboss.hal.resources.CSS.divider) HostActionHandler(org.jboss.hal.core.runtime.host.HostActionEvent.HostActionHandler) CSS.serverGroupContainer(org.jboss.hal.resources.CSS.serverGroupContainer) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) NodeList(elemental2.dom.NodeList) PreviewAttributes(org.jboss.hal.core.finder.PreviewAttributes) SafeHtmlBuilder(com.google.gwt.safehtml.shared.SafeHtmlBuilder) Lists.asList(com.google.common.collect.Lists.asList) HTMLTableSectionElement(elemental2.dom.HTMLTableSectionElement) CSS.marginLeft5(org.jboss.hal.resources.CSS.marginLeft5) Predicate(java.util.function.Predicate) CSS.dropdownMenu(org.jboss.hal.resources.CSS.dropdownMenu) CSS.px(org.jboss.hal.resources.CSS.px) EventType.click(org.jboss.gwt.elemento.core.EventType.click) FinderPath(org.jboss.hal.core.finder.FinderPath) ServerGroupActions(org.jboss.hal.core.runtime.group.ServerGroupActions) ServerPreviewAttributes(org.jboss.hal.core.runtime.server.ServerPreviewAttributes) CSS.error(org.jboss.hal.resources.CSS.error) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) UIConstants(org.jboss.hal.resources.UIConstants) CSS.dropdownToggle(org.jboss.hal.resources.CSS.dropdownToggle) ServerResultEvent(org.jboss.hal.core.runtime.server.ServerResultEvent) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) SecurityContextRegistry(org.jboss.hal.meta.security.SecurityContextRegistry) HostResultHandler(org.jboss.hal.core.runtime.host.HostResultEvent.HostResultHandler) CSS.centerBlock(org.jboss.hal.resources.CSS.centerBlock) DomGlobal.setTimeout(elemental2.dom.DomGlobal.setTimeout) ModelNode(org.jboss.hal.dmr.ModelNode) Element(elemental2.dom.Element) CSS.selected(org.jboss.hal.resources.CSS.selected) MessageEvent(org.jboss.hal.spi.MessageEvent) ServerActionEvent(org.jboss.hal.core.runtime.server.ServerActionEvent) ServerResultHandler(org.jboss.hal.core.runtime.server.ServerResultEvent.ServerResultHandler) CSS.server(org.jboss.hal.resources.CSS.server) CSS.clickable(org.jboss.hal.resources.CSS.clickable) Function(java.util.function.Function) HashSet(java.util.HashSet) CSS.topology(org.jboss.hal.resources.CSS.topology) ServerGroupActionHandler(org.jboss.hal.core.runtime.group.ServerGroupActionEvent.ServerGroupActionHandler) AddressTemplate(org.jboss.hal.meta.AddressTemplate) Comparator.comparing(java.util.Comparator.comparing) CSS.spinner(org.jboss.hal.resources.CSS.spinner) CSS.ok(org.jboss.hal.resources.CSS.ok) CSS.warning(org.jboss.hal.resources.CSS.warning) DomGlobal.document(elemental2.dom.DomGlobal.document) CSS.suspended(org.jboss.hal.resources.CSS.suspended) Ids(org.jboss.hal.resources.Ids) HTMLTableColElement(elemental2.dom.HTMLTableColElement) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) CSS.disconnected(org.jboss.hal.resources.CSS.disconnected) PlaceRequest(com.gwtplatform.mvp.shared.proxy.PlaceRequest) Consumer(java.util.function.Consumer) DomGlobal.clearTimeout(elemental2.dom.DomGlobal.clearTimeout) Collectors.toList(java.util.stream.Collectors.toList) CSS.pullRight(org.jboss.hal.resources.CSS.pullRight) Resources(org.jboss.hal.resources.Resources) Format(org.jboss.hal.ballroom.Format) TopologyTasks.topology(org.jboss.hal.core.runtime.TopologyTasks.topology) CSS.height(org.jboss.hal.resources.CSS.height) CSS.empty(org.jboss.hal.resources.CSS.empty) Host(org.jboss.hal.core.runtime.host.Host) MEDIUM_TIMEOUT(org.jboss.hal.resources.UIConstants.MEDIUM_TIMEOUT) StaticItem(org.jboss.hal.core.finder.StaticItem) HTMLElement(elemental2.dom.HTMLElement) ArrayList(java.util.ArrayList) NodeList(elemental2.dom.NodeList) Lists.asList(com.google.common.collect.Lists.asList) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) FlowContext(org.jboss.hal.flow.FlowContext)

Aggregations

Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)34 Resources (org.jboss.hal.resources.Resources)32 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)30 StatementContext (org.jboss.hal.meta.StatementContext)30 Ids (org.jboss.hal.resources.Ids)30 EventBus (com.google.web.bindery.event.shared.EventBus)29 List (java.util.List)28 Finder (org.jboss.hal.core.finder.Finder)27 Metadata (org.jboss.hal.meta.Metadata)27 Inject (javax.inject.Inject)26 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)26 ModelNode (org.jboss.hal.dmr.ModelNode)24 MetadataRegistry (org.jboss.hal.meta.MetadataRegistry)24 Names (org.jboss.hal.resources.Names)24 Requires (org.jboss.hal.spi.Requires)24 AddressTemplate (org.jboss.hal.meta.AddressTemplate)23 Provider (javax.inject.Provider)20 Form (org.jboss.hal.ballroom.form.Form)20 AddResourceDialog (org.jboss.hal.core.mbui.dialog.AddResourceDialog)20 Flow.series (org.jboss.hal.flow.Flow.series)20