This is an automated email from the ASF dual-hosted git repository.
rfellows pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new ca227c7cd0 NIFI-13552 - Ensure errors from Provenance and Lineage
queries are shown. (#9088)
ca227c7cd0 is described below
commit ca227c7cd0b94272df362b07d3e4507af3f85c52
Author: Matt Gilman <[email protected]>
AuthorDate: Wed Jul 17 15:25:14 2024 -0500
NIFI-13552 - Ensure errors from Provenance and Lineage queries are shown.
(#9088)
This closes #9088
---
.../provenance/state/lineage/lineage.effects.ts | 24 +++++++++++++++++-----
.../provenance-event-listing.effects.ts | 23 ++++++++++++++++-----
2 files changed, 37 insertions(+), 10 deletions(-)
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/lineage.effects.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/lineage.effects.ts
index 9c7bbad355..020fee691b 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/lineage.effects.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/lineage.effects.ts
@@ -29,7 +29,7 @@ import { selectActiveLineageId,
selectClusterNodeIdFromActiveLineage } from './l
import * as ErrorActions from '../../../../state/error/error.actions';
import { ErrorHelper } from '../../../../service/error-helper.service';
import { HttpErrorResponse } from '@angular/common/http';
-import { isDefinedAndNotNull } from 'libs/shared/src';
+import { isDefinedAndNotNull, NiFiCommon } from 'libs/shared/src';
@Injectable()
export class LineageEffects {
@@ -38,6 +38,7 @@ export class LineageEffects {
private store: Store<NiFiState>,
private provenanceService: ProvenanceService,
private errorHelper: ErrorHelper,
+ private nifiCommon: NiFiCommon,
private dialog: MatDialog
) {}
@@ -78,8 +79,11 @@ export class LineageEffects {
map((action) => action.response),
switchMap((response) => {
const query: Lineage = response.lineage;
- if (query.finished) {
- this.dialog.closeAll();
+ if (query.finished ||
!this.nifiCommon.isEmpty(query.results.errors)) {
+ response.lineage.results.errors?.forEach((error) => {
+ this.store.dispatch(ErrorActions.addBannerError({
error }));
+ });
+
return of(LineageActions.deleteLineageQuery());
} else {
return of(LineageActions.startPollingLineageQuery());
@@ -138,8 +142,16 @@ export class LineageEffects {
this.actions$.pipe(
ofType(LineageActions.pollLineageQuerySuccess),
map((action) => action.response),
- filter((response) => response.lineage.finished),
- switchMap(() => of(LineageActions.stopPollingLineageQuery()))
+ filter(
+ (response) => response.lineage.finished ||
!this.nifiCommon.isEmpty(response.lineage.results.errors)
+ ),
+ switchMap((response) => {
+ response.lineage.results.errors?.forEach((error) => {
+ this.store.dispatch(ErrorActions.addBannerError({ error
}));
+ });
+
+ return of(LineageActions.stopPollingLineageQuery());
+ })
)
);
@@ -158,6 +170,8 @@ export class LineageEffects {
this.store.select(selectClusterNodeIdFromActiveLineage)
]),
tap(([, id, clusterNodeId]) => {
+ this.dialog.closeAll();
+
if (id) {
this.provenanceService.deleteLineageQuery(id,
clusterNodeId).subscribe();
}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/provenance-event-listing/provenance-event-listing.effects.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/provenance-event-listing/provenance-event-listing.effects.ts
index e50258dfe2..c2385e8ab6 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/provenance-event-listing/provenance-event-listing.effects.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/provenance-event-listing/provenance-event-listing.effects.ts
@@ -41,7 +41,7 @@ import { CancelDialog } from
'../../../../ui/common/cancel-dialog/cancel-dialog.
import * as ErrorActions from '../../../../state/error/error.actions';
import { ErrorHelper } from '../../../../service/error-helper.service';
import { HttpErrorResponse } from '@angular/common/http';
-import { isDefinedAndNotNull } from 'libs/shared/src';
+import { isDefinedAndNotNull, NiFiCommon } from 'libs/shared/src';
import { selectClusterSummary } from
'../../../../state/cluster-summary/cluster-summary.selectors';
import { ClusterService } from '../../../../service/cluster.service';
import { LARGE_DIALOG, MEDIUM_DIALOG } from 'libs/shared/src';
@@ -54,6 +54,7 @@ export class ProvenanceEventListingEffects {
private provenanceService: ProvenanceService,
private errorHelper: ErrorHelper,
private clusterService: ClusterService,
+ private nifiCommon: NiFiCommon,
private dialog: MatDialog,
private router: Router
) {}
@@ -143,8 +144,11 @@ export class ProvenanceEventListingEffects {
map((action) => action.response),
switchMap((response) => {
const query: Provenance = response.provenance;
- if (query.finished) {
- this.dialog.closeAll();
+ if (query.finished ||
!this.nifiCommon.isEmpty(query.results.errors)) {
+ response.provenance.results.errors?.forEach((error) => {
+ this.store.dispatch(ErrorActions.addBannerError({
error }));
+ });
+
return
of(ProvenanceEventListingActions.deleteProvenanceQuery());
} else {
return
of(ProvenanceEventListingActions.startPollingProvenanceQuery());
@@ -203,8 +207,17 @@ export class ProvenanceEventListingEffects {
this.actions$.pipe(
ofType(ProvenanceEventListingActions.pollProvenanceQuerySuccess),
map((action) => action.response),
- filter((response) => response.provenance.finished),
- switchMap(() =>
of(ProvenanceEventListingActions.stopPollingProvenanceQuery()))
+ filter(
+ (response) =>
+ response.provenance.finished ||
!this.nifiCommon.isEmpty(response.provenance.results.errors)
+ ),
+ switchMap((response) => {
+ response.provenance.results.errors?.forEach((error) => {
+ this.store.dispatch(ErrorActions.addBannerError({ error
}));
+ });
+
+ return
of(ProvenanceEventListingActions.stopPollingProvenanceQuery());
+ })
)
);