use of com.sequenceiq.cloudbreak.structuredevent.event.cdp.CDPOperationDetails in project cloudbreak by hortonworks.
the class SdxEventsService method convert.
/**
* Converts a collection of {@code StructuredNotificationEvent} to {@code CDPStructuredEvent}.
*
* @param structuredNotificationEvent Event response from cloudbreak.
* @param datalakeCrn Crn of data lake.
* @return CDP structured Event
*/
private CDPStructuredEvent convert(StructuredNotificationEvent structuredNotificationEvent, String datalakeCrn) {
CDPStructuredNotificationEvent cdpStructuredNotificationEvent = new CDPStructuredNotificationEvent();
CDPOperationDetails cdpOperationDetails = new CDPOperationDetails();
cdpOperationDetails.setTimestamp(structuredNotificationEvent.getOperation().getTimestamp());
cdpOperationDetails.setEventType(StructuredEventType.NOTIFICATION);
cdpOperationDetails.setResourceName(structuredNotificationEvent.getOperation().getResourceName());
cdpOperationDetails.setResourceId(structuredNotificationEvent.getOperation().getResourceId());
cdpOperationDetails.setResourceCrn(datalakeCrn);
cdpOperationDetails.setResourceEvent(structuredNotificationEvent.getOperation().getEventType().name());
cdpOperationDetails.setResourceType(CloudbreakEventService.DATALAKE_RESOURCE_TYPE);
cdpStructuredNotificationEvent.setOperation(cdpOperationDetails);
cdpStructuredNotificationEvent.setStatusReason(structuredNotificationEvent.getNotificationDetails().getNotification());
return cdpStructuredNotificationEvent;
}
use of com.sequenceiq.cloudbreak.structuredevent.event.cdp.CDPOperationDetails in project cloudbreak by hortonworks.
the class EventSenderService method getStructuredEvent.
private CDPStructuredNotificationEvent getStructuredEvent(AccountAwareResource resource, ResourceEvent resourceEvent, Object payload, Collection<?> messageArgs) {
String resourceType = resource.getClass().getSimpleName().toLowerCase();
String resourceCrn = resource.getResourceCrn();
CDPOperationDetails operationDetails = new CDPOperationDetails(System.currentTimeMillis(), NOTIFICATION, resourceType, resource.getId(), resource.getName(), nodeConfig.getId(), serviceVersion, resource.getAccountId(), resourceCrn, ThreadBasedUserCrnProvider.getUserCrn(), resourceCrn, resourceEvent.name());
CDPStructuredNotificationDetails notificationDetails = getNotificationDetails(resourceEvent, resourceCrn, resourceType, payload);
String message = cloudbreakMessagesService.getMessage(resourceEvent.getMessage(), messageArgs);
return new CDPStructuredNotificationEvent(operationDetails, notificationDetails, resourceEvent.name(), message);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.cdp.CDPOperationDetails in project cloudbreak by hortonworks.
the class EventSenderService method createStructureEventForMissingEnvironment.
private CDPStructuredNotificationEvent createStructureEventForMissingEnvironment(BaseNamedFlowEvent payload, ResourceEvent resourceEvent, String userCrn) {
String resourceType = payload.getClass().getSimpleName().toLowerCase();
String resourceCrn = payload.getResourceCrn();
CDPOperationDetails operationDetails = new CDPOperationDetails(System.currentTimeMillis(), NOTIFICATION, resourceType, payload.getResourceId(), payload.getResourceName(), nodeConfig.getId(), serviceVersion, null, resourceCrn, userCrn, resourceCrn, resourceEvent.name());
CDPStructuredNotificationDetails notificationDetails = getNotificationDetails(resourceEvent, resourceCrn, resourceType, payload);
String message = cloudbreakMessagesService.getMessage(resourceEvent.getMessage());
return new CDPStructuredNotificationEvent(operationDetails, notificationDetails, resourceEvent.name(), message);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.cdp.CDPOperationDetails in project cloudbreak by hortonworks.
the class CDPStructuredEventDBServiceTest method testCreateWhenResourceCrnIsEmpty.
@Test
public void testCreateWhenResourceCrnIsEmpty() {
CDPStructuredEvent event = new CDPStructuredRestCallEvent();
CDPOperationDetails operation = new CDPOperationDetails();
operation.setResourceCrn("");
event.setOperation(operation);
underTest.create(event);
verify(cdpStructuredEventToCDPStructuredEventEntityConverter, never()).convert(event);
}
use of com.sequenceiq.cloudbreak.structuredevent.event.cdp.CDPOperationDetails in project cloudbreak by hortonworks.
the class CDPStructuredEventDBServiceTest method testCreateWhenResourceCrnIsNull.
@Test
public void testCreateWhenResourceCrnIsNull() {
CDPStructuredEvent event = new CDPStructuredRestCallEvent();
CDPOperationDetails operation = new CDPOperationDetails();
operation.setResourceCrn(null);
event.setOperation(operation);
underTest.create(event);
verify(cdpStructuredEventToCDPStructuredEventEntityConverter, never()).convert(event);
}
Aggregations