mirror of https://github.com/apache/nifi.git
[NIFI-13821] add Max Concurrent Tasks and Stateless Flow Timeout form… (#9328)
* [NIFI-13821] add Max Concurrent Tasks and Stateless Flow Timeout form fields when PG Execute Engine is STATELESS * make fields conditionally required This closes #9328
This commit is contained in:
parent
d93c2f9f0c
commit
cd391ce69d
|
@ -68,7 +68,8 @@
|
||||||
<div>
|
<div>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Execution Engine</mat-label>
|
<mat-label>Execution Engine</mat-label>
|
||||||
<mat-select formControlName="executionEngine">
|
<mat-select formControlName="executionEngine"
|
||||||
|
(selectionChange)="executionEngineChanged($event.value)">
|
||||||
@for (option of executionEngineOptions; track option) {
|
@for (option of executionEngineOptions; track option) {
|
||||||
<mat-option
|
<mat-option
|
||||||
[value]="option.value"
|
[value]="option.value"
|
||||||
|
@ -83,6 +84,30 @@
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
@if (editProcessGroupForm.get('executionEngine')?.value === STATELESS) {
|
||||||
|
<div>
|
||||||
|
<mat-form-field>
|
||||||
|
<mat-label>Max Concurrent Tasks</mat-label>
|
||||||
|
<input
|
||||||
|
matInput
|
||||||
|
formControlName="maxConcurrentTasks"
|
||||||
|
name="maxConcurrentTasks"
|
||||||
|
type="number"
|
||||||
|
min="1"
|
||||||
|
[readonly]="readonly" />
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<mat-form-field>
|
||||||
|
<mat-label>Stateless Flow Timeout</mat-label>
|
||||||
|
<input
|
||||||
|
matInput
|
||||||
|
formControlName="statelessFlowTimeout"
|
||||||
|
type="text"
|
||||||
|
[readonly]="readonly" />
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
<div>
|
<div>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Process Group FlowFile Concurrency</mat-label>
|
<mat-label>Process Group FlowFile Concurrency</mat-label>
|
||||||
|
|
|
@ -84,6 +84,9 @@ export class EditProcessGroup extends TabbedDialog {
|
||||||
@Output() editProcessGroup: EventEmitter<any> = new EventEmitter<any>();
|
@Output() editProcessGroup: EventEmitter<any> = new EventEmitter<any>();
|
||||||
|
|
||||||
protected readonly TextTip = TextTip;
|
protected readonly TextTip = TextTip;
|
||||||
|
protected readonly STATELESS: string = 'STATELESS';
|
||||||
|
private initialMaxConcurrentTasks: number;
|
||||||
|
private initialStatelessFlowTimeout: string;
|
||||||
|
|
||||||
editProcessGroupForm: FormGroup;
|
editProcessGroupForm: FormGroup;
|
||||||
readonly: boolean;
|
readonly: boolean;
|
||||||
|
@ -102,7 +105,7 @@ export class EditProcessGroup extends TabbedDialog {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'Stateless',
|
text: 'Stateless',
|
||||||
value: 'STATELESS',
|
value: this.STATELESS,
|
||||||
description:
|
description:
|
||||||
'Run the dataflow using the Stateless Execution Engine. See the User Guide for additional details.'
|
'Run the dataflow using the Stateless Execution Engine. See the User Guide for additional details.'
|
||||||
}
|
}
|
||||||
|
@ -189,6 +192,27 @@ export class EditProcessGroup extends TabbedDialog {
|
||||||
logFileSuffix: new FormControl(request.entity.component.logFileSuffix),
|
logFileSuffix: new FormControl(request.entity.component.logFileSuffix),
|
||||||
comments: new FormControl(request.entity.component.comments)
|
comments: new FormControl(request.entity.component.comments)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.initialMaxConcurrentTasks = request.entity.component.maxConcurrentTasks;
|
||||||
|
this.initialStatelessFlowTimeout = request.entity.component.statelessFlowTimeout;
|
||||||
|
|
||||||
|
this.executionEngineChanged(request.entity.component.executionEngine);
|
||||||
|
}
|
||||||
|
|
||||||
|
executionEngineChanged(value: string): void {
|
||||||
|
if (value == this.STATELESS) {
|
||||||
|
this.editProcessGroupForm.addControl(
|
||||||
|
'maxConcurrentTasks',
|
||||||
|
new FormControl(this.initialMaxConcurrentTasks, Validators.required)
|
||||||
|
);
|
||||||
|
this.editProcessGroupForm.addControl(
|
||||||
|
'statelessFlowTimeout',
|
||||||
|
new FormControl(this.initialStatelessFlowTimeout, Validators.required)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.editProcessGroupForm.removeControl('maxConcurrentTasks');
|
||||||
|
this.editProcessGroupForm.removeControl('statelessFlowTimeout');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
@ -221,6 +245,11 @@ export class EditProcessGroup extends TabbedDialog {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (this.editProcessGroupForm.get('executionEngine')?.value === this.STATELESS) {
|
||||||
|
payload.component.maxConcurrentTasks = this.editProcessGroupForm.get('maxConcurrentTasks')?.value;
|
||||||
|
payload.component.statelessFlowTimeout = this.editProcessGroupForm.get('statelessFlowTimeout')?.value;
|
||||||
|
}
|
||||||
|
|
||||||
this.editProcessGroup.next(payload);
|
this.editProcessGroup.next(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue