You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2024/01/02 18:54:06 UTC
(nifi) branch support/nifi-1.x updated: NIFI-12524 Fixed null handling for auditing Connect Details
This is an automated email from the ASF dual-hosted git repository.
mattyb149 pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
new e7f0efb999 NIFI-12524 Fixed null handling for auditing Connect Details
e7f0efb999 is described below
commit e7f0efb99915c02e6aafd64acd1cf8d3e990f265
Author: exceptionfactory <ex...@apache.org>
AuthorDate: Sat Dec 30 13:16:31 2023 -0600
NIFI-12524 Fixed null handling for auditing Connect Details
Signed-off-by: Matt Burgess <ma...@apache.org>
---
.../admin/service/EntityStoreAuditService.java | 14 ++++-
.../admin/service/EntityStoreAuditServiceTest.java | 71 ++++++++++++++++++++++
2 files changed, 82 insertions(+), 3 deletions(-)
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/EntityStoreAuditService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/EntityStoreAuditService.java
index 34c41d786c..00658687be 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/EntityStoreAuditService.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/EntityStoreAuditService.java
@@ -446,12 +446,20 @@ public class EntityStoreAuditService implements AuditService, Closeable {
actionEntity.setLink(ActionLink.CONNECT_DETAILS.getProperty(), connectDetailsEntity);
connectDetailsEntity.setProperty(ConnectDetailsEntity.SOURCE_ID.getProperty(), connectDetails.getSourceId());
- connectDetailsEntity.setProperty(ConnectDetailsEntity.SOURCE_NAME.getProperty(), connectDetails.getSourceName());
connectDetailsEntity.setProperty(ConnectDetailsEntity.SOURCE_TYPE.getProperty(), connectDetails.getSourceType().name());
+ if (connectDetails.getSourceName() != null) {
+ connectDetailsEntity.setProperty(ConnectDetailsEntity.SOURCE_NAME.getProperty(), connectDetails.getSourceName());
+ }
+
connectDetailsEntity.setProperty(ConnectDetailsEntity.DESTINATION_ID.getProperty(), connectDetails.getDestinationId());
- connectDetailsEntity.setProperty(ConnectDetailsEntity.DESTINATION_NAME.getProperty(), connectDetails.getDestinationName());
connectDetailsEntity.setProperty(ConnectDetailsEntity.DESTINATION_TYPE.getProperty(), connectDetails.getDestinationType().name());
- connectDetailsEntity.setProperty(ConnectDetailsEntity.RELATIONSHIP.getProperty(), connectDetails.getRelationship());
+ if (connectDetails.getDestinationName() != null) {
+ connectDetailsEntity.setProperty(ConnectDetailsEntity.DESTINATION_NAME.getProperty(), connectDetails.getDestinationName());
+ }
+
+ if (connectDetails.getRelationship() != null) {
+ connectDetailsEntity.setProperty(ConnectDetailsEntity.RELATIONSHIP.getProperty(), connectDetails.getRelationship());
+ }
}
private void addMoveDetails(final StoreTransaction storeTransaction, final Entity actionEntity, final MoveDetails moveDetails) {
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/EntityStoreAuditServiceTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/EntityStoreAuditServiceTest.java
index 215a9e3a05..7844e3ec31 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/EntityStoreAuditServiceTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/EntityStoreAuditServiceTest.java
@@ -21,7 +21,9 @@ import org.apache.nifi.action.Component;
import org.apache.nifi.action.FlowChangeAction;
import org.apache.nifi.action.Operation;
import org.apache.nifi.action.details.ActionDetails;
+import org.apache.nifi.action.details.ConnectDetails;
import org.apache.nifi.action.details.FlowChangeConfigureDetails;
+import org.apache.nifi.action.details.FlowChangeConnectDetails;
import org.apache.nifi.action.details.FlowChangePurgeDetails;
import org.apache.nifi.action.details.PurgeDetails;
import org.apache.nifi.history.History;
@@ -74,6 +76,12 @@ class EntityStoreAuditServiceTest {
private static final Component SOURCE_TYPE = Component.Processor;
+ private static final String DESTINATION_NAME = "UpdateCounter";
+
+ private static final Component DESTINATION_TYPE = Component.Funnel;
+
+ private static final String RELATIONSHIP = "success";
+
private static final Operation OPERATION = Operation.Add;
private static final int ACTION_ID = 0;
@@ -348,6 +356,55 @@ class EntityStoreAuditServiceTest {
assertEquals(USER_IDENTITY, secondPreviousValue.getUserIdentity());
}
+ @Test
+ void testAddActionsConnectDetailsMinimumPropertiesGetAction() {
+ final FlowChangeAction action = newAction();
+
+ final FlowChangeConnectDetails connectDetails = new FlowChangeConnectDetails();
+ connectDetails.setSourceId(SOURCE_ID);
+ connectDetails.setSourceType(SOURCE_TYPE);
+ connectDetails.setDestinationId(SECOND_SOURCE_ID);
+ connectDetails.setDestinationType(DESTINATION_TYPE);
+ action.setActionDetails(connectDetails);
+
+ final Collection<Action> actions = Collections.singletonList(action);
+
+ service.addActions(actions);
+
+ final Action actionFound = service.getAction(ACTION_ID);
+ assertEquals(ACTION_ID, actionFound.getId());
+ assertActionFound(actionFound);
+
+ final ActionDetails actionDetails = actionFound.getActionDetails();
+ assertConnectDetailsFound(connectDetails, actionDetails);
+ }
+
+ @Test
+ void testAddActionsConnectDetailsGetAction() {
+ final FlowChangeAction action = newAction();
+
+ final FlowChangeConnectDetails connectDetails = new FlowChangeConnectDetails();
+ connectDetails.setSourceName(SOURCE_NAME);
+ connectDetails.setSourceId(SOURCE_ID);
+ connectDetails.setSourceType(SOURCE_TYPE);
+ connectDetails.setDestinationName(DESTINATION_NAME);
+ connectDetails.setDestinationId(SECOND_SOURCE_ID);
+ connectDetails.setDestinationType(DESTINATION_TYPE);
+ connectDetails.setRelationship(RELATIONSHIP);
+ action.setActionDetails(connectDetails);
+
+ final Collection<Action> actions = Collections.singletonList(action);
+
+ service.addActions(actions);
+
+ final Action actionFound = service.getAction(ACTION_ID);
+ assertEquals(ACTION_ID, actionFound.getId());
+ assertActionFound(actionFound);
+
+ final ActionDetails actionDetails = actionFound.getActionDetails();
+ assertConnectDetailsFound(connectDetails, actionDetails);
+ }
+
private FlowChangeAction newAction() {
final FlowChangeAction action = new FlowChangeAction();
action.setTimestamp(ACTION_TIMESTAMP);
@@ -367,4 +424,18 @@ class EntityStoreAuditServiceTest {
assertEquals(USER_IDENTITY, actionFound.getUserIdentity());
assertEquals(OPERATION, actionFound.getOperation());
}
+
+ private void assertConnectDetailsFound(final ConnectDetails connectDetails, final ActionDetails actionDetails) {
+ assertNotNull(actionDetails);
+ assertInstanceOf(ConnectDetails.class, actionDetails);
+
+ final ConnectDetails connectDetailsFound = (ConnectDetails) actionDetails;
+ assertEquals(connectDetails.getSourceName(), connectDetailsFound.getSourceName());
+ assertEquals(connectDetails.getSourceId(), connectDetailsFound.getSourceId());
+ assertEquals(connectDetails.getSourceType(), connectDetailsFound.getSourceType());
+ assertEquals(connectDetails.getDestinationName(), connectDetailsFound.getDestinationName());
+ assertEquals(connectDetails.getDestinationId(), connectDetailsFound.getDestinationId());
+ assertEquals(connectDetails.getDestinationType(), connectDetailsFound.getDestinationType());
+ assertEquals(connectDetails.getRelationship(), connectDetailsFound.getRelationship());
+ }
}