Search in sources :

Example 1 with ResourceCheck

use of org.jboss.hal.dmr.ResourceCheck in project console by hal.

the class SecurityDomainPresenter method addModule.

void addModule(Module module) {
    // first check for (and add if necessary) the intermediate singleton
    // then add the final resource
    AddressTemplate singletonTemplate = SELECTED_SECURITY_DOMAIN_TEMPLATE.append(module.singleton);
    series(new FlowContext(progress.get()), new ResourceCheck(dispatcher, singletonTemplate.resolve(statementContext)), context -> {
        int status = context.pop();
        if (status == 200) {
            return Completable.complete();
        } else {
            Operation operation = new Operation.Builder(singletonTemplate.resolve(statementContext), ADD).build();
            return dispatcher.execute(operation).toCompletable();
        }
    }).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {

        @Override
        public void onSuccess(FlowContext context) {
            AddressTemplate metadataTemplate = SECURITY_DOMAIN_TEMPLATE.append(module.singleton).append(module.resource + EQ_WILDCARD);
            AddressTemplate selectionTemplate = SELECTED_SECURITY_DOMAIN_TEMPLATE.append(module.singleton).append(module.resource + EQ_WILDCARD);
            Metadata metadata = metadataRegistry.lookup(metadataTemplate);
            AddResourceDialog dialog = new AddResourceDialog(module.id, resources.messages().addResourceTitle(module.type), metadata, (name, modelNode) -> {
                ResourceAddress address = selectionTemplate.resolve(statementContext, name);
                crud.add(module.type, name, address, modelNode, (n, a) -> reload());
            });
            dialog.show();
        }
    });
}
Also used : AddressTemplate(org.jboss.hal.meta.AddressTemplate) Provider(javax.inject.Provider) StatementContext(org.jboss.hal.meta.StatementContext) SELECTED_SECURITY_DOMAIN_TEMPLATE(org.jboss.hal.client.configuration.subsystem.security.AddressTemplates.SELECTED_SECURITY_DOMAIN_TEMPLATE) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) SECURITY_DOMAIN_TEMPLATE(org.jboss.hal.client.configuration.subsystem.security.AddressTemplates.SECURITY_DOMAIN_TEMPLATE) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) TRUST_MODULE_ADDRESS(org.jboss.hal.client.configuration.subsystem.security.AddressTemplates.TRUST_MODULE_ADDRESS) Map(java.util.Map) Message(org.jboss.hal.spi.Message) NAME(org.jboss.hal.dmr.ModelDescriptionConstants.NAME) FinishReset(org.jboss.hal.ballroom.form.Form.FinishReset) READ_RESOURCE_OPERATION(org.jboss.hal.dmr.ModelDescriptionConstants.READ_RESOURCE_OPERATION) Metadata(org.jboss.hal.meta.Metadata) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Names(org.jboss.hal.resources.Names) CrudOperations(org.jboss.hal.core.CrudOperations) Table(org.jboss.hal.ballroom.table.Table) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) FinderPath(org.jboss.hal.core.finder.FinderPath) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) SelectionAwareStatementContext(org.jboss.hal.meta.SelectionAwareStatementContext) Flow.series(org.jboss.hal.flow.Flow.series) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) SECURITY_DOMAIN(org.jboss.hal.meta.token.NameTokens.SECURITY_DOMAIN) SupportsExpertMode(org.jboss.hal.core.mvp.SupportsExpertMode) ModelNode(org.jboss.hal.dmr.ModelNode) Completable(rx.Completable) MessageEvent(org.jboss.hal.spi.MessageEvent) ProxyPlace(com.gwtplatform.mvp.client.proxy.ProxyPlace) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) SECURITY_DOMAIN_ADDRESS(org.jboss.hal.client.configuration.subsystem.security.AddressTemplates.SECURITY_DOMAIN_ADDRESS) ADD(org.jboss.hal.dmr.ModelDescriptionConstants.ADD) FlowContext(org.jboss.hal.flow.FlowContext) Inject(javax.inject.Inject) Progress(org.jboss.hal.flow.Progress) AddressTemplate(org.jboss.hal.meta.AddressTemplate) 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) FinderPathFactory(org.jboss.hal.core.finder.FinderPathFactory) EventBus(com.google.web.bindery.event.shared.EventBus) PlaceRequest(com.gwtplatform.mvp.shared.proxy.PlaceRequest) SECURITY(org.jboss.hal.dmr.ModelDescriptionConstants.SECURITY) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) MbuiPresenter(org.jboss.hal.core.mbui.MbuiPresenter) Resources(org.jboss.hal.resources.Resources) MbuiView(org.jboss.hal.core.mbui.MbuiView) NamedNode(org.jboss.hal.dmr.NamedNode) Form(org.jboss.hal.ballroom.form.Form) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Metadata(org.jboss.hal.meta.Metadata) Operation(org.jboss.hal.dmr.Operation) FlowContext(org.jboss.hal.flow.FlowContext)

Example 2 with ResourceCheck

use of org.jboss.hal.dmr.ResourceCheck in project console by hal.

the class CacheColumn method addCache.

private void addCache(CacheType cacheType) {
    Metadata metadata = metadataRegistry.lookup(cacheType.template);
    AddResourceDialog dialog = new AddResourceDialog(Ids.build(cacheType.baseId, Ids.ADD), resources.messages().addResourceTitle(cacheType.type), metadata, (name, model) -> {
        String cacheContainer = findCacheContainer(getFinder().getContext().getPath());
        ResourceAddress address = cacheType.template.resolve(statementContext, cacheContainer, name);
        if (cacheType.equals(CacheType.LOCAL)) {
            crud.add(cacheType.type, name, address, model, (n, a) -> refresh(Ids.build(cacheType.baseId, name)));
        } else {
            ResourceAddress jgroupsAddress = AddressTemplates.TRANSPORT_JGROUPS_TEMPLATE.resolve(statementContext, cacheContainer);
            ResourceCheck check = new ResourceCheck(dispatcher, jgroupsAddress);
            Task<FlowContext> add = context -> {
                Operation addJgroups = new Operation.Builder(jgroupsAddress, ADD).build();
                int status = context.pop();
                if (status == 200) {
                    context.set(JGROUPS_ADDITION_STATUS, false);
                    return Completable.complete();
                } else {
                    context.set(JGROUPS_ADDITION_STATUS, true);
                    return dispatcher.execute(addJgroups).toCompletable();
                }
            };
            series(new FlowContext(progress.get()), check, add).subscribe(new SuccessfulOutcome<FlowContext>(eventBus, resources) {

                @Override
                public void onSuccess(FlowContext context) {
                    if (context.get(JGROUPS_ADDITION_STATUS).equals(true)) {
                        MessageEvent.fire(eventBus, Message.success(resources.messages().addResourceSuccess(Names.TRANSPORT, Names.JGROUPS)));
                    }
                    crud.add(cacheType.type, name, address, model, (n, a) -> refresh(Ids.build(cacheType.baseId, name)));
                }
            });
        }
    });
    dialog.getForm().<String>getFormItem(NAME).addValidationHandler(createUniqueValidation());
    dialog.show();
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) AddressTemplates(org.jboss.hal.client.configuration.subsystem.infinispan.AddressTemplates) Provider(javax.inject.Provider) 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) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) FinderSegment(org.jboss.hal.core.finder.FinderSegment) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Icons(org.jboss.hal.resources.Icons) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) Metadata(org.jboss.hal.meta.Metadata) Places(org.jboss.hal.core.mvp.Places) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Names(org.jboss.hal.resources.Names) CrudOperations(org.jboss.hal.core.CrudOperations) Collections.emptyList(java.util.Collections.emptyList) FinderPath(org.jboss.hal.core.finder.FinderPath) List(java.util.List) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) CLEAR_SELECTION(org.jboss.hal.core.finder.FinderColumn.RefreshMode.CLEAR_SELECTION) Flow.series(org.jboss.hal.flow.Flow.series) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) Arrays.stream(java.util.Arrays.stream) Completable(rx.Completable) 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) Property(org.jboss.hal.dmr.Property) Task(org.jboss.hal.flow.Task) Progress(org.jboss.hal.flow.Progress) FinderColumn(org.jboss.hal.core.finder.FinderColumn) ColumnActionFactory(org.jboss.hal.core.finder.ColumnActionFactory) Requires(org.jboss.hal.spi.Requires) 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) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) Resources(org.jboss.hal.resources.Resources) Collections(java.util.Collections) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Metadata(org.jboss.hal.meta.Metadata) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Operation(org.jboss.hal.dmr.Operation) FlowContext(org.jboss.hal.flow.FlowContext)

Example 3 with ResourceCheck

use of org.jboss.hal.dmr.ResourceCheck in project console by hal.

the class DestinationPresenter method addSecuritySettingRole.

void addSecuritySettingRole() {
    Metadata metadata = metadataRegistry.lookup(ROLE_TEMPLATE);
    TextBoxItem patternItem = new TextBoxItem(PATTERN, resources.constants().pattern());
    patternItem.setRequired(true);
    TextBoxItem roleItem = new TextBoxItem(ROLE, resources.constants().role());
    roleItem.setRequired(true);
    Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.MESSAGING_SECURITY_SETTING_ROLE_ADD, metadata).unboundFormItem(patternItem, 0).unboundFormItem(roleItem, 1).fromRequestProperties().requiredOnly().build();
    new AddResourceDialog(Names.SECURITY_SETTING, form, (name, model) -> {
        String pattern = patternItem.getValue();
        ResourceAddress securitySettingAddress = SELECTED_SERVER_TEMPLATE.append(SECURITY_SETTING + EQUALS + pattern).resolve(statementContext);
        ResourceAddress roleAddress = SELECTED_SERVER_TEMPLATE.append(SECURITY_SETTING + EQUALS + pattern).append(ROLE + EQUALS + roleItem.getValue()).resolve(statementContext);
        ResourceCheck check = new ResourceCheck(dispatcher, securitySettingAddress);
        Task<FlowContext> add = context -> {
            Operation addSecuritySetting = new Operation.Builder(securitySettingAddress, ADD).build();
            Operation addRole = new Operation.Builder(roleAddress, ADD).payload(model).build();
            int status = context.pop();
            if (status == 404) {
                return dispatcher.execute(new Composite(addSecuritySetting, addRole)).toCompletable();
            } else {
                return dispatcher.execute(addRole).toCompletable();
            }
        };
        series(new FlowContext(progress.get()), check, add).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {

            @Override
            public void onSuccess(FlowContext context) {
                MessageEvent.fire(getEventBus(), Message.success(resources.messages().addResourceSuccess(Names.SECURITY_SETTING, pattern + "/" + name)));
                reload();
            }
        });
    }).show();
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Provider(javax.inject.Provider) 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) Message(org.jboss.hal.spi.Message) FinishReset(org.jboss.hal.ballroom.form.Form.FinishReset) Metadata(org.jboss.hal.meta.Metadata) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Names(org.jboss.hal.resources.Names) ModelNodeHelper.asNamedNodes(org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes) CrudOperations(org.jboss.hal.core.CrudOperations) NameToken(com.gwtplatform.mvp.client.annotations.NameToken) FinderPath(org.jboss.hal.core.finder.FinderPath) List(java.util.List) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) Flow.series(org.jboss.hal.flow.Flow.series) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) SupportsExpertMode(org.jboss.hal.core.mvp.SupportsExpertMode) ModelNode(org.jboss.hal.dmr.ModelNode) Completable(rx.Completable) 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) 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) NameItem(org.jboss.hal.core.mbui.dialog.NameItem) Requires(org.jboss.hal.spi.Requires) ProxyCodeSplit(com.gwtplatform.mvp.client.annotations.ProxyCodeSplit) AddressTemplates(org.jboss.hal.client.configuration.subsystem.messaging.AddressTemplates) 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) 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) MbuiView(org.jboss.hal.core.mbui.MbuiView) NamedNode(org.jboss.hal.dmr.NamedNode) Form(org.jboss.hal.ballroom.form.Form) Task(org.jboss.hal.flow.Task) Composite(org.jboss.hal.dmr.Composite) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Metadata(org.jboss.hal.meta.Metadata) ResourceCheck(org.jboss.hal.dmr.ResourceCheck) Operation(org.jboss.hal.dmr.Operation) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) FlowContext(org.jboss.hal.flow.FlowContext) TextBoxItem(org.jboss.hal.ballroom.form.TextBoxItem) ModelNode(org.jboss.hal.dmr.ModelNode) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome)

Aggregations

EventBus (com.google.web.bindery.event.shared.EventBus)3 Inject (javax.inject.Inject)3 Provider (javax.inject.Provider)3 CrudOperations (org.jboss.hal.core.CrudOperations)3 SuccessfulOutcome (org.jboss.hal.core.SuccessfulOutcome)3 Finder (org.jboss.hal.core.finder.Finder)3 FinderPath (org.jboss.hal.core.finder.FinderPath)3 AddResourceDialog (org.jboss.hal.core.mbui.dialog.AddResourceDialog)3 Operation (org.jboss.hal.dmr.Operation)3 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)3 ResourceCheck (org.jboss.hal.dmr.ResourceCheck)3 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)3 Flow.series (org.jboss.hal.flow.Flow.series)3 FlowContext (org.jboss.hal.flow.FlowContext)3 Progress (org.jboss.hal.flow.Progress)3 Metadata (org.jboss.hal.meta.Metadata)3 MetadataRegistry (org.jboss.hal.meta.MetadataRegistry)3 StatementContext (org.jboss.hal.meta.StatementContext)3 Ids (org.jboss.hal.resources.Ids)3 Names (org.jboss.hal.resources.Names)3