Search in sources :

Example 16 with Resources

use of org.jboss.hal.resources.Resources in project console by hal.

the class StoresPresenter method importCertificate.

void importCertificate(Metadata metadata, String name) {
    AddressTemplate template = metadata.getTemplate();
    String resource = Names.KEY_STORE + SPACE + name;
    metadata = metadata.forOperation(IMPORT_CERTIFICATE);
    Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(template.lastName(), IMPORT_CERTIFICATE), metadata).build();
    form.setSaveCallback((form1, changedValues) -> {
        ModelNode payload = form.getModel();
        String path = payload.get(PATH).asString();
        if (!payload.hasDefined(VALIDATE)) {
            payload.get(VALIDATE).set(false);
        }
        ResourceAddress address = template.resolve(statementContext, name);
        String alias = payload.get(ALIAS).asString();
        List<Task<FlowContext>> tasks = new ArrayList<>();
        tasks.add(flowContext -> {
            Operation operation = new Operation.Builder(address, IMPORT_CERTIFICATE).payload(payload).build();
            return dispatcher.execute(operation).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().importCertificateError(alias, path, resource, ex.getMessage())))).toCompletable();
        });
        tasks.add(flowContext -> {
            Operation operation = new Operation.Builder(KEY_STORE_TEMPLATE.resolve(statementContext, name), STORE).build();
            return dispatcher.execute(operation).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().storeError(resource, ex.getMessage())))).toCompletable();
        });
        tasks.add(flowContext -> {
            Operation operation = new Operation.Builder(address, READ_ALIASES_OPERATION).build();
            return dispatcher.execute(operation).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().readAliasesError(resource, ex.getMessage())))).toCompletable();
        });
        series(new FlowContext(progress.get()), tasks).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {

            @Override
            public void onSuccess(FlowContext flowContext) {
                MessageEvent.fire(getEventBus(), Message.success(resources.messages().importCertificateSuccess(alias, path, resource)));
            }

            @Override
            public void onError(FlowContext context, Throwable ex) {
                MessageEvent.fire(getEventBus(), Message.error(resources.messages().removeAliasError(alias, resource, ex.getMessage())));
            }
        });
    });
    Dialog dialog = new Dialog.Builder(resources.constants().importCertificate()).add(p().textContent(metadata.getDescription().getDescription()).element()).add(form.element()).primary(resources.constants().importt(), form::save).size(Dialog.Size.MEDIUM).closeOnEsc(true).cancel().build();
    dialog.registerAttachable(form);
    dialog.show();
    form.edit(new ModelNode());
}
Also used : AddressTemplate(org.jboss.hal.meta.AddressTemplate) Dialog(org.jboss.hal.ballroom.dialog.Dialog) Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) Date(java.util.Date) StatementContext(org.jboss.hal.meta.StatementContext) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Icons(org.jboss.hal.resources.Icons) Elements.p(org.jboss.gwt.elemento.core.Elements.p) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) HasPresenter(org.jboss.hal.core.mvp.HasPresenter) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) ModelNodeHelper.asNamedNodes(org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) FinderPath(org.jboss.hal.core.finder.FinderPath) FORM(org.jboss.hal.resources.Ids.FORM) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) AddressTemplates(org.jboss.hal.client.runtime.subsystem.elytron.AddressTemplates) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) HalView(org.jboss.hal.core.mvp.HalView) CalendarUtil(com.google.gwt.user.datepicker.client.CalendarUtil) 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) SupportsExpertMode(org.jboss.hal.core.mvp.SupportsExpertMode) ModelNode(org.jboss.hal.dmr.ModelNode) Elements.div(org.jboss.gwt.elemento.core.Elements.div) Alert(org.jboss.hal.ballroom.Alert) MessageEvent(org.jboss.hal.spi.MessageEvent) ProxyPlace(com.gwtplatform.mvp.client.proxy.ProxyPlace) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) Task(org.jboss.hal.flow.Task) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) ApplicationFinderPresenter(org.jboss.hal.core.mvp.ApplicationFinderPresenter) Requires(org.jboss.hal.spi.Requires) CompositeResult(org.jboss.hal.dmr.CompositeResult) ProxyCodeSplit(com.gwtplatform.mvp.client.annotations.ProxyCodeSplit) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Consumer(java.util.function.Consumer) Composite(org.jboss.hal.dmr.Composite) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) NameTokens(org.jboss.hal.meta.token.NameTokens) Resources(org.jboss.hal.resources.Resources) Format(org.jboss.hal.ballroom.Format) SuggestCapabilitiesAutoComplete(org.jboss.hal.ballroom.autocomplete.SuggestCapabilitiesAutoComplete) NamedNode(org.jboss.hal.dmr.NamedNode) Collections(java.util.Collections) Form(org.jboss.hal.ballroom.form.Form) Task(org.jboss.hal.flow.Task) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) ArrayList(java.util.ArrayList) Operation(org.jboss.hal.dmr.Operation) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) FlowContext(org.jboss.hal.flow.FlowContext) Dialog(org.jboss.hal.ballroom.dialog.Dialog) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 17 with Resources

use of org.jboss.hal.resources.Resources in project console by hal.

the class PasswordWizard method show.

public void show() {
    Constants constants = resources.constants();
    Wizard.Builder<PasswordContext, PasswordState> wb = new Wizard.Builder<>(constants.setIdentityPasswordTitle(), new PasswordContext());
    wb.addStep(PasswordState.CHOOSE_PASSWORD_TYPE, new ChoosePasswordTypeStep(resources)).addStep(PasswordState.CONFIGURATION, new ConfigurePasswordStep(resources, metadata)).addStep(PasswordState.REVIEW, new ReviewPasswordStep(resources, metadata)).onBack((context, currentState) -> {
        PasswordState previous = null;
        switch(currentState) {
            case CHOOSE_PASSWORD_TYPE:
                break;
            case CONFIGURATION:
                previous = PasswordState.CHOOSE_PASSWORD_TYPE;
                break;
            case REVIEW:
                previous = PasswordState.CONFIGURATION;
                break;
            default:
                break;
        }
        return previous;
    }).onNext((context, currentState) -> {
        PasswordState next = null;
        switch(currentState) {
            case CHOOSE_PASSWORD_TYPE:
                next = PasswordState.CONFIGURATION;
                break;
            case CONFIGURATION:
                next = PasswordState.REVIEW;
                break;
            case REVIEW:
                break;
            default:
                break;
        }
        return next;
    }).onFinish((wizard, context) -> {
        ResourceAddress address = metadata.getTemplate().resolve(statementContext, selectedRealm);
        Operation operation = new Operation.Builder(address, SET_PASSWORD).param(IDENTITY, selectedIdentity).param(context.type.name, context.model).build();
        LabelBuilder labelBuilder = new LabelBuilder();
        String type = labelBuilder.label(metadata.getTemplate().lastName());
        String resourceName = type + "" + selectedRealm;
        dispatcher.execute(operation, result -> MessageEvent.fire(eventBus, Message.success(resources.messages().setIdentityPasswordSuccess(selectedIdentity, resourceName))), (operation1, failure) -> MessageEvent.fire(eventBus, Message.error(resources.messages().setIdentityPasswordError(selectedIdentity, resourceName, failure))), (operation1, exception) -> MessageEvent.fire(eventBus, Message.error(resources.messages().setIdentityPasswordError(selectedIdentity, resourceName, exception.getMessage()))));
    });
    Wizard<PasswordContext, PasswordState> wizard = wb.build();
    wizard.show();
}
Also used : IDENTITY(org.jboss.hal.dmr.ModelDescriptionConstants.IDENTITY) Operation(org.jboss.hal.dmr.Operation) StatementContext(org.jboss.hal.meta.StatementContext) MessageEvent(org.jboss.hal.spi.MessageEvent) Wizard(org.jboss.hal.ballroom.wizard.Wizard) EventBus(com.google.web.bindery.event.shared.EventBus) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Resources(org.jboss.hal.resources.Resources) Constants(org.jboss.hal.resources.Constants) SET_PASSWORD(org.jboss.hal.dmr.ModelDescriptionConstants.SET_PASSWORD) Message(org.jboss.hal.spi.Message) Metadata(org.jboss.hal.meta.Metadata) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Constants(org.jboss.hal.resources.Constants) Operation(org.jboss.hal.dmr.Operation) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Wizard(org.jboss.hal.ballroom.wizard.Wizard)

Example 18 with Resources

use of org.jboss.hal.resources.Resources in project console by hal.

the class RealmsPresenter method addIdentity.

void addIdentity(AddressTemplate template, Metadata metadata, String name) {
    Metadata opMetadata = metadata.forOperation(ADD_IDENTITY);
    SafeHtml identityAttributeHelp = resources.messages().identityAttributeHelp();
    IdentityAttributeItem identityAttribute = new IdentityAttributeItem(Ids.asId(IDENTITY_ATTRIBUTE_MAPPING), IDENTITY_ATTRIBUTE_MAPPING);
    Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(template.lastName(), ADD_IDENTITY), opMetadata).unboundFormItem(identityAttribute, 1, identityAttributeHelp).build();
    form.attach();
    AddResourceDialog dialog = new AddResourceDialog(resources.constants().addIdentity(), form, (name1, model) -> {
        LabelBuilder labelBuilder = new LabelBuilder();
        String resourceName = labelBuilder.label(template.lastName()) + SPACE + name;
        String identity = model.get(IDENTITY).asString();
        ResourceAddress address = template.resolve(statementContext, name);
        List<Task<FlowContext>> tasks = new ArrayList<>();
        Task<FlowContext> addTask = flowContext -> {
            Operation addOp = new Operation.Builder(address, ADD_IDENTITY).param(IDENTITY, identity).build();
            return dispatcher.execute(addOp).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, ex.getMessage())))).toCompletable();
        };
        tasks.add(addTask);
        if (identityAttribute.getValue() != null) {
            identityAttribute.getValue().forEach((key, values) -> {
                Task<FlowContext> addAttribute = flowContext -> {
                    ModelNode modelValues = new ModelNode();
                    values.forEach(modelValues::add);
                    Operation addIdentAttributeOp = new Operation.Builder(address, ADD_IDENTITY_ATTRIBUTE).param(IDENTITY, identity).param(NAME, key).param(VALUE, modelValues).build();
                    return dispatcher.execute(addIdentAttributeOp).doOnError(ex -> MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, ex.getMessage())))).toCompletable();
                };
                tasks.add(addAttribute);
            });
        }
        series(new FlowContext(progress.get()), tasks).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {

            @Override
            public void onSuccess(FlowContext flowContext) {
                MessageEvent.fire(getEventBus(), Message.success(resources.messages().addSuccess(resources.constants().identity(), identity, resourceName)));
            }

            @Override
            public void onError(FlowContext context, Throwable throwable) {
                MessageEvent.fire(getEventBus(), Message.error(resources.messages().addError(resources.constants().identity(), identity, resourceName, throwable.getMessage())));
            }
        });
    });
    dialog.show();
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Dialog(org.jboss.hal.ballroom.dialog.Dialog) Provider(javax.inject.Provider) StatementContext(org.jboss.hal.meta.StatementContext) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) IDENTITY_ATTRIBUTE_MAPPING(org.jboss.hal.resources.Names.IDENTITY_ATTRIBUTE_MAPPING) Map(java.util.Map) Message(org.jboss.hal.spi.Message) HasPresenter(org.jboss.hal.core.mvp.HasPresenter) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) ModelNodeHelper.asNamedNodes(org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) FinderPath(org.jboss.hal.core.finder.FinderPath) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) AddressTemplates(org.jboss.hal.client.runtime.subsystem.elytron.AddressTemplates) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) HalView(org.jboss.hal.core.mvp.HalView) 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) SupportsExpertMode(org.jboss.hal.core.mvp.SupportsExpertMode) ModelNode(org.jboss.hal.dmr.ModelNode) PasswordWizard(org.jboss.hal.client.runtime.subsystem.elytron.wizardpassword.PasswordWizard) MessageEvent(org.jboss.hal.spi.MessageEvent) ProxyPlace(com.gwtplatform.mvp.client.proxy.ProxyPlace) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) Task(org.jboss.hal.flow.Task) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) ApplicationFinderPresenter(org.jboss.hal.core.mvp.ApplicationFinderPresenter) Requires(org.jboss.hal.spi.Requires) CompositeResult(org.jboss.hal.dmr.CompositeResult) ProxyCodeSplit(com.gwtplatform.mvp.client.annotations.ProxyCodeSplit) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Consumer(java.util.function.Consumer) Composite(org.jboss.hal.dmr.Composite) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) NameTokens(org.jboss.hal.meta.token.NameTokens) Resources(org.jboss.hal.resources.Resources) NamedNode(org.jboss.hal.dmr.NamedNode) Form(org.jboss.hal.ballroom.form.Form) Task(org.jboss.hal.flow.Task) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Metadata(org.jboss.hal.meta.Metadata) ArrayList(java.util.ArrayList) Operation(org.jboss.hal.dmr.Operation) FlowContext(org.jboss.hal.flow.FlowContext) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 19 with Resources

use of org.jboss.hal.resources.Resources in project console by hal.

the class ConfigurationChangesPresenter method launchAdd.

void launchAdd() {
    AddressTemplate template;
    if (environment.isStandalone()) {
        template = HOST_CONFIGURATION_CHANGES_TEMPLATE;
    } else {
        if (hostOnly) {
            template = HOST_CONFIGURATION_CHANGES_TEMPLATE;
        } else {
            template = PROFILE_CONFIGURATION_CHANGES_TEMPLATE.replaceWildcards(profile);
        }
    }
    metadataProcessor.lookup(template, progress.get(), new SuccessfulMetadataCallback(getEventBus(), resources) {

        @Override
        public void onMetadata(Metadata metadata) {
            String id = Ids.build(Ids.CONFIGURATION_CHANGES, Ids.ADD);
            Form<ModelNode> form = new OperationFormBuilder<>(id, metadata, ADD).build();
            ModelNode changeModel = new ModelNode();
            Dialog dialog = new Dialog.Builder(resources.constants().configurationChanges()).add(form.element()).primary(resources.constants().yes(), () -> {
                boolean valid = form.save();
                // if the form contains validation error, don't close the dialog
                if (valid) {
                    crud.addSingleton(Names.CONFIGURATION_CHANGES, template, form.getModel(), address -> reload());
                }
                return valid;
            }).secondary(resources.constants().cancel(), () -> true).closeIcon(true).closeOnEsc(true).build();
            dialog.registerAttachable(form);
            dialog.show();
            form.edit(changeModel);
        }
    });
}
Also used : AddressTemplate(org.jboss.hal.meta.AddressTemplate) Dialog(org.jboss.hal.ballroom.dialog.Dialog) Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) StatementContext(org.jboss.hal.meta.StatementContext) OPTIONAL(org.jboss.hal.meta.AddressTemplate.OPTIONAL) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CSS.formControlStatic(org.jboss.hal.resources.CSS.formControlStatic) HTMLElement(elemental2.dom.HTMLElement) Server(org.jboss.hal.core.runtime.server.Server) HasPresenter(org.jboss.hal.core.mvp.HasPresenter) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) Skeleton.applicationHeight(org.jboss.hal.ballroom.Skeleton.applicationHeight) CrudOperations(org.jboss.hal.core.CrudOperations) CONFIGURATION_CHANGES(org.jboss.hal.meta.token.NameTokens.CONFIGURATION_CHANGES) CSS.wrap(org.jboss.hal.resources.CSS.wrap) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) MARGIN_BIG(org.jboss.hal.ballroom.Skeleton.MARGIN_BIG) CSS.px(org.jboss.hal.resources.CSS.px) FinderPath(org.jboss.hal.core.finder.FinderPath) MetadataProcessor(org.jboss.hal.meta.processing.MetadataProcessor) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) HalView(org.jboss.hal.core.mvp.HalView) Optional(java.util.Optional) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) ModelNode(org.jboss.hal.dmr.ModelNode) Elements.div(org.jboss.gwt.elemento.core.Elements.div) ProxyPlace(com.gwtplatform.mvp.client.proxy.ProxyPlace) CSSProperties(elemental2.dom.CSSProperties) SuccessfulMetadataCallback(org.jboss.hal.meta.processing.SuccessfulMetadataCallback) Inject(javax.inject.Inject) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) ApplicationFinderPresenter(org.jboss.hal.core.mvp.ApplicationFinderPresenter) LARGE(org.jboss.hal.ballroom.dialog.Dialog.Size.LARGE) Requires(org.jboss.hal.spi.Requires) ProxyCodeSplit(com.gwtplatform.mvp.client.annotations.ProxyCodeSplit) HTMLPreElement(elemental2.dom.HTMLPreElement) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) PlaceRequest(com.gwtplatform.mvp.shared.proxy.PlaceRequest) ADD(org.jboss.hal.resources.Ids.ADD) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Elements.pre(org.jboss.gwt.elemento.core.Elements.pre) Resources(org.jboss.hal.resources.Resources) OperationFormBuilder(org.jboss.hal.core.mbui.form.OperationFormBuilder) Form(org.jboss.hal.ballroom.form.Form) OperationFormBuilder(org.jboss.hal.core.mbui.form.OperationFormBuilder) Form(org.jboss.hal.ballroom.form.Form) Dialog(org.jboss.hal.ballroom.dialog.Dialog) Metadata(org.jboss.hal.meta.Metadata) SuccessfulMetadataCallback(org.jboss.hal.meta.processing.SuccessfulMetadataCallback) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 20 with Resources

use of org.jboss.hal.resources.Resources in project console by hal.

the class ServerPreview method update.

@Override
public void update(Server server) {
    ServerStatusSwitch sss = new ServerStatusSwitch(serverActions) {

        @Override
        protected void onPending(Server server) {
            pending(resources.messages().serverPending(server.getName()));
            disableAllLinks();
        }

        @Override
        protected void onBootErrors(Server server) {
            error(resources.messages().serverBootErrors(server.getName()));
            disableAllLinksBut(bootErrorsLink);
        }

        @Override
        protected void onFailed(Server server) {
            error(resources.messages().serverFailed(server.getName()));
            if (server.isStandalone()) {
                disableAllLinks();
            } else {
                disableAllLinksBut(startLink);
            }
        }

        @Override
        protected void onAdminMode(Server server) {
            adminOnly(resources.messages().serverAdminMode(server.getName()));
            disableAllLinks();
        }

        @Override
        protected void onStarting(Server server) {
            adminOnly(resources.messages().serverAdminMode(server.getName()));
            disableAllLinks();
        }

        @Override
        protected void onSuspended(Server server) {
            suspended(resources.messages().serverSuspended(server.getName()));
            disableAllLinksBut(resumeLink);
        }

        @Override
        protected void onNeedsReload(Server server) {
            needsReload(resources.messages().serverNeedsReload(server.getName()));
            disableAllLinksBut(reloadLink);
        }

        @Override
        protected void onNeedsRestart(Server server) {
            needsRestart(resources.messages().serverNeedsRestart(server.getName()));
            disableAllLinksBut(restartLink);
        }

        @Override
        protected void onRunning(Server server) {
            running(resources.messages().serverRunning(server.getName()));
            if (server.isStandalone()) {
                disableAllLinks();
            } else {
                disableAllLinksBut(stopLink);
            }
        }

        @Override
        protected void onStopped(Server server) {
            alertContainer.className = alert + " " + alertInfo;
            alertIcon.className = Icons.STOPPED;
            alertText.innerHTML = resources.messages().serverStopped(server.getName()).asString();
            if (server.isStandalone()) {
                disableAllLinks();
            } else {
                disableAllLinksBut(startLink);
            }
        }

        @Override
        protected void onUnknown(Server server) {
            unknown(resources.messages().serverUndefined(server.getName()));
            disableAllLinks();
        }
    };
    sss.accept(server);
    ServerPreviewAttributes.refresh(server, attributes);
    boolean displayOpenPorts = server.isRunning() || server.needsRestart() || server.needsReload();
    if (displayOpenPorts) {
        List<Task<FlowContext>> tasks = new ArrayList<>();
        tasks.add(flowContext -> {
            ResourceAddress address = SELECTED_SERVER.resolve(statementContext);
            Operation operation = new Operation.Builder(address, READ_CHILDREN_NAMES_OPERATION).param(CHILD_TYPE, SOCKET_BINDING_GROUP).build();
            return dispatcher.execute(operation).doOnSuccess(result -> flowContext.push(result.get(0).asString())).toCompletable();
        });
        tasks.add(flowContext -> {
            String socketBnding = flowContext.pop();
            ResourceAddress address = SELECTED_SERVER.resolve(statementContext).add(SOCKET_BINDING_GROUP, socketBnding).add(SOCKET_BINDING, "*");
            ModelNode select = new ModelNode();
            select.add("bound-port").add(NAME);
            ModelNode where = new ModelNode();
            where.set("bound", true);
            Operation operation = new Operation.Builder(address, QUERY).param(SELECT, select).param(WHERE, where).build();
            return dispatcher.execute(operation).doOnSuccess(result -> {
                ModelNode openPortsModel = new ModelNode();
                result.asList().forEach(m -> {
                    ModelNode sbModel = m.get(RESULT);
                    openPortsModel.add(sbModel.get(NAME).asString(), sbModel.get("bound-port").asInt());
                    flowContext.push(openPortsModel);
                });
            }).toCompletable();
        });
        series(new FlowContext(progress.get()), tasks).subscribe(new SuccessfulOutcome<FlowContext>(eventBus, resources) {

            @Override
            public void onSuccess(FlowContext flowContext) {
                ModelNode openPorts = flowContext.pop();
                buildOpenPortsElement(openPorts);
            }
        });
        serverActions.readUrl(server, serverUrl);
    }
    Elements.setVisible(headerOpenPorts, displayOpenPorts);
    Elements.setVisible(ulOpenPorts, displayOpenPorts);
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) Provider(javax.inject.Provider) Constraint(org.jboss.hal.meta.security.Constraint) StatementContext(org.jboss.hal.meta.StatementContext) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Icons(org.jboss.hal.resources.Icons) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Task(org.jboss.hal.flow.Task) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) HTMLElement(elemental2.dom.HTMLElement) PreviewAttribute(org.jboss.hal.core.finder.PreviewAttributes.PreviewAttribute) PlaceManager(com.gwtplatform.mvp.client.proxy.PlaceManager) PreviewAttributes(org.jboss.hal.core.finder.PreviewAttributes) Server(org.jboss.hal.core.runtime.server.Server) Places(org.jboss.hal.core.mvp.Places) Names(org.jboss.hal.resources.Names) ServerActions(org.jboss.hal.core.runtime.server.ServerActions) PreviewAttributeFunction(org.jboss.hal.core.finder.PreviewAttributes.PreviewAttributeFunction) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) CSS(org.jboss.hal.resources.CSS) EventType.click(org.jboss.gwt.elemento.core.EventType.click) FinderPath(org.jboss.hal.core.finder.FinderPath) ServerPreviewAttributes(org.jboss.hal.core.runtime.server.ServerPreviewAttributes) PlaceRequest(com.gwtplatform.mvp.shared.proxy.PlaceRequest) List(java.util.List) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) UIConstants(org.jboss.hal.resources.UIConstants) HTMLLIElement(elemental2.dom.HTMLLIElement) NameTokens(org.jboss.hal.meta.token.NameTokens) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) Flow.series(org.jboss.hal.flow.Flow.series) RuntimePreview(org.jboss.hal.client.runtime.RuntimePreview) ServerColumn.serverConfigTemplate(org.jboss.hal.client.runtime.server.ServerColumn.serverConfigTemplate) Elements(org.jboss.gwt.elemento.core.Elements) Task(org.jboss.hal.flow.Task) Server(org.jboss.hal.core.runtime.server.Server) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) ArrayList(java.util.ArrayList) Operation(org.jboss.hal.dmr.Operation) FlowContext(org.jboss.hal.flow.FlowContext) ModelNode(org.jboss.hal.dmr.ModelNode)

Aggregations

Resources (org.jboss.hal.resources.Resources)44 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)41 EventBus (com.google.web.bindery.event.shared.EventBus)39 Ids (org.jboss.hal.resources.Ids)38 Operation (org.jboss.hal.dmr.Operation)37 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)37 Metadata (org.jboss.hal.meta.Metadata)37 Inject (javax.inject.Inject)36 ModelNode (org.jboss.hal.dmr.ModelNode)35 StatementContext (org.jboss.hal.meta.StatementContext)35 List (java.util.List)34 Provider (javax.inject.Provider)34 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)34 Progress (org.jboss.hal.flow.Progress)34 Message (org.jboss.hal.spi.Message)33 MessageEvent (org.jboss.hal.spi.MessageEvent)33 Flow.series (org.jboss.hal.flow.Flow.series)31 FlowContext (org.jboss.hal.flow.FlowContext)31 Footer (org.jboss.hal.spi.Footer)31 Names (org.jboss.hal.resources.Names)30