import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
-import static org.onap.vid.logging.Headers.INVOCATION_ID;
-import static org.onap.vid.logging.Headers.PARTNER_NAME;
import com.att.eelf.configuration.EELFLogger;
import java.io.UnsupportedEncodingException;
import org.onap.vid.aai.ExceptionWithRequestInfo;
import org.onap.vid.aai.ResponseWithRequestInfo;
import org.onap.vid.aai.exceptions.InvalidPropertyException;
-import org.onap.vid.logging.RequestIdHeader;
+import org.onap.vid.logging.VidMetricLogClientFilter;
import org.onap.vid.utils.Logging;
import org.onap.vid.utils.Unchecked;
import org.springframework.beans.factory.annotation.Autowired;
if (client == null) {
try {
client = httpsAuthClientFactory.getClient(HttpClientMode.WITH_KEYSTORE);
+ VidMetricLogClientFilter metricLogClientFilter = new VidMetricLogClientFilter();
+ client.register(metricLogClientFilter);
} catch (Exception e) {
logger.info(EELFLoggerDelegate.errorLogger, "Exception in REST call to DB in initRestClient" + e.toString());
logger.debug(EELFLoggerDelegate.debugLogger, "Exception in REST call to DB : " + e.toString());
final Response response;
- String requestId = extractOrGenerateRequestId();
-
Invocation.Builder requestBuilder = client.target(url)
.request()
.accept(xml ? MediaType.APPLICATION_XML : MediaType.APPLICATION_JSON)
- .header(PARTNER_NAME.getHeaderName(), PARTNER_NAME.getHeaderValue())
- .header(TRANSACTION_ID_HEADER, transId)
.header(FROM_APP_ID_HEADER, fromAppId)
.header("Content-Type", MediaType.APPLICATION_JSON)
- .header(RequestIdHeader.ONAP_ID.getHeaderName(), requestId)
- .header(RequestIdHeader.ECOMP_ID.getHeaderName(), requestId)
- .header(INVOCATION_ID.getHeaderName(), INVOCATION_ID.getHeaderValue())
;
requestBuilder = systemPropertyHelper.isClientCertEnabled() ?
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.onap.portalsdk.core.util.SystemProperties;
-import org.onap.vid.aai.util.AAIRestInterface;
import org.onap.vid.aai.util.HttpsAuthClient;
import org.onap.vid.aai.util.ServletRequestHelper;
import org.onap.vid.aai.util.SystemPropertyHelper;
import org.onap.vid.testUtils.TestUtils;
import org.onap.vid.utils.Logging;
import org.onap.vid.utils.SystemPropertiesWrapper;
-import org.onap.vid.utils.Unchecked;
import org.springframework.http.HttpMethod;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
@Mock
SyncRestClient syncRestClient;
- @InjectMocks
- private AAIRestInterface aaiRestInterface;
-
@Captor
private ArgumentCaptor<MultivaluedMap<String, Object>> multivaluedMapArgumentCaptor;
return headersCapture;
}
- @DataProvider
- public Object[][] aaiMethods() {
- return Stream.<ThrowingConsumer<AAIRestInterface>>of(
-
- client -> client.RestGet("from app id", "some transId", Unchecked.toURI("/any path"), false),
- client -> client.RestPost("from app id", "/any path", "some payload", false),
- client -> client.doRest("from app id", "some transId", Unchecked.toURI("/any path"), "somebody", HttpMethod.GET, false, true),
- client -> client.RestPut("from app id", "/any path", "some payload", false, false)
-
- ).map(l -> ImmutableList.of(l).toArray()).collect(Collectors.toList()).toArray(new Object[][]{});
- }
-
- @Test(dataProvider = "aaiMethods")
- public void aai(Consumer<AAIRestInterface> f) throws Exception {
- //given
- final TestUtils.JavaxRsClientMocks mocks = setAndGetMocksInsideRestImpl(aaiRestInterface);
- //when
- f.accept(aaiRestInterface);
- //then
- HeadersVerifier headersVerifier = new HeadersVerifier().verifyFirstCall(mocks.getFakeBuilder());
-
- //verify requestId is same in next call but invocationId is different
- //given
- final TestUtils.JavaxRsClientMocks mocks2 = setAndGetMocksInsideRestImpl(aaiRestInterface);
- //when
- f.accept(aaiRestInterface);
- //then
- headersVerifier.verifySecondCall(mocks2.getFakeBuilder());
-
- }
-
// @Test(dataProvider = "schedulerMethods")
// public void scheduler(Consumer<AAIRestInterface> f) throws Exception {
//
import static org.testng.AssertJUnit.assertEquals;
import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.CLEAR_THEN_SET;
+import static vid.automation.test.services.SimulatorApi.registerExpectationFromPresets;
import static vid.automation.test.utils.TestHelper.GET_SERVICE_MODELS_BY_DISTRIBUTION_STATUS;
import com.fasterxml.jackson.core.JsonProcessingException;
response.getBody());
}
+ @Test
+ public void whenCallAaiThroughAAIRestInterface_thenRequestRecordedInMetricsLog() {
+ registerExpectationFromPresets(ImmutableList.of(
+ new PresetAAIGetVpnsByType(),
+ new PresetAAIGetSubscribersGet()
+ ),CLEAR_THEN_SET);
+
+ String url = uri + "/aai_get_vpn_list";
+ ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
+ final String requestId = response.getHeaders().getFirst("X-ECOMP-RequestID-echo");
+ LoggerFormatTest.assertHeadersAndMetricLogs(restTemplate, uri, requestId,"/network/vpn-bindings" , 1);
+ }
+
@Test
public void getVpnList() {
SimulatorApi.registerExpectationFromPreset(new PresetAAIGetVpnsByType(), CLEAR_THEN_SET);
List<RecordedRequests> requests = retrieveRecordedRequests();
List<RecordedRequests> underTestRequests =
- requests.stream().filter(x->x.path.startsWith(path)).collect(toList());
+ requests.stream().filter(x->x.path.contains(path)).collect(toList());
assertThat(underTestRequests, hasSize(requestsSize));