adding FILENAME value to LOG_RECORDS table. 85/77785/5
authorEmmettCox <emmett.cox@est.tech>
Tue, 5 Feb 2019 16:16:40 +0000 (16:16 +0000)
committerEmmettCox <emmett.cox@est.tech>
Tue, 5 Feb 2019 16:16:40 +0000 (16:16 +0000)
Change-Id: Iea49d196f324b3a03a18d3d2084e5f6c7ad226ea
Issue-ID: DMAAP-1022
Signed-off-by: EmmettCox <emmett.cox@est.tech>
14 files changed:
datarouter-docker-compose/src/main/resources/database/sql_init_01.sql
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/LogManager.java
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/NodeConfigManager.java
datarouter-node/src/main/java/org/onap/dmaap/datarouter/node/StatusLog.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/DeliveryExtraRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/DeliveryRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/ExpiryRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/LogRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PubFailRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java
datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/utils/LogfileLoader.java
datarouter-prov/src/main/resources/misc/sql_init_01.sql
datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecordTest.java
datarouter-prov/src/test/resources/create.sql

index 356a67a..0125832 100644 (file)
@@ -77,6 +77,7 @@ CREATE TABLE LOG_RECORDS (
 
     RECORD_ID      BIGINT UNSIGNED NOT NULL PRIMARY KEY, /* unique ID for this record */
     CONTENT_LENGTH_2 BIGINT,
+    FILENAME       VARCHAR(256),        /* Name of the file being published on DR */
 
     INDEX (FEEDID) USING BTREE,
     INDEX (DELIVERY_SUBID) USING BTREE,
@@ -134,7 +135,7 @@ INSERT INTO PARAMETERS VALUES
     ('DELIVERY_MAX_AGE', '86400'),
     ('DELIVERY_MAX_RETRY_INTERVAL', '3600'),
     ('DELIVERY_RETRY_RATIO', '2'),
-    ('LOGROLL_INTERVAL', '300'),
+    ('LOGROLL_INTERVAL', '30'),
     ('PROV_AUTH_ADDRESSES', 'dmaap-dr-prov|dmaap-dr-node'),
     ('PROV_AUTH_SUBJECTS', ''),
     ('PROV_MAXFEED_COUNT',  '10000'),
index ee81a32..1d5f76f 100644 (file)
@@ -188,7 +188,7 @@ public class LogManager extends TimerTask {
         uploaddir = logdir + "/.spool";
         (new File(uploaddir)).mkdirs();
         long now = System.currentTimeMillis();
-        long intvl = StatusLog.parseInterval(config.getEventLogInterval(), 300000);
+        long intvl = StatusLog.parseInterval(config.getEventLogInterval(), 30000);
         long when = now - now % intvl + intvl + 20000L;
         config.getTimer().scheduleAtFixedRate(this, when - now, intvl);
         worker = new Uploader();
index 50baef5..474f5dd 100644 (file)
@@ -185,7 +185,7 @@ public class NodeConfigManager implements DeliveryQueueHelper {
 
     private void localconfig() {
         followredirects = Boolean.parseBoolean(getProvParam("FOLLOW_REDIRECTS", "false"));
-        eventloginterval = getProvParam("LOGROLL_INTERVAL", "5m");
+        eventloginterval = getProvParam("LOGROLL_INTERVAL", "30s");
         initfailuretimer = 10000;
         maxfailuretimer = 3600000;
         expirationtimer = 86400000;
@@ -365,13 +365,13 @@ public class NodeConfigManager implements DeliveryQueueHelper {
      * Get a provisioned configuration parameter (from the provisioning server configuration)
      *
      * @param name The name of the parameter
-     * @param deflt The value to use if the parameter is not defined
+     * @param defaultValue The value to use if the parameter is not defined
      * @return The value of the parameter or deflt if it is not defined.
      */
-    public String getProvParam(String name, String deflt) {
+    public String getProvParam(String name, String defaultValue) {
         name = config.getProvParam(name);
         if (name == null) {
-            name = deflt;
+            name = defaultValue;
         }
         return (name);
     }
index 43c4fda..c8a7bd0 100644 (file)
@@ -53,7 +53,7 @@ public class StatusLog {
     }
 
     /**
-     * Parse an interval of the form xxhyymzzs and round it to the nearest whole fraction of 24 hours.  If no units are specified, assume seconds.
+     * Parse an interval of the form xxhyymzzs and round it to the nearest whole fraction of 24 hours.If no units are specified, assume seconds.
      */
     public static long parseInterval(String interval, int def) {
         try {
index 5aa5130..2a959f3 100644 (file)
@@ -64,5 +64,6 @@ public class DeliveryExtraRecord extends BaseLogRecord {
         ps.setNull(16, Types.INTEGER);\r
         ps.setNull(17, Types.VARCHAR);\r
         ps.setLong(19, contentLength2);\r
+        ps.setNull(20, Types.VARCHAR);\r
     }\r
 }\r
index aa7f5d0..929c6f9 100644 (file)
@@ -145,5 +145,6 @@ public class DeliveryRecord extends BaseLogRecord {
         ps.setNull(16, Types.INTEGER);\r
         ps.setNull(17, Types.VARCHAR);\r
         ps.setNull(19, Types.BIGINT);\r
+        ps.setNull(20, Types.VARCHAR);\r
     }\r
 }\r
index 3f85aec..9e6987a 100644 (file)
@@ -141,5 +141,6 @@ public class ExpiryRecord extends BaseLogRecord {
         ps.setInt(16, getAttempts());\r
         ps.setString(17, getReason());\r
         ps.setNull(19, Types.BIGINT);\r
+        ps.setNull(20, Types.VARCHAR);\r
     }\r
 }\r
index 1791bdc..b7b8272 100644 (file)
@@ -91,6 +91,7 @@ public class LogRecord extends BaseLogRecord {
     private final String reason;\r
     private final long record_id;\r
     private final long clength2;\r
+    private final String fileName;\r
 \r
     public LogRecord(ResultSet rs) throws SQLException {\r
         super(rs);\r
@@ -109,6 +110,7 @@ public class LogRecord extends BaseLogRecord {
 \r
         this.record_id = rs.getLong("RECORD_ID");\r
         this.clength2 = rs.getLong("CONTENT_LENGTH_2");\r
+        this.fileName = rs.getString("FILENAME");\r
     }\r
 \r
     public LogRecord(String[] pp) throws ParseException {\r
@@ -127,7 +129,8 @@ public class LogRecord extends BaseLogRecord {
         this.reason = pp[17];\r
 \r
         this.record_id = Long.parseLong(pp[18]);\r
-        this.clength2 = (pp.length == 20) ? Long.parseLong(pp[19]) : 0;\r
+        this.clength2 = (pp.length == 21) ? Long.parseLong(pp[19]) : 0;\r
+        this.fileName = pp[20];\r
     }\r
 \r
     public long getRecordId() {\r
@@ -176,6 +179,7 @@ public class LogRecord extends BaseLogRecord {
             ps.setNull(17, Types.VARCHAR);\r
             ps.setLong(18, record_id);\r
             ps.setNull(19, Types.BIGINT);\r
+            ps.setString(20, fileName);\r
         } else if (type.equals("del")) {\r
             ps.setNull(9, Types.VARCHAR);\r
             ps.setNull(10, Types.VARCHAR);\r
@@ -188,6 +192,7 @@ public class LogRecord extends BaseLogRecord {
             ps.setNull(17, Types.VARCHAR);\r
             ps.setLong(18, record_id);\r
             ps.setNull(19, Types.BIGINT);\r
+            ps.setString(20, fileName);\r
         } else if (type.equals("exp")) {\r
             ps.setNull(9, Types.VARCHAR);\r
             ps.setNull(10, Types.VARCHAR);\r
@@ -200,6 +205,7 @@ public class LogRecord extends BaseLogRecord {
             ps.setString(17, reason);\r
             ps.setLong(18, record_id);\r
             ps.setNull(19, Types.BIGINT);\r
+            ps.setString(20, fileName);\r
         } else if (type.equals("pbf")) {\r
             ps.setString(9, feedFileid);\r
             ps.setString(10, remoteAddr);\r
@@ -212,6 +218,7 @@ public class LogRecord extends BaseLogRecord {
             ps.setNull(17, Types.VARCHAR);\r
             ps.setLong(18, record_id);\r
             ps.setLong(19, clength2);\r
+            ps.setString(20, fileName);\r
         } else if (type.equals("dlx")) {\r
             ps.setNull(9, Types.VARCHAR);\r
             ps.setNull(10, Types.VARCHAR);\r
@@ -224,6 +231,7 @@ public class LogRecord extends BaseLogRecord {
             ps.setNull(17, Types.VARCHAR);\r
             ps.setLong(18, record_id);\r
             ps.setLong(19, clength2);\r
+            ps.setString(20, fileName);\r
         }\r
     }\r
 \r
index cead8b0..88d4882 100644 (file)
@@ -88,5 +88,6 @@ public class PubFailRecord extends BaseLogRecord {
         ps.setNull(16, Types.INTEGER);\r
         ps.setNull(17, Types.VARCHAR);\r
         ps.setLong(19, getContentLengthReceived());\r
+        ps.setNull(20, Types.VARCHAR);\r
     }\r
 }\r
index e7575ff..2cde397 100644 (file)
@@ -30,6 +30,7 @@ import java.sql.Types;
 import java.text.ParseException;\r
 import java.util.LinkedHashMap;\r
 \r
+import org.apache.commons.lang3.StringUtils;\r
 import org.onap.dmaap.datarouter.provisioning.utils.LOGJSONObject;\r
 \r
 \r
@@ -44,14 +45,10 @@ public class PublishRecord extends BaseLogRecord {
     private String remoteAddr;\r
     private String user;\r
     private int status;\r
+    private String fileName;\r
 \r
     public PublishRecord(String[] pp) throws ParseException {\r
         super(pp);\r
-//        This is too slow!\r
-//        Matcher m = Pattern.compile(".*/publish/(\\d+)/(.*)$").matcher(pp[4]);\r
-//        if (!m.matches())\r
-//            throw new ParseException("bad pattern", 0);\r
-//        this.feedFileid = m.group(2);\r
         int ix = pp[4].indexOf("/publish/");\r
         if (ix < 0)\r
             throw new ParseException("bad pattern", 0);\r
@@ -62,6 +59,7 @@ public class PublishRecord extends BaseLogRecord {
         this.remoteAddr = pp[8];\r
         this.user = pp[9];\r
         this.status = Integer.parseInt(pp[10]);\r
+        this.fileName = StringUtils.substringAfterLast(this.getRequestUri(), "/");\r
     }\r
 \r
     public PublishRecord(ResultSet rs) throws SQLException {\r
@@ -70,6 +68,7 @@ public class PublishRecord extends BaseLogRecord {
         this.remoteAddr = rs.getString("REMOTE_ADDR");\r
         this.user = rs.getString("USER");\r
         this.status = rs.getInt("STATUS");\r
+        this.fileName = StringUtils.substringAfterLast(this.getRequestUri(), "/");\r
     }\r
 \r
     public String getFeedFileid() {\r
@@ -104,6 +103,10 @@ public class PublishRecord extends BaseLogRecord {
         this.status = status;\r
     }\r
 \r
+    public String getFileName() { return fileName;}\r
+\r
+    public void setFileName(String fileName) { this.fileName = fileName; }\r
+\r
 \r
     public LOGJSONObject reOrderObject(LOGJSONObject jo) {\r
         LinkedHashMap<String, Object> logrecordObj = new LinkedHashMap<String, Object>();\r
@@ -119,6 +122,7 @@ public class PublishRecord extends BaseLogRecord {
         logrecordObj.put("type", jo.get("type"));\r
         logrecordObj.put("date", jo.get("date"));\r
         logrecordObj.put("contentLength", jo.get("contentLength"));\r
+        logrecordObj.put("fileName", jo.get("fileName"));\r
 \r
         LOGJSONObject newjo = new LOGJSONObject(logrecordObj);\r
         return newjo;\r
@@ -128,12 +132,13 @@ public class PublishRecord extends BaseLogRecord {
     public LOGJSONObject asJSONObject() {\r
         LOGJSONObject jo = super.asJSONObject();\r
         jo.put("type", "pub");\r
-//        jo.put("feedFileid", feedFileid);\r
-//        jo.put("remoteAddr", remoteAddr);\r
-//        jo.put("user", user);\r
+        jo.put("feedFileid", feedFileid);\r
+        jo.put("remoteAddr", remoteAddr);\r
+        jo.put("user", user);\r
         jo.put("sourceIP", remoteAddr);\r
         jo.put("endpointId", user);\r
         jo.put("statusCode", status);\r
+        jo.put("fileName", fileName);\r
 \r
         LOGJSONObject newjo = this.reOrderObject(jo);\r
 \r
@@ -154,5 +159,6 @@ public class PublishRecord extends BaseLogRecord {
         ps.setNull(16, Types.INTEGER);\r
         ps.setNull(17, Types.VARCHAR);\r
         ps.setNull(19, Types.BIGINT);\r
+        ps.setString(20, getFileName());\r
     }\r
 }\r
index b6ad8e4..ab1a3a7 100644 (file)
@@ -100,7 +100,7 @@ public class LogfileLoader extends Thread {
     /**\r
      * The PreparedStatement which is loaded by a <i>Loadable</i>.\r
      */\r
-    public static final String INSERT_SQL = "insert into LOG_RECORDS values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";\r
+    public static final String INSERT_SQL = "insert into LOG_RECORDS values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";\r
     /**\r
      * Each server can assign this many IDs\r
      */\r
index 356a67a..0125832 100755 (executable)
@@ -77,6 +77,7 @@ CREATE TABLE LOG_RECORDS (
 
     RECORD_ID      BIGINT UNSIGNED NOT NULL PRIMARY KEY, /* unique ID for this record */
     CONTENT_LENGTH_2 BIGINT,
+    FILENAME       VARCHAR(256),        /* Name of the file being published on DR */
 
     INDEX (FEEDID) USING BTREE,
     INDEX (DELIVERY_SUBID) USING BTREE,
@@ -134,7 +135,7 @@ INSERT INTO PARAMETERS VALUES
     ('DELIVERY_MAX_AGE', '86400'),
     ('DELIVERY_MAX_RETRY_INTERVAL', '3600'),
     ('DELIVERY_RETRY_RATIO', '2'),
-    ('LOGROLL_INTERVAL', '300'),
+    ('LOGROLL_INTERVAL', '30'),
     ('PROV_AUTH_ADDRESSES', 'dmaap-dr-prov|dmaap-dr-node'),
     ('PROV_AUTH_SUBJECTS', ''),
     ('PROV_MAXFEED_COUNT',  '10000'),
index eaeb91c..373839c 100644 (file)
@@ -56,6 +56,7 @@ public class PublishRecordTest {
     publishRecord.setRemoteAddr("172.100.0.4");
     publishRecord.setStatus(201);
     publishRecord.setUser("user2");
+    publishRecord.setFileName("fileName");
     LOGJSONObject publishRecordJson = createPublishRecordJson();
     Assert.assertEquals(publishRecordJson.toString(), publishRecord.asJSONObject().toString());
   }
@@ -72,6 +73,7 @@ public class PublishRecordTest {
     publishRecordMap.put("type", "pub");
     publishRecordMap.put("date", "2018-08-29T10:10:10.543Z");
     publishRecordMap.put("contentLength", 285);
+    publishRecordMap.put("fileName", "fileName");
     return  new LOGJSONObject(publishRecordMap);
   }
 }
index cd87dde..b290603 100755 (executable)
@@ -75,6 +75,7 @@ CREATE TABLE LOG_RECORDS (
 
     RECORD_ID      BIGINT UNSIGNED NOT NULL PRIMARY KEY, /* unique ID for this record */
     CONTENT_LENGTH_2 BIGINT,
+    FILENAME       VARCHAR(256),        /* Name of the file being published on DR */
 
     INDEX (FEEDID) USING BTREE,
     INDEX (DELIVERY_SUBID) USING BTREE,