use of com.sequenceiq.cloudbreak.structuredevent.event.StructuredRestCallEvent in project cloudbreak by hortonworks.
the class LegacyRestCommonServiceTest method testWhenNameAndResourceCrnComeFromTheResponse.
@Test
public void testWhenNameAndResourceCrnComeFromTheResponse() {
StructuredRestCallEvent event = new StructuredRestCallEvent();
OperationDetails operation = new OperationDetails();
RestCallDetails restCallDetails = new RestCallDetails();
RestRequestDetails request = new RestRequestDetails();
RestResponseDetails response = new RestResponseDetails();
response.setBody(new Json(Map.of("name", "name3", "resourceCrn", "crn3")).getValue());
restCallDetails.setRestRequest(request);
restCallDetails.setRestResponse(response);
event.setRestCall(restCallDetails);
event.setOperation(operation);
Map<String, Object> expected = new HashMap<>();
expected.put(CLUSTER_NAME, "name3");
expected.put(CLUSTER_CRN, "crn3");
Map<String, Object> actual = legacyRestCommonService.addClusterCrnAndNameIfPresent(event);
assertEquals(expected, actual);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.StructuredRestCallEvent in project cloudbreak by hortonworks.
the class LegacyRestCommonServiceTest method testWhenNameAndResourceCrnNotExists.
@Test
public void testWhenNameAndResourceCrnNotExists() {
StructuredRestCallEvent event = new StructuredRestCallEvent();
OperationDetails operation = new OperationDetails();
RestCallDetails restCallDetails = new RestCallDetails();
RestRequestDetails request = new RestRequestDetails();
request.setMethod("POST");
request.setRequestUri("uri");
RestResponseDetails response = new RestResponseDetails();
restCallDetails.setRestRequest(request);
restCallDetails.setRestResponse(response);
event.setRestCall(restCallDetails);
event.setOperation(operation);
UnsupportedOperationException exception = assertThrows(UnsupportedOperationException.class, () -> legacyRestCommonService.addClusterCrnAndNameIfPresent(event));
assertEquals(exception.getMessage(), "Cannot determine the resource crn or name, so we does not support for auditing for method: " + "POST, uri: uri, body: null");
}
use of com.sequenceiq.cloudbreak.structuredevent.event.StructuredRestCallEvent in project cloudbreak by hortonworks.
the class LegacyRestCommonServiceTest method testWhenNameAndResourceCrnComeFromTheRequestBodyButExistInResponse.
@Test
public void testWhenNameAndResourceCrnComeFromTheRequestBodyButExistInResponse() {
StructuredRestCallEvent event = new StructuredRestCallEvent();
OperationDetails operation = new OperationDetails();
RestCallDetails restCallDetails = new RestCallDetails();
RestRequestDetails request = new RestRequestDetails();
request.setBody(new Json(Map.of("name", "name2", "resourceCrn", "crn2")).getValue());
RestResponseDetails response = new RestResponseDetails();
response.setBody(new Json(Map.of("name", "name3", "resourceCrn", "crn3")).getValue());
restCallDetails.setRestRequest(request);
restCallDetails.setRestResponse(response);
event.setRestCall(restCallDetails);
event.setOperation(operation);
Map<String, Object> expected = new HashMap<>();
expected.put(CLUSTER_NAME, "name2");
expected.put(CLUSTER_CRN, "crn2");
Map<String, Object> actual = legacyRestCommonService.addClusterCrnAndNameIfPresent(event);
assertEquals(expected, actual);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.StructuredRestCallEvent in project cloudbreak by hortonworks.
the class LegacyRestCommonServiceTest method testWhenNamesAndCrnAreListAndMethodDelete.
@Test
public void testWhenNamesAndCrnAreListAndMethodDelete() {
StructuredRestCallEvent event = new StructuredRestCallEvent();
OperationDetails operation = new OperationDetails();
RestCallDetails restCallDetails = new RestCallDetails();
RestRequestDetails request = new RestRequestDetails();
request.setMethod("DELETE");
request.setBody(new Json(Map.of("names", List.of("names1", "names2"), "crns", List.of("crns1", "crns2"))).getValue());
RestResponseDetails response = new RestResponseDetails();
restCallDetails.setRestRequest(request);
restCallDetails.setRestResponse(response);
event.setRestCall(restCallDetails);
event.setOperation(operation);
Map<String, Object> expected = new HashMap<>();
expected.put(CLUSTER_NAME, "names1,names2");
expected.put(CLUSTER_CRN, "crns1,crns2");
Map<String, Object> actual = legacyRestCommonService.addClusterCrnAndNameIfPresent(event);
assertEquals(expected, actual);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.StructuredRestCallEvent in project cloudbreak by hortonworks.
the class LegacyStructuredEventFilter method sendStructuredEvent.
private void sendStructuredEvent(RestRequestDetails restRequest, RestResponseDetails restResponse, Map<String, String> restParams, Long requestTime, String responseBody) {
restResponse.setBody(responseBody);
RestCallDetails restCall = new RestCallDetails();
restCall.setRestRequest(restRequest);
restCall.setRestResponse(restResponse);
restCall.setDuration(System.currentTimeMillis() - requestTime);
CloudbreakUser cloudbreakUser = cloudbreakRestRequestThreadLocalService.getCloudbreakUser();
if (cloudbreakUser == null) {
String serviceId = authenticatedUserService.getServiceAccountId();
cloudbreakUser = new CloudbreakUser(serviceId, serviceId, serviceId, serviceId, serviceId);
}
Long workspaceId = cloudbreakRestRequestThreadLocalService.getRequestedWorkspaceId();
legacyStructuredEventClient.sendStructuredEvent(new StructuredRestCallEvent(createOperationDetails(restParams, requestTime, workspaceId, cloudbreakUser), restCall));
}
Aggregations