Search in sources :

Example 11 with Environment

use of org.jboss.hal.config.Environment in project console by hal.

the class TestStep method testConnection.

private void testConnection() {
    Context context = wizard().getContext();
    List<Task<FlowContext>> tasks = new ArrayList<>();
    if (!context.isCreated()) {
        // add data source
        tasks.add(flowContext -> dispatcher.execute(addOperation(context, statementContext)).doOnSuccess((CompositeResult result) -> context.setCreated(true)).doOnError(throwable -> {
            flowContext.set(WIZARD_TITLE, resources.constants().testConnectionError());
            flowContext.set(WIZARD_TEXT, resources.messages().dataSourceAddError());
        }).toCompletable());
    }
    // check running server(s)
    tasks.addAll(runningServers(environment, dispatcher, properties(PROFILE_NAME, statementContext.selectedProfile())));
    // test connection
    tasks.add(flowContext -> {
        List<Server> servers = flowContext.get(TopologyTasks.SERVERS);
        ResourceAddress address;
        if (!servers.isEmpty()) {
            Server server = servers.get(0);
            address = server.getServerAddress();
        } else if (environment.isStandalone()) {
            address = ResourceAddress.root();
        } else {
            flowContext.set(WIZARD_TITLE, resources.constants().testConnectionError());
            flowContext.set(WIZARD_TEXT, SafeHtmlUtils.fromString(resources.constants().noRunningServers()));
            return Completable.error(new FlowException(resources.messages().testConnectionErrorDomain(), flowContext));
        }
        address.add(SUBSYSTEM, DATASOURCES).add(context.dataSource.isXa() ? XA_DATA_SOURCE : DATA_SOURCE, context.dataSource.getName());
        Operation operation = new Operation.Builder(address, TEST_CONNECTION_IN_POOL).build();
        return dispatcher.execute(operation).doOnError(throwable -> {
            flowContext.set(WIZARD_TITLE, resources.constants().testConnectionError());
            flowContext.set(WIZARD_TEXT, resources.messages().testConnectionError(context.dataSource.getName()));
        }).toCompletable();
    });
    series(new FlowContext(progress.get()), tasks).subscribe(new Outcome<FlowContext>() {

        @Override
        public void onError(FlowContext flowContext, Throwable error) {
            String title;
            SafeHtml text;
            if (flowContext == null) {
                title = resources.constants().unknownError();
                text = resources.messages().unknownError();
            } else {
                title = flowContext.get(WIZARD_TITLE);
                text = flowContext.get(WIZARD_TEXT);
            }
            wizard().showError(title, text, error.getMessage(), false);
        }

        @Override
        public void onSuccess(FlowContext flowContext) {
            wizard().showSuccess(resources.constants().testConnectionSuccess(), resources.messages().testConnectionSuccess(context.dataSource.getName()), false);
        }
    });
}
Also used : StatementContext(org.jboss.hal.meta.StatementContext) FlowContext(org.jboss.hal.flow.FlowContext) Completable(rx.Completable) DataSourceWizard.addOperation(org.jboss.hal.client.configuration.subsystem.datasource.wizard.DataSourceWizard.addOperation) CSS.blankSlatePf(org.jboss.hal.resources.CSS.blankSlatePf) Elements.div(org.jboss.gwt.elemento.core.Elements.div) Provider(javax.inject.Provider) Environment(org.jboss.hal.config.Environment) StatementContext(org.jboss.hal.meta.StatementContext) CSS.btnLg(org.jboss.hal.resources.CSS.btnLg) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) FlowContext(org.jboss.hal.flow.FlowContext) Outcome(org.jboss.hal.flow.Outcome) ArrayList(java.util.ArrayList) CSS.btnPrimary(org.jboss.hal.resources.CSS.btnPrimary) Task(org.jboss.hal.flow.Task) TopologyTasks(org.jboss.hal.core.runtime.TopologyTasks) Progress(org.jboss.hal.flow.Progress) HTMLElement(elemental2.dom.HTMLElement) TopologyTasks.runningServers(org.jboss.hal.core.runtime.TopologyTasks.runningServers) Server(org.jboss.hal.core.runtime.server.Server) ModelNodeHelper.properties(org.jboss.hal.dmr.ModelNodeHelper.properties) SafeHtmlUtils(com.google.gwt.safehtml.shared.SafeHtmlUtils) Elements.button(org.jboss.gwt.elemento.core.Elements.button) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) EventType.click(org.jboss.gwt.elemento.core.EventType.click) CSS.btn(org.jboss.hal.resources.CSS.btn) List(java.util.List) WizardStep(org.jboss.hal.ballroom.wizard.WizardStep) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) FlowException(org.jboss.hal.flow.FlowException) Flow.series(org.jboss.hal.flow.Flow.series) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) Task(org.jboss.hal.flow.Task) Server(org.jboss.hal.core.runtime.server.Server) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CompositeResult(org.jboss.hal.dmr.CompositeResult) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) ArrayList(java.util.ArrayList) DataSourceWizard.addOperation(org.jboss.hal.client.configuration.subsystem.datasource.wizard.DataSourceWizard.addOperation) Operation(org.jboss.hal.dmr.Operation) FlowContext(org.jboss.hal.flow.FlowContext) FlowException(org.jboss.hal.flow.FlowException)

Example 12 with Environment

use of org.jboss.hal.config.Environment in project console by hal.

the class EjbView method init.

@PostConstruct
void init() {
    StatementContext statementContext = mbuiContext.statementContext();
    if (ManagementModel.supportsEjbApplicationSecurityDomain(environment().getManagementVersion())) {
        AddressTemplate template = AddressTemplate.of("/{selected.profile}/subsystem=ejb3/application-security-domain=*");
        Metadata metadata = mbuiContext.metadataRegistry().lookup(template);
        appSecurityDomainTable = new ModelNodeTable.Builder<NamedNode>(Ids.EJB3_APPLICATION_SECURITY_DOMAIN_TABLE, metadata).button(mbuiContext.tableButtonFactory().add(Ids.EJB3_APPLICATION_SECURITY_DOMAIN_ADD, Names.APPLICATION_SECURITY_DOMAIN, template, (name, address) -> presenter.reload())).button(mbuiContext.tableButtonFactory().remove(Names.APPLICATION_SECURITY_DOMAIN, template, (api) -> api.selectedRow().getName(), () -> presenter.reload())).column(NAME, (cell, type, row, meta) -> row.getName()).build();
        appSecurityDomainForm = new ModelNodeForm.Builder<NamedNode>(Ids.EJB3_APPLICATION_SECURITY_DOMAIN_FORM, metadata).onSave((form, changedValues) -> {
            String name = form.getModel().getName();
            saveForm(Names.APPLICATION_SECURITY_DOMAIN, name, template.resolve(statementContext, name), changedValues, metadata);
        }).prepareReset(form -> {
            String name = form.getModel().getName();
            resetForm(Names.APPLICATION_SECURITY_DOMAIN, name, template.resolve(statementContext, name), form, metadata);
        }).build();
        HTMLElement section = section().add(h(1).textContent(Names.APPLICATION_SECURITY_DOMAIN)).add(p().textContent(metadata.getDescription().getDescription())).add(appSecurityDomainTable).add(appSecurityDomainForm).element();
        navigation.insertPrimary(Ids.EJB3_APPLICATION_SECURITY_DOMAIN_ITEM, null, Names.SECURITY_DOMAIN, fontAwesome("link"), section);
    }
    Dispatcher dispatcher = mbuiContext.dispatcher();
    configurationForm.getFormItem(DEFAULT_SFSB_CACHE).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, CACHE_TEMPLATE));
    configurationForm.getFormItem(DEFAULT_SFSB_PASSIVATION_DISABLED_CACHE).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, CACHE_TEMPLATE));
    configurationForm.getFormItem(DEFAULT_SLSB_INSTANCE_POOL).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, BEAN_POOL_TEMPLATE));
    configurationForm.getFormItem(DEFAULT_SECURITY_DOMAIN).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, SECURITY_DOMAIN_TEMPLATE));
    cacheForm.getFormItem(PASSIVATION_STORE).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, PASSIVATION_TEMPLATE));
}
Also used : AddressTemplate(org.jboss.hal.meta.AddressTemplate) ModelNode(org.jboss.hal.dmr.ModelNode) Environment(org.jboss.hal.config.Environment) StatementContext(org.jboss.hal.meta.StatementContext) ModelNodeTable(org.jboss.hal.core.mbui.table.ModelNodeTable) SECURITY_DOMAIN_TEMPLATE(org.jboss.hal.client.configuration.subsystem.security.AddressTemplates.SECURITY_DOMAIN_TEMPLATE) MbuiViewImpl(org.jboss.hal.core.mbui.MbuiViewImpl) ManagementModel(org.jboss.hal.meta.ManagementModel) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) Elements.section(org.jboss.gwt.elemento.core.Elements.section) AddressTemplate(org.jboss.hal.meta.AddressTemplate) MbuiElement(org.jboss.hal.spi.MbuiElement) Elements.p(org.jboss.gwt.elemento.core.Elements.p) HTMLElement(elemental2.dom.HTMLElement) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) Elements.h(org.jboss.gwt.elemento.core.Elements.h) ModelNodeHelper.asNamedNodes(org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes) Table(org.jboss.hal.ballroom.table.Table) Ids(org.jboss.hal.resources.Ids) ReadChildrenAutoComplete(org.jboss.hal.ballroom.autocomplete.ReadChildrenAutoComplete) VerticalNavigation(org.jboss.hal.ballroom.VerticalNavigation) ModelNodeHelper.failSafePropertyList(org.jboss.hal.dmr.ModelNodeHelper.failSafePropertyList) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) MbuiContext(org.jboss.hal.core.mbui.MbuiContext) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) PostConstruct(javax.annotation.PostConstruct) MbuiView(org.jboss.hal.spi.MbuiView) NamedNode(org.jboss.hal.dmr.NamedNode) AddressTemplates(org.jboss.hal.client.configuration.subsystem.ejb.AddressTemplates) CSS.fontAwesome(org.jboss.hal.resources.CSS.fontAwesome) Form(org.jboss.hal.ballroom.form.Form) ModelNodeTable(org.jboss.hal.core.mbui.table.ModelNodeTable) HTMLElement(elemental2.dom.HTMLElement) Metadata(org.jboss.hal.meta.Metadata) NamedNode(org.jboss.hal.dmr.NamedNode) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) ReadChildrenAutoComplete(org.jboss.hal.ballroom.autocomplete.ReadChildrenAutoComplete) StatementContext(org.jboss.hal.meta.StatementContext) PostConstruct(javax.annotation.PostConstruct)

Example 13 with Environment

use of org.jboss.hal.config.Environment in project console by hal.

the class ResourceDescriptionStatementContextTest method setUp.

@Before
public void setUp() throws Exception {
    Environment environment = mock(Environment.class);
    statementContext = new ResourceDescriptionStatementContext(new TestableStatementContext(), environment);
}
Also used : Environment(org.jboss.hal.config.Environment) TestableStatementContext(org.jboss.hal.meta.TestableStatementContext) Before(org.junit.Before)

Aggregations

Environment (org.jboss.hal.config.Environment)13 ArrayList (java.util.ArrayList)9 List (java.util.List)9 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)9 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)9 HTMLElement (elemental2.dom.HTMLElement)8 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)8 FlowContext (org.jboss.hal.flow.FlowContext)8 Ids (org.jboss.hal.resources.Ids)8 Names (org.jboss.hal.resources.Names)8 Resources (org.jboss.hal.resources.Resources)8 Provider (javax.inject.Provider)7 Operation (org.jboss.hal.dmr.Operation)7 Flow.series (org.jboss.hal.flow.Flow.series)7 Progress (org.jboss.hal.flow.Progress)7 EventBus (com.google.web.bindery.event.shared.EventBus)6 Inject (javax.inject.Inject)6 CompositeResult (org.jboss.hal.dmr.CompositeResult)6 SafeHtml (com.google.gwt.safehtml.shared.SafeHtml)5 Collectors.toList (java.util.stream.Collectors.toList)5