mirror of https://github.com/apache/nifi.git
NIFI-4763: Ignore differences in components' Bundle Version when comparing a local flow to a flow in the registry
This closes #2393. Signed-off-by: Bryan Bende <bbende@apache.org>
This commit is contained in:
parent
83701632fb
commit
d93d538177
|
@ -3252,6 +3252,11 @@ public final class StandardProcessGroup implements ProcessGroup {
|
|||
|
||||
final Set<String> updatedVersionedComponentIds = new HashSet<>();
|
||||
for (final FlowDifference diff : flowComparison.getDifferences()) {
|
||||
// Ignore these as local differences for now because we can't do anything with it
|
||||
if (diff.getDifferenceType() == DifferenceType.BUNDLE_CHANGED) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// If this update adds a new Controller Service, then we need to check if the service already exists at a higher level
|
||||
// and if so compare our VersionedControllerService to the existing service.
|
||||
if (diff.getDifferenceType() == DifferenceType.COMPONENT_ADDED) {
|
||||
|
@ -4187,7 +4192,9 @@ public final class StandardProcessGroup implements ProcessGroup {
|
|||
|
||||
final FlowComparator flowComparator = new StandardFlowComparator(snapshotFlow, currentFlow, getAncestorGroupServiceIds(), new EvolvingDifferenceDescriptor());
|
||||
final FlowComparison comparison = flowComparator.compare();
|
||||
final Set<FlowDifference> differences = comparison.getDifferences();
|
||||
final Set<FlowDifference> differences = comparison.getDifferences().stream()
|
||||
.filter(difference -> difference.getDifferenceType() != DifferenceType.BUNDLE_CHANGED)
|
||||
.collect(Collectors.toCollection(HashSet::new));
|
||||
|
||||
LOG.debug("There are {} differences between this Local Flow and the Versioned Flow: {}", differences.size(), differences);
|
||||
return differences;
|
||||
|
|
|
@ -3964,6 +3964,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
|
|||
|
||||
final Set<AffectedComponentEntity> affectedComponents = comparison.getDifferences().stream()
|
||||
.filter(difference -> difference.getDifferenceType() != DifferenceType.COMPONENT_ADDED) // components that are added are not components that will be affected in the local flow.
|
||||
.filter(difference -> difference.getDifferenceType() != DifferenceType.BUNDLE_CHANGED)
|
||||
.map(difference -> {
|
||||
final VersionedComponent localComponent = difference.getComponentA();
|
||||
|
||||
|
@ -3995,6 +3996,11 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
|
|||
.collect(Collectors.toCollection(HashSet::new));
|
||||
|
||||
for (final FlowDifference difference : comparison.getDifferences()) {
|
||||
// Ignore these as local differences for now because we can't do anything with it
|
||||
if (difference.getDifferenceType() == DifferenceType.BUNDLE_CHANGED) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final VersionedComponent localComponent = difference.getComponentA();
|
||||
if (localComponent == null) {
|
||||
continue;
|
||||
|
|
|
@ -118,6 +118,7 @@ import org.apache.nifi.registry.flow.VersionControlInformation;
|
|||
import org.apache.nifi.registry.flow.VersionedComponent;
|
||||
import org.apache.nifi.registry.flow.VersionedFlowState;
|
||||
import org.apache.nifi.registry.flow.VersionedFlowStatus;
|
||||
import org.apache.nifi.registry.flow.diff.DifferenceType;
|
||||
import org.apache.nifi.registry.flow.diff.FlowComparison;
|
||||
import org.apache.nifi.registry.flow.diff.FlowDifference;
|
||||
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedComponent;
|
||||
|
@ -2219,6 +2220,11 @@ public final class DtoFactory {
|
|||
final Map<ComponentDifferenceDTO, List<DifferenceDTO>> differencesByComponent = new HashMap<>();
|
||||
|
||||
for (final FlowDifference difference : comparison.getDifferences()) {
|
||||
// Ignore these as local differences for now because we can't do anything with it
|
||||
if (difference.getDifferenceType() == DifferenceType.BUNDLE_CHANGED) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final ComponentDifferenceDTO componentDiff = createComponentDifference(difference);
|
||||
final List<DifferenceDTO> differences = differencesByComponent.computeIfAbsent(componentDiff, key -> new ArrayList<>());
|
||||
|
||||
|
|
Loading…
Reference in New Issue