You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2020/03/17 12:48:00 UTC

[nifi] 24/47: NIFI-7210 - added PG path in bulletins for S2S Bulletin RT

This is an automated email from the ASF dual-hosted git repository.

joewitt pushed a commit to branch support/nifi-1.11.x
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit a655be9857c7d8f9c25e47c23a87a98b1db7329b
Author: Pierre Villard <pi...@gmail.com>
AuthorDate: Thu Feb 27 14:59:03 2020 -0800

    NIFI-7210 - added PG path in bulletins for S2S Bulletin RT
    
    Added group path to BULLETIN table for QueryNiFiReportingTask
    
    Signed-off-by: Matthew Burgess <ma...@apache.org>
    
    This closes #4100
---
 .../java/org/apache/nifi/reporting/Bulletin.java   |  9 ++++++
 .../org/apache/nifi/reporting/BulletinFactory.java | 15 ++++++++++
 .../org/apache/nifi/events/BulletinFactory.java    | 32 +++++++++++++++++++++-
 .../reporting/SiteToSiteBulletinReportingTask.java |  1 +
 .../additionalDetails.html                         |  1 +
 .../src/main/resources/schema-bulletins.avsc       |  1 +
 .../TestSiteToSiteBulletinReportingTask.java       |  5 ++--
 .../sql/bulletins/BulletinEnumerator.java          |  1 +
 .../reporting/sql/bulletins/BulletinTable.java     |  2 ++
 .../additionalDetails.html                         |  1 +
 10 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java b/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java
index 50684d6..3f160aa 100644
--- a/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java
+++ b/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java
@@ -33,6 +33,7 @@ public abstract class Bulletin implements Comparable<Bulletin> {
 
     private String groupId;
     private String groupName;
+    private String groupPath;
     private String sourceId;
     private String sourceName;
     private ComponentType sourceType;
@@ -98,6 +99,14 @@ public abstract class Bulletin implements Comparable<Bulletin> {
         this.groupName = groupName;
     }
 
+    public String getGroupPath() {
+        return groupPath;
+    }
+
+    public void setGroupPath(String groupPath) {
+        this.groupPath = groupPath;
+    }
+
     public String getSourceId() {
         return sourceId;
     }
diff --git a/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java b/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java
index 0208a2e..ca1ef6c 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java
@@ -53,4 +53,19 @@ public class BulletinFactory {
         bulletin.setMessage(message);
         return bulletin;
     }
+
+    public static Bulletin createBulletin(final String groupId, final String groupName, final String sourceId, final ComponentType sourceType,
+            final String sourceName, final String category, final String severity, final String message, final String groupPath) {
+        final Bulletin bulletin = new MockBulletin(currentId.getAndIncrement());
+        bulletin.setGroupId(groupId);
+        bulletin.setGroupName(groupName);
+        bulletin.setGroupPath(groupPath);
+        bulletin.setSourceId(sourceId);
+        bulletin.setSourceType(sourceType);
+        bulletin.setSourceName(sourceName);
+        bulletin.setCategory(category);
+        bulletin.setLevel(severity);
+        bulletin.setMessage(message);
+        return bulletin;
+    }
 }
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
index 76728ba..1d9f8cf 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
@@ -49,7 +49,22 @@ public final class BulletinFactory {
         final ProcessGroup group = connectable.getProcessGroup();
         final String groupId = connectable.getProcessGroupIdentifier();
         final String groupName = group == null ? null : group.getName();
-        return BulletinFactory.createBulletin(groupId, groupName, connectable.getIdentifier(), type, connectable.getName(), category, severity, message);
+        final String groupPath = buildGroupPath(group);
+        return BulletinFactory.createBulletin(groupId, groupName, connectable.getIdentifier(), type, connectable.getName(), category, severity, message, groupPath);
+    }
+
+    private static String buildGroupPath(ProcessGroup group) {
+        if(group == null) {
+            return null;
+        } else {
+            String path = group.getName();
+            ProcessGroup parent = group.getParent();
+            while(parent != null) {
+                path = parent.getName() + " / " + path;
+                parent = parent.getParent();
+            }
+            return path;
+        }
     }
 
     public static Bulletin createBulletin(final String groupId, final String sourceId, final ComponentType sourceType, final String sourceName,
@@ -79,6 +94,21 @@ public final class BulletinFactory {
         return bulletin;
     }
 
+    public static Bulletin createBulletin(final String groupId, final String groupName, final String sourceId, final ComponentType sourceType,
+            final String sourceName, final String category, final String severity, final String message, final String groupPath) {
+        final Bulletin bulletin = new ComponentBulletin(currentId.getAndIncrement());
+        bulletin.setGroupId(groupId);
+        bulletin.setGroupName(groupName);
+        bulletin.setGroupPath(groupPath);
+        bulletin.setSourceId(sourceId);
+        bulletin.setSourceType(sourceType);
+        bulletin.setSourceName(sourceName);
+        bulletin.setCategory(category);
+        bulletin.setLevel(severity);
+        bulletin.setMessage(message);
+        return bulletin;
+    }
+
     public static Bulletin createBulletin(final String category, final String severity, final String message) {
         final Bulletin bulletin = new SystemBulletin(currentId.getAndIncrement());
         bulletin.setCategory(category);
diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteBulletinReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteBulletinReportingTask.java
index 1e68687..8fe220c 100644
--- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteBulletinReportingTask.java
+++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteBulletinReportingTask.java
@@ -186,6 +186,7 @@ public class SiteToSiteBulletinReportingTask extends AbstractSiteToSiteReporting
         addField(builder, "bulletinCategory", bulletin.getCategory(), allowNullValues);
         addField(builder, "bulletinGroupId", bulletin.getGroupId(), allowNullValues);
         addField(builder, "bulletinGroupName", bulletin.getGroupName(), allowNullValues);
+        addField(builder, "bulletinGroupPath", bulletin.getGroupPath(), allowNullValues);
         addField(builder, "bulletinLevel", bulletin.getLevel(), allowNullValues);
         addField(builder, "bulletinMessage", bulletin.getMessage(), allowNullValues);
         addField(builder, "bulletinNodeAddress", bulletin.getNodeAddress(), allowNullValues);
diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.SiteToSiteBulletinReportingTask/additionalDetails.html b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.SiteToSiteBulletinReportingTask/additionalDetails.html
index c76c138..13ced0b 100644
--- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.SiteToSiteBulletinReportingTask/additionalDetails.html
+++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.SiteToSiteBulletinReportingTask/additionalDetails.html
@@ -48,6 +48,7 @@
 	{ "name" : "bulletinCategory", "type" : ["string", "null"] },
 	{ "name" : "bulletinGroupId", "type" : ["string", "null"] },
 	{ "name" : "bulletinGroupName", "type" : ["string", "null"] },
+	{ "name" : "bulletinGroupPath", "type" : ["string", "null"] },
 	{ "name" : "bulletinLevel", "type" : ["string", "null"] },
 	{ "name" : "bulletinMessage", "type" : ["string", "null"] },
 	{ "name" : "bulletinNodeAddress", "type" : ["string", "null"] },
diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/schema-bulletins.avsc b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/schema-bulletins.avsc
index 01b0f33..f681169 100644
--- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/schema-bulletins.avsc
+++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/resources/schema-bulletins.avsc
@@ -9,6 +9,7 @@
 	{ "name" : "bulletinCategory", "type" : ["string", "null"] },
 	{ "name" : "bulletinGroupId", "type" : ["string", "null"] },
 	{ "name" : "bulletinGroupName", "type" : ["string", "null"] },
+	{ "name" : "bulletinGroupPath", "type" : ["string", "null"] },
 	{ "name" : "bulletinLevel", "type" : ["string", "null"] },
 	{ "name" : "bulletinMessage", "type" : ["string", "null"] },
 	{ "name" : "bulletinNodeAddress", "type" : ["string", "null"] },
diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java
index 9140cde..00cb4b9 100644
--- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java
+++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/TestSiteToSiteBulletinReportingTask.java
@@ -19,7 +19,6 @@ package org.apache.nifi.reporting;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.when;
 
@@ -82,7 +81,7 @@ public class TestSiteToSiteBulletinReportingTask {
     public void testSerializedForm() throws IOException, InitializationException {
         // creating the list of bulletins
         final List<Bulletin> bulletins = new ArrayList<Bulletin>();
-        bulletins.add(BulletinFactory.createBulletin("group-id", "group-name", "source-id", "source-name", "category", "severity", "message"));
+        bulletins.add(BulletinFactory.createBulletin("group-id", "group-name", "source-id", ComponentType.PROCESSOR, "source-name", "category", "severity", "message", "group-path"));
 
         // mock the access to the list of bulletins
         final ReportingContext context = Mockito.mock(ReportingContext.class);
@@ -125,7 +124,7 @@ public class TestSiteToSiteBulletinReportingTask {
         JsonObject bulletinJson = jsonReader.readArray().getJsonObject(0);
         assertEquals("message", bulletinJson.getString("bulletinMessage"));
         assertEquals("group-name", bulletinJson.getString("bulletinGroupName"));
-        assertNull(bulletinJson.get("bulletinSourceType"));
+        assertEquals("group-path", bulletinJson.getString("bulletinGroupPath"));
     }
 
     @Test
diff --git a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinEnumerator.java b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinEnumerator.java
index ac190bc..608f697 100644
--- a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinEnumerator.java
+++ b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinEnumerator.java
@@ -97,6 +97,7 @@ public class BulletinEnumerator implements Enumerator<Object> {
                 bulletin.getCategory(),
                 bulletin.getGroupId(),
                 bulletin.getGroupName(),
+                bulletin.getGroupPath(),
                 bulletin.getLevel(),
                 bulletin.getMessage(),
                 bulletin.getNodeAddress(),
diff --git a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinTable.java b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinTable.java
index 4fddb0a..3fc5ff6 100644
--- a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinTable.java
+++ b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/java/org/apache/nifi/reporting/sql/bulletins/BulletinTable.java
@@ -157,6 +157,7 @@ public class BulletinTable extends AbstractTable implements QueryableTable, Tran
                 "bulletinCategory",
                 "bulletinGroupId",
                 "bulletinGroupName",
+                "bulletinGroupPath",
                 "bulletinLevel",
                 "bulletinMessage",
                 "bulletinNodeAddress",
@@ -178,6 +179,7 @@ public class BulletinTable extends AbstractTable implements QueryableTable, Tran
                 typeFactory.createJavaType(String.class),
                 typeFactory.createJavaType(String.class),
                 typeFactory.createJavaType(String.class),
+                typeFactory.createJavaType(String.class),
                 typeFactory.createJavaType(Date.class)
         );
 
diff --git a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.sql.QueryNiFiReportingTask/additionalDetails.html b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.sql.QueryNiFiReportingTask/additionalDetails.html
index 7b55eef..a56324d 100644
--- a/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.sql.QueryNiFiReportingTask/additionalDetails.html
+++ b/nifi-nar-bundles/nifi-sql-reporting-bundle/nifi-sql-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.sql.QueryNiFiReportingTask/additionalDetails.html
@@ -102,6 +102,7 @@
     <tr><td>bulletinCategory</td><td>String</td></tr>
     <tr><td>bulletinGroupId</td><td>String</td></tr>
     <tr><td>bulletinGroupName</td><td>String</td></tr>
+    <tr><td>bulletinGroupPath</td><td>String</td></tr>
     <tr><td>bulletinLevel</td><td>String</td></tr>
     <tr><td>bulletinMessage</td><td>String</td></tr>
     <tr><td>bulletinNodeAddress</td><td>String</td></tr>