[ https://issues.apache.org/jira/browse/NIFI-4707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16303034#comment-16303034 ]
ASF GitHub Bot commented on NIFI-4707: -------------------------------------- Github user ijokarumawak commented on a diff in the pull request: https://github.com/apache/nifi/pull/2351#discussion_r158616813 --- Diff: nifi-nar-bundles/nifi-extension-utils/nifi-reporting-utils/src/main/java/org/apache/nifi/reporting/util/provenance/ProvenanceEventConsumer.java --- @@ -218,18 +230,35 @@ private boolean isFilteringEnabled() { return componentTypeRegex != null || !eventTypes.isEmpty() || !componentIds.isEmpty(); } - private List<ProvenanceEventRecord> filterEvents(List<ProvenanceEventRecord> provenanceEvents) { - if(isFilteringEnabled()) { - List<ProvenanceEventRecord> filteredEvents = new ArrayList<ProvenanceEventRecord>(); + private List<ProvenanceEventRecord> filterEvents(ComponentMapHolder componentMapHolder, List<ProvenanceEventRecord> provenanceEvents) { + if (isFilteringEnabled()) { + List<ProvenanceEventRecord> filteredEvents = new ArrayList<>(); for (ProvenanceEventRecord provenanceEventRecord : provenanceEvents) { - if(!componentIds.isEmpty() && !componentIds.contains(provenanceEventRecord.getComponentId())) { - continue; + final String componentId = provenanceEventRecord.getComponentId(); + if (!componentIds.isEmpty() && !componentIds.contains(componentId)) { + // If we aren't filtering it out based on component ID, let's see if this component has a parent process group IDs + // that is being filtered on + if (componentMapHolder == null) { + continue; + } + final String processGroupId = componentMapHolder.getProcessGroupId(componentId, provenanceEventRecord.getComponentType()); + if (StringUtils.isEmpty(processGroupId)) { + continue; + } + // Check if any parent process group has the specified component ID + ParentProcessGroupSearchNode matchedComponent = componentMapHolder.getProcessGroupParent(componentId); --- End diff -- `componentMapHolder.getProcessGroupParent(componentId)` will not work with RemoteInputPorts and RemoteOutputPorts. > SiteToSiteProvenanceReportingTask not returning correct metadata > ---------------------------------------------------------------- > > Key: NIFI-4707 > URL: https://issues.apache.org/jira/browse/NIFI-4707 > Project: Apache NiFi > Issue Type: Bug > Components: Extensions > Reporter: Matt Burgess > Assignee: Matt Burgess > > When the SiteToSiteProvenanceReportingTask emits flow files, some of them > include a "componentName" field and some do not. Investigation shows that > only the components (except connections) in the root process group have that > field populated. Having this information can be very helpful to the user, > even though the names might be duplicated, there would be a mapping between a > component's ID and its name. At the very least the behavior (i.e. component > name being available) should be consistent. > Having a full map (by traversing the entire flow) also opens up the ability > to include Process Group information for the various components. The > reporting task could include the parent Process Group identifier and/or name, > with perhaps a special ID for the root PG's "parent", such as "@ROOT@" or > something unique. > This could also allow for a PG ID in the list of filtered "component IDs", > where any provenance event for a processor in a particular PG could be > included in a filter when that PG's ID is in the filter list. -- This message was sent by Atlassian JIRA (v6.4.14#64029)