in modules/frontend/app/configuration/components/page-configure-advanced/components/cluster-edit-form/controller.ts [50:138]
$onInit() {
this.available = this.IgniteVersion.available.bind(this.IgniteVersion);
const rebuildDropdowns = () => {
this.eventStorage = [
{value: 'Memory', label: 'Memory'},
{value: 'Custom', label: 'Custom'}
];
this.marshallerVariant = [
{value: 'JdkMarshaller', label: 'JdkMarshaller'},
{value: null, label: 'Default'}
];
this.failureHandlerVariant = [
{value: 'RestartProcess', label: 'Restart process'},
{value: 'StopNodeOnHalt', label: 'Try stop with timeout'},
{value: 'StopNode', label: 'Stop on critical error'},
{value: 'Noop', label: 'Disabled'},
{value: 'Custom', label: 'Custom'},
{value: null, label: 'Default'}
];
this.ignoredFailureTypes = [
{value: 'SEGMENTATION', label: 'SEGMENTATION'},
{value: 'SYSTEM_WORKER_TERMINATION', label: 'SYSTEM_WORKER_TERMINATION'},
{value: 'SYSTEM_WORKER_BLOCKED', label: 'SYSTEM_WORKER_BLOCKED'},
{value: 'CRITICAL_ERROR', label: 'CRITICAL_ERROR'},
{value: 'SYSTEM_CRITICAL_OPERATION_TIMEOUT', label: 'SYSTEM_CRITICAL_OPERATION_TIMEOUT'}
];
if (this.available('2.0.0')) {
this.eventStorage.push({value: null, label: 'Disabled'});
this.eventGroups = _.filter(this.IgniteEventGroups, ({value}) => value !== 'EVTS_SWAPSPACE');
_.forEach(this.eventGroups, (grp) => grp.events = _.filter(grp.events, (evt) => evt.indexOf('SWAP') < 0));
}
else {
this.eventGroups = this.IgniteEventGroups;
this.marshallerVariant.splice(0, 0, {value: 'OptimizedMarshaller', label: 'OptimizedMarshaller'});
}
this.eventTypes = [];
_.forEach(this.eventGroups, (grp) => {
_.forEach(grp.events, (e) => {
const newVal = {value: e, label: e};
if (!_.find(this.eventTypes, newVal))
this.eventTypes.push(newVal);
});
});
};
rebuildDropdowns();
const filterModel = (cluster) => {
if (cluster) {
if (this.available('2.0.0')) {
const evtGrps = _.map(this.eventGroups, 'value');
_.remove(cluster.includeEventTypes, (evtGrp) => !_.includes(evtGrps, evtGrp));
if (_.get(cluster, 'marshaller.kind') === 'OptimizedMarshaller')
cluster.marshaller.kind = null;
}
else if (cluster && !_.get(cluster, 'eventStorage.kind'))
_.set(cluster, 'eventStorage.kind', 'Memory');
}
};
this.subscription = this.IgniteVersion.currentSbj.pipe(
tap(rebuildDropdowns),
tap(() => filterModel(this.clonedCluster))
)
.subscribe();
this.supportedJdbcTypes = this.IgniteLegacyUtils.mkOptions(this.IgniteLegacyUtils.SUPPORTED_JDBC_TYPES);
this.$scope.ui = this.IgniteFormUtils.formUI();
this.$scope.ui.loadedPanels = ['checkpoint', 'serviceConfiguration', 'odbcConfiguration'];
this.formActions = [
{text: 'Save', icon: 'checkmark', click: () => this.save()},
{text: 'Save and Download', icon: 'download', click: () => this.save(true)}
];
}