ChangeManagementApi/UserApi to verify incoming requests in audit log.
Refactor assert message and contains method for validation
Add audit logging validation to Health Check test
Refactor audit log validation according to code review comments
Fix the test of Add audit logging validation to Health Check test
Issue-ID: VID-253
Signed-off-by: Amir Skalka <amir.skalka@intl.att.com>
Change-Id: I0379520054b65f2141745579a14690bdc4824655
}
public void login(UserCredentials userCredentials) {
+ final List<ClientHttpRequestInterceptor> interceptors = loginWithChosenRESTClient(userCredentials, restTemplate);
+ restTemplateErrorAgnostic.setInterceptors(interceptors);
+ restTemplateErrorAgnostic.setErrorHandler(new DefaultResponseErrorHandler() {
+ @Override
+ public boolean hasError(ClientHttpResponse response) {
+ return false;
+ }
+ });
+ }
+
+ public List<ClientHttpRequestInterceptor> loginWithChosenRESTClient(UserCredentials userCredentials,RestTemplate givenRestTemplate) {
final List<ClientHttpRequestInterceptor> interceptors = singletonList(new CookieAndJsonHttpHeadersInterceptor(getUri(), userCredentials));
- restTemplate.setInterceptors(interceptors);
- restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
+ givenRestTemplate.setInterceptors(interceptors);
+ givenRestTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
@Override
public void handleError(ClientHttpResponse response) throws IOException {
try {
}
}
});
-
- restTemplateErrorAgnostic.setInterceptors(interceptors);
- restTemplateErrorAgnostic.setErrorHandler(new DefaultResponseErrorHandler() {
- @Override
- public boolean hasError(ClientHttpResponse response) {
- return false;
- }
- });
+ return interceptors;
}
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId;
+import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet;
import org.onap.simulator.presetGenerator.presets.mso.changeManagement.PresetMsoChangeManagementBase;
import org.onap.simulator.presetGenerator.presets.mso.changeManagement.PresetMsoVnfInPlaceSoftwareUpdate;
import org.onap.simulator.presetGenerator.presets.mso.changeManagement.PresetMsoVnfReplace;
import org.onap.simulator.presetGenerator.presets.aaf.*;
import org.onap.vid.model.mso.*;
import org.onap.vid.model.workflow.*;
+import org.onap.vid.more.LoggerFormatTest;
import org.springframework.http.HttpStatus;
import org.springframework.util.StopWatch;
+import org.springframework.web.client.RestTemplate;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
Response response = callChangeManagementUpdate(vnfIds, changeManagementRequest);
MsoResponseWrapper2 body = response.readEntity(MsoResponseWrapper2.class);
assertForHappyPath(vnfIds, body, requestType);
+ RestTemplate manualRestTemplate = new RestTemplate();
+ super.loginWithChosenRESTClient(getUserCredentials(), manualRestTemplate);
+ SimulatorApi.registerExpectationFromPreset( new PresetAAIGetSubscribersGet(), RegistrationStrategy.APPEND);
+ LoggerFormatTest
+ .verifyExistenceOfIncomingReqsInAuditLogs(manualRestTemplate, uri,
+ response.getHeaders().get("X-ECOMP-RequestID-echo").get(0).toString(),
+ "/vid/change-management/workflow/VidVnf");
+
}
private ChangeManagementRequest createChangeManagementRequest(VnfIds vnfDetails, String requestType) {
String requestId = responseEntity.getHeaders().getFirst("X-ECOMP-RequestID-echo");
LoggerFormatTest.assertHeadersAndMetricLogs(restTemplate, uri, requestId, "/mso/orchestrationRequests/", 2);
+ LoggerFormatTest.verifyExistenceOfIncomingReqsInAuditLogs(restTemplate, uri, requestId, CHANGE_MANAGEMENT + MSO);
}
@Test
String path){
List<String> logLines = getRequestLogLines(requestId, LogName.audit2019, restTemplate, uri);
String requestIdPrefix = "RequestID=";
- assertThat("request id must be found in exactly two rows - entry & exit message in audit log, and include the req path",
+ assertThat("\nENTRY & EXIT logs are expected to include RequestId: " + requestId
+ + " \nAnd request path: "
+ + path +
+ "\nin exactly two rows - inside the audit log matching lines:\n"
+ + String.join("\n", logLines) + "\n",
logLines,
- containsInRelativeOrder(
+ contains(
allOf(
containsString(requestIdPrefix+requestId),
containsString("ENTRY"),
@Test
public void healthcheck_doGET_RequestIdReceived() {
+ String path = "/healthCheck";
final Pair<HttpEntity, String> responseAndUuid = makeRequest(
- HttpMethod.GET, "/healthCheck", null
+ HttpMethod.GET, path, null
);
assertThatUuidInResponseAndUuidIsInARecentLog(LogName.audit2019, responseAndUuid);
+ LoggerFormatTest
+ .verifyExistenceOfIncomingReqsInAuditLogs(restTemplate, uri,
+ responseAndUuid.getKey().getHeaders().get("X-ECOMP-RequestID-echo").get(0).toString(), path);
}
private void assertThatUuidInResponseAndUuidIsInARecentLog(LogName logName, Pair<HttpEntity, String> responseAndUuid) {