package org.openstack.atlas.service.domain.services.impl;
import org.openstack.atlas.service.domain.events.entities.*;
import org.openstack.atlas.service.domain.services.NotificationService;
import org.openstack.atlas.service.domain.services.helpers.AlertHelper;
import org.openstack.atlas.service.domain.services.helpers.AtomHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class NotificationServiceImpl extends BaseService implements NotificationService {
@Transactional
public void saveNodeEvent(String userName, Integer accountId, Integer loadbalancerId, Integer nodeId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
NodeEvent nE = AtomHelper.createNodeEvent(userName, accountId, loadbalancerId, nodeId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, nodeId);
loadBalancerEventRepository.save(lsE);
}
@Transactional
public void saveNodeServiceEvent(String userName, Integer accountId, Integer loadbalancerId, Integer nodeId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity, String detailedMessage, String callbackHost) {
NodeServiceEvent nE = AtomHelper.createNodeServiceEvent(userName, accountId, loadbalancerId, nodeId, title, desc, eventType, category, severity, detailedMessage, callbackHost);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, nodeId);
loadBalancerEventRepository.save(lsE);
}
@Transactional
public void saveSslTerminationEvent(String userName, Integer accountId, Integer loadbalancerId, Integer sslTerminationId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerSslTerminationEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, sslTerminationId);
loadBalancerEventRepository.save(lsE);
}
public void saveAccessListEvent(String userName, Integer accountId, Integer loadbalancerId, Integer accessListId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
AccessListEvent nE = AtomHelper.createAccessListEvent(userName, accountId, loadbalancerId, accessListId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, accessListId);
loadBalancerEventRepository.save(lsE);
}
public void saveConnectionLimitEvent(String userName, Integer accountId, Integer loadbalancerId, Integer connectionLimitId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
ConnectionLimitEvent nE = AtomHelper.createConnectionLimitEvent(userName, accountId, loadbalancerId, connectionLimitId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, connectionLimitId);
loadBalancerEventRepository.save(lsE);
}
public void saveHealthMonitorEvent(String userName, Integer accountId, Integer loadbalancerId, Integer hmId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
HealthMonitorEvent nE = AtomHelper.createHealtheMonitorEvent(userName, accountId, loadbalancerId, hmId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, hmId);
loadBalancerEventRepository.save(lsE);
}
public void saveLoadBalancerEvent(String userName, Integer accountId, Integer loadbalancerId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
LoadBalancerEvent nE = AtomHelper.createLoadBalancerEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, null);
loadBalancerEventRepository.save(lsE);
}
public void saveSessionPersistenceEvent(String userName, Integer accountId, Integer loadbalancerId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
SessionPersistenceEvent nE = AtomHelper.createSessionPersistenceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, null);
loadBalancerEventRepository.save(lsE);
}
public void saveVirtualIpEvent(String userName, Integer accountId, Integer loadbalancerId, Integer virtualIpId, String title, String desc, EventType eventType, CategoryType category, EventSeverity severity) {
VirtualIpEvent nE = AtomHelper.createVirtualIpEvent(userName, accountId, loadbalancerId, virtualIpId, title, desc, eventType, category, severity);
loadBalancerEventRepository.save(nE);
LoadBalancerServiceEvent lsE = AtomHelper.createloadBalancerServiceEvent(userName, accountId, loadbalancerId, title, desc, eventType, category, severity, virtualIpId);
loadBalancerEventRepository.save(lsE);
}
public void saveAlert(Integer accountId, Integer loadBalancerId, Exception e, String alertType, String msg) {
//saving in alert for nimbus notification
Alert alert = AlertHelper.createAlert(accountId, loadBalancerId, e, alertType, msg);
alertRepository.save(alert);
}
public void saveAlert(Exception e, String alertType, String msg) {
//saving in alert for nimbus notification
Alert alert = AlertHelper.createAlert(e, alertType, msg);
alertRepository.save(alert);
}
public void updateAlert(Alert dbAlert) {
alertRepository.update(dbAlert);
}
public Alert getAlert(Integer alertId) throws Exception {
return (alertRepository.getById(alertId));
}
}