aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmettCox <emmett.cox@est.tech>2019-02-18 12:24:01 +0000
committerEmmettCox <emmett.cox@est.tech>2019-02-18 12:24:01 +0000
commitefa3decef17b55b6ce8226c78c6d8327e0a41896 (patch)
tree6a9357d6bc92ae7be58471b4f427c78dfa08e13d
parentc50374709585766e887f349a139de0a6595c1ca1 (diff)
Allow LogServlet to query based upon Filename
Documentation updates for filename Query on LogServlet Change-Id: I22036c42e202831766a7968bd434340cfcb6c2f5 Issue-ID: DMAAP-1022 Issue-ID: DMAAP-1029 Signed-off-by: EmmettCox <emmett.cox@est.tech>
-rw-r--r--datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/LogServlet.java13
-rw-r--r--datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java2
-rwxr-xr-xdatarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/LogServletTest.java44
-rwxr-xr-xdatarouter-prov/src/test/resources/create.sql4
-rwxr-xr-xdocs/data-router/data-router.rst7
5 files changed, 58 insertions, 12 deletions
diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/LogServlet.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/LogServlet.java
index eceab571..8a1a4ba5 100644
--- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/LogServlet.java
+++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/LogServlet.java
@@ -69,7 +69,7 @@ public class LogServlet extends BaseServlet {
private static final String FMT_1 = "yyyy-MM-dd'T'HH:mm:ss'Z'";
private static final String FMT_2 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
- private static boolean isfeedlog;
+ private boolean isfeedlog;
public abstract class RowHandler {
private final ServletOutputStream out;
@@ -281,12 +281,14 @@ public class LogServlet extends BaseServlet {
map.put("err", "bad type");
return map;
}
- } else
+ } else {
map.put("type", "all");
+ }
map.put("publishSQL", "");
map.put("statusSQL", "");
map.put("resultSQL", "");
map.put("reasonSQL", "");
+ map.put("filenameSQL", "");
s = req.getParameter("publishId");
if (s != null) {
@@ -297,6 +299,11 @@ public class LogServlet extends BaseServlet {
map.put("publishSQL", " AND PUBLISH_ID = '"+s+"'");
}
+ s = req.getParameter("filename");
+ if (s != null) {
+ map.put("filenameSQL", " AND FILENAME = '"+s+"'");
+ }
+
s = req.getParameter("statusCode");
if (s != null) {
String sql = null;
@@ -388,7 +395,7 @@ public class LogServlet extends BaseServlet {
if (type.equals("all") || type.equals("pub")) {
String sql = "select * from LOG_RECORDS where FEEDID = "+feedid
+ " AND TYPE = 'pub'"
- + map.get("timeSQL") + map.get("publishSQL") + map.get("statusSQL");
+ + map.get("timeSQL") + map.get("publishSQL") + map.get("statusSQL") + map.get("filenameSQL");
getRecordsForSQL(sql, rh);
}
}
diff --git a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java
index 2cde3971..5e16bac8 100644
--- a/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java
+++ b/datarouter-prov/src/main/java/org/onap/dmaap/datarouter/provisioning/beans/PublishRecord.java
@@ -68,7 +68,7 @@ public class PublishRecord extends BaseLogRecord {
this.remoteAddr = rs.getString("REMOTE_ADDR");
this.user = rs.getString("USER");
this.status = rs.getInt("STATUS");
- this.fileName = StringUtils.substringAfterLast(this.getRequestUri(), "/");
+ this.fileName = rs.getString("FILENAME");
}
public String getFeedFileid() {
diff --git a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/LogServletTest.java b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/LogServletTest.java
index 03e3d4f2..c2bccb71 100755
--- a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/LogServletTest.java
+++ b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/LogServletTest.java
@@ -43,8 +43,7 @@ import javax.persistence.Persistence;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.*;
import static org.powermock.api.mockito.PowerMockito.when;
@@ -60,6 +59,9 @@ public class LogServletTest extends DrServletTestBase {
@Mock
private HttpServletResponse response;
+ @Mock
+ private ServletOutputStream s;
+
ListAppender<ILoggingEvent> listAppender;
@BeforeClass
@@ -184,6 +186,38 @@ public class LogServletTest extends DrServletTestBase {
}
@Test
+ public void Given_Request_Is_GetPublishRecordsForFeed_And_Type_Is_Publish_With_Filename_That_exists_A_STATUS_OK_Response_Is_Generated_And_Correct_Value_Returned()
+ throws Exception {
+ when(request.getParameter("type")).thenReturn("pub");
+ when(request.getPathInfo()).thenReturn("/1");
+ when(request.getParameter("publishId")).thenReturn("ID");
+ when(request.getParameter("expiryReason")).thenReturn(null);
+ when(request.getParameter("statusCode")).thenReturn("204");
+ when(request.getParameter("filename")).thenReturn("file123");
+ logServlet.doGet(request, response);
+ verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+ verify(s, times(1)).print("[");
+ verify(s, times(1)).print(matches("\n\\{\"statusCode\":204,\"publishId\":\"ID\",\"requestURI\":\"URL/file123\",\"sourceIP\":\"172.0.0.8\",\"method\":\"PUT\",\"contentType\":\"application/vnd.dmaap-dr.log-list; version=1.0\",\"endpointId\":\"user\",\"type\":\"pub\",\"date\":\"2050-05-14T1[6-7]:46:04.422Z\",\"contentLength\":100,\"fileName\":\"file123\"}"));
+ verify(s, times(1)).print("[");
+ }
+
+ @Test
+ public void Given_Request_Is_GetPublishRecordsForFeed_And_Type_Is_Publish_With_Filename_That_Doesnt_exist_A_STATUS_OK_Response_Is_Generated_And_Empty_Array_Returned()
+ throws Exception {
+ when(request.getParameter("type")).thenReturn("pub");
+ when(request.getPathInfo()).thenReturn("/1");
+ when(request.getParameter("publishId")).thenReturn("ID");
+ when(request.getParameter("expiryReason")).thenReturn(null);
+ when(request.getParameter("statusCode")).thenReturn("204");
+ when(request.getParameter("filename")).thenReturn("file456");
+ logServlet.doGet(request, response);
+ verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+ verify(s, times(1)).print("[");
+ verify(s, times(0)).print(matches("\n\\{\"statusCode\":204,\"publishId\":\"ID\",\"requestURI\":\"URL/file123\",\"sourceIP\":\"172.0.0.8\",\"method\":\"PUT\",\"contentType\":\"application/vnd.dmaap-dr.log-list; version=1.0\",\"endpointId\":\"user\",\"type\":\"pub\",\"date\":\"2050-05-14T1[6-7]:46:04.422Z\",\"contentLength\":100,\"fileName\":\"file123\"}"));
+ verify(s, times(1)).print("[");
+ }
+
+ @Test
public void Given_Request_Is_getDeliveryRecordsForFeed_And_Type_Is_Delivery_A_STATUS_OK_Response_Is_Generated()
throws Exception {
when(request.getParameter("type")).thenReturn("del");
@@ -232,9 +266,9 @@ public class LogServletTest extends DrServletTestBase {
when(request.getParameter("publishId")).thenReturn("bad_PublishID");
when(request.getParameter("statusCode")).thenReturn("-1");
when(request.getParameter("expiryReason")).thenReturn("other");
- when(request.getParameter("start")).thenReturn(null);
- when(request.getParameter("end")).thenReturn(null);
- ServletOutputStream s = mock(ServletOutputStream.class);
+ when(request.getParameter("start")).thenReturn("2536159564422");
+ when(request.getParameter("end")).thenReturn("2536159564422");
+ s = mock(ServletOutputStream.class);
when(response.getOutputStream()).thenReturn(s);
}
} \ No newline at end of file
diff --git a/datarouter-prov/src/test/resources/create.sql b/datarouter-prov/src/test/resources/create.sql
index fa7402ae..d29e5891 100755
--- a/datarouter-prov/src/test/resources/create.sql
+++ b/datarouter-prov/src/test/resources/create.sql
@@ -169,8 +169,8 @@ VALUES (2,1,'user',null,2);
insert into NODESETS(SETID, NODEID)
VALUES (2,2);
-insert into LOG_RECORDS(RECORD_ID,TYPE,EVENT_TIME,PUBLISH_ID,FEEDID,REQURI,METHOD,CONTENT_TYPE,CONTENT_LENGTH,FEED_FILEID,REMOTE_ADDR,USER,STATUS,DELIVERY_SUBID,DELIVERY_FILEID,RESULT,ATTEMPTS,REASON)
-VALUES(1,'pub',2536159564422,'ID',1,'URL','GET','application/vnd.dmaap-dr.log-list; version=1.0',100,1,'172.0.0.8','user',204,1,1,204,0,'other');
+insert into LOG_RECORDS(RECORD_ID,TYPE,EVENT_TIME,PUBLISH_ID,FEEDID,REQURI,METHOD,CONTENT_TYPE,CONTENT_LENGTH,FEED_FILEID,REMOTE_ADDR,USER,STATUS,DELIVERY_SUBID,DELIVERY_FILEID,RESULT,ATTEMPTS,REASON,FILENAME)
+VALUES(1,'pub',2536159564422,'ID',1,'URL/file123','PUT','application/vnd.dmaap-dr.log-list; version=1.0',100,1,'172.0.0.8','user',204,1,1,204,0,'other','file123');
CREATE ALIAS IF NOT EXISTS `SUBSTRING_INDEX` AS $$
String Function(String one, String two, String three){
diff --git a/docs/data-router/data-router.rst b/docs/data-router/data-router.rst
index 2c3e1a69..14b5181f 100755
--- a/docs/data-router/data-router.rst
+++ b/docs/data-router/data-router.rst
@@ -886,7 +886,7 @@ Request parameters
+------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+
| Name | Description | Param Type | Data Type | MaxLen | Required | Valid/Example Values |
+========================+=================================+==================+============+==============+=============+======================================+
-| feedId | Id of the feed you want | Path | String | | N | 1 |
+| feedId | Id of the feed you want | Path | String | | Y | 1 |
| | logs for | | | | | |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+
| type | Select records of the | Path | String | | N | * pub: Publish attempt |
@@ -914,6 +914,9 @@ Request parameters
| expiryReason | Select records with the | Path | String | | N | |
| | specified expiry reason | | | | | |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+
+| filename | Select published records with | Path | String | | N | |
+| | the specified filename | | | | | |
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+
Response Parameters
===================
@@ -975,6 +978,8 @@ Response Parameters
| attempts | Total number of attempts made before |
| | delivery attempts were discontinued |
+------------------------+----------------------------------------------+
+| filename | File name associated with a publish record |
++------------------------+----------------------------------------------+
Response/Error Codes
====================