diff options
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
====================
|