use of org.jboss.hal.dmr.dispatch.Dispatcher 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();
}
use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.
the class ClusteringPresenter method addClusterConnection.
void addClusterConnection(ServerSubResource ssr) {
Metadata metadata = metadataRegistry.lookup(ssr.template);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(ssr.baseId, Ids.ADD), metadata).unboundFormItem(new NameItem(), 0).fromRequestProperties().requiredOnly().build();
List<AddressTemplate> templates = asList(SELECTED_SERVER_TEMPLATE.append(CONNECTOR + EQ_WILDCARD), SELECTED_SERVER_TEMPLATE.append(IN_VM_CONNECTOR + EQ_WILDCARD), SELECTED_SERVER_TEMPLATE.append(HTTP_CONNECTOR + EQ_WILDCARD), SELECTED_SERVER_TEMPLATE.append(REMOTE_CONNECTOR + EQ_WILDCARD));
form.getFormItem(CONNECTOR_NAME).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, templates));
new AddResourceDialog(resources.messages().addResourceTitle(ssr.type), form, (name, model) -> {
ResourceAddress address = SELECTED_SERVER_TEMPLATE.append(ssr.resource + "=" + name).resolve(statementContext);
crud.add(ssr.type, name, address, model, (n, a) -> reload());
}).show();
}
use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.
the class ClusteringPresenter method showBroadcastOrDiscoveryGroupAddDialog.
void showBroadcastOrDiscoveryGroupAddDialog(ServerSubResource ssr, Consumer<ModelNodeForm.Builder<ModelNode>> formBuilderAugmenter, Consumer<Form<ModelNode>> formAugmenter) {
Metadata metadata = metadataRegistry.lookup(ssr.template);
NameItem nameItem = new NameItem();
ModelNodeForm.Builder<ModelNode> formBuilder = new ModelNodeForm.Builder<>(Ids.build(ssr.baseId, Ids.ADD), metadata).unboundFormItem(nameItem, 0).fromRequestProperties().include(JGROUPS_CLUSTER, SOCKET_BINDING).unsorted();
formBuilderAugmenter.accept(formBuilder);
Form<ModelNode> form = formBuilder.build();
formAugmenter.accept(form);
// validation that requires one of jgroups-cluster and socket-binding to be configured
FormValidation<ModelNode> jgroupsOrSocketValidation = new FormValidation<ModelNode>() {
@Override
public ValidationResult validate(Form<ModelNode> form) {
if (form.getFormItem(JGROUPS_CLUSTER).isEmpty() && form.getFormItem(SOCKET_BINDING).isEmpty()) {
return ValidationResult.invalid(resources.messages().jgroupsClusterOrSocketBindingMustBeSet());
}
return ValidationResult.OK;
}
};
form.getFormItem(SOCKET_BINDING).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, SOCKET_BINDING_TEMPLATE));
form.addFormValidation(jgroupsOrSocketValidation);
new AddResourceDialog(resources.messages().addResourceTitle(ssr.type), form, (name, model) -> {
name = nameItem.getValue();
ResourceAddress address = SELECTED_SERVER_TEMPLATE.append(ssr.resource + "=" + name).resolve(statementContext);
crud.add(ssr.type, name, address, model, (n, a) -> reload());
}).show();
}
use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.
the class ConnectionPresenter method addHttp.
void addHttp(ServerSubResource ssr) {
Metadata metadata = metadataRegistry.lookup(ssr.template);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(ssr.baseId, Ids.ADD), metadata).unboundFormItem(new NameItem(), 0).fromRequestProperties().requiredOnly().build();
form.getFormItem(HTTP_LISTENER).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, AddressTemplate.of("/{selected.profile}/subsystem=undertow/server=*/http-listener=*")));
new AddResourceDialog(ssr.type, form, (name, model) -> {
ResourceAddress address = SELECTED_SERVER_TEMPLATE.append(ssr.resource + EQ + name).resolve(statementContext);
crud.add(ssr.type, name, address, model, (n, a) -> reload());
}).show();
}
use of org.jboss.hal.dmr.dispatch.Dispatcher in project console by hal.
the class ConnectionPresenter method addRemote.
void addRemote(ServerSubResource ssr) {
Metadata metadata = metadataRegistry.lookup(ssr.template);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.build(ssr.baseId, Ids.ADD), metadata).unboundFormItem(new NameItem(), 0).fromRequestProperties().requiredOnly().build();
form.getFormItem(SOCKET_BINDING).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, AddressTemplate.of("/socket-binding-group=*/socket-binding=*")));
new AddResourceDialog(ssr.type, form, (name, model) -> {
ResourceAddress address = SELECTED_SERVER_TEMPLATE.append(ssr.resource + EQ + name).resolve(statementContext);
crud.add(ssr.type, name, address, model, (n, a) -> reload());
}).show();
}
Aggregations