use of cern.laser.business.definition.LaserDefinitionNotFoundException in project ACS by ACS-Community.
the class CategoryDefinitionServiceImpl method createCategoryLink.
public void createCategoryLink(String userId, CategoryLink link) throws LaserDefinitionException {
if (link == null) {
throw new LaserDefinitionNotValidException("category/alarm link is null");
}
if (link.getCategory() == null) {
throw new LaserDefinitionNotValidException("malformed category/alarm link: category is null");
}
if (link.getAlarm() == null) {
throw new LaserDefinitionNotValidException("malformed category/alarm link: alarm is null");
}
AdminUser admin_user = adminUserDAO.findAdminUser(userId);
Category category = categoryDAO.getCategoryByPath(link.getCategory().getPath());
if (category == null) {
throw new LaserDefinitionNotFoundException("category with path " + link.getCategory().getPath() + " does not exists");
}
if (!admin_user.administersCategory(category.getCategoryId())) {
throw new LaserDefinitionNotAllowedException("not an administrators for the category : " + link.getCategory());
}
Alarm alarm = alarmDAO.getAlarm(link.getAlarm().getAlarmId());
if (alarm == null) {
throw new LaserDefinitionNotFoundException("alarm with id " + link.getAlarm().getAlarmId() + " does not exist");
}
Alarm surveillance_alarm = alarmDAO.findAlarm(alarm.getSource().getSurveillanceAlarmId());
if (category.containsAlarm(alarm)) {
throw new LaserDefinitionDuplicationException("alarm/category link already defined : " + link);
}
LOGGER.info("user " + admin_user.getName() + " creating alarm/category link : " + link);
category.addAlarm(alarm);
category.addAlarm(surveillance_alarm);
categoryDAO.updateCategory(category);
try {
alarmCache.invalidate(alarm.getAlarmId());
alarmCache.invalidate(surveillance_alarm.getAlarmId());
} catch (AlarmCacheException e) {
LOGGER.error("unable to propagate category link : " + link, e);
}
LOGGER.info("link created");
}
use of cern.laser.business.definition.LaserDefinitionNotFoundException in project ACS by ACS-Community.
the class CategoryDefinitionServiceImpl method createCategory.
public void createCategory(String userId, CategoryDefinition categoryDefinition) throws LaserDefinitionException {
if (categoryDefinition == null) {
throw new LaserDefinitionNotValidException("category is null");
}
Category category = categoryDAO.getCategoryByPath(categoryDefinition.getPath());
if (category != null) {
throw new LaserDefinitionDuplicationException("category with path " + categoryDefinition.getPath() + " already exist");
}
AdminUser admin_user = adminUserDAO.findAdminUser(userId);
AdminUser laser_user = adminUserDAO.findByLaserAdminUser();
Category parent_category = categoryDAO.getCategoryByPath(categoryDefinition.getParentPath());
if (parent_category == null) {
throw new LaserDefinitionNotFoundException("parent category with path " + categoryDefinition.getParentPath() + " does not exist");
}
if (!admin_user.administersCategory(parent_category.getCategoryId())) {
throw new LaserDefinitionNotAllowedException(admin_user.getName() + " not an administrator for the parent of category : " + categoryDefinition);
}
LOGGER.info("user " + admin_user.getName() + " creating category : " + categoryDefinition);
category = new CategoryImpl(categoryDefinition);
parent_category.addChildCategory(category);
categoryDAO.saveCategory(category);
admin_user.addAdministeredCategory(category);
adminUserDAO.updateAdminUser(admin_user);
laser_user.addAdministeredCategory(category);
adminUserDAO.updateAdminUser(laser_user);
LOGGER.info("category created");
}
use of cern.laser.business.definition.LaserDefinitionNotFoundException in project ACS by ACS-Community.
the class AlarmDefinitionServiceImpl method createAlarmInternal.
//
// -- PRIVATE METHODS ----------------------------------------------
//
private Alarm createAlarmInternal(String userId, AlarmDefinition alarmDefinition) throws LaserDefinitionException {
if (alarmDefinition == null) {
throw new LaserDefinitionNotValidException("alarm is null");
}
Alarm alarm = alarmDAO.getAlarm(alarmDefinition.getAlarmId());
if (alarm != null) {
throw new LaserDefinitionDuplicationException("alarm " + alarmDefinition.getAlarmId() + " does already exist");
}
if (alarmDefinition.getSourceName() == null) {
throw new LaserDefinitionNotValidException("source name for the alarm definition is null");
}
Source source = sourceDAO.getSource(alarmDefinition.getSourceName());
if (source == null) {
throw new LaserDefinitionNotFoundException("source " + alarmDefinition.getSourceName() + " does not exist");
}
if (alarmDefinition.getResponsiblePersonId() == null) {
throw new LaserDefinitionNotValidException("responsible id for the alarm definition is null");
}
ResponsiblePerson responsible = responsiblePersonDAO.getResponsiblePerson(alarmDefinition.getResponsiblePersonId());
if (responsible == null) {
throw new LaserDefinitionNotFoundException("responsible with id " + alarmDefinition.getResponsiblePersonId() + " does not exist");
}
AdminUser admin_user = adminUserDAO.findAdminUser(userId);
if (!admin_user.administersSource(source)) {
throw new LaserDefinitionNotAllowedException("not an administrator for the alarm : " + alarmDefinition);
}
LOGGER.info("user " + admin_user.getName() + " creating alarm : " + alarmDefinition);
alarm = new AlarmImpl(alarmDefinition, source, responsible);
String building_number = alarmDefinition.getBuilding();
if (building_number != null && !building_number.equals("")) {
Building building = alarmDAO.findBuilding(building_number);
alarm.getLocation().setBuilding(building);
}
return alarm;
}
use of cern.laser.business.definition.LaserDefinitionNotFoundException in project ACS by ACS-Community.
the class AlarmDefinitionServiceImpl method validateReductionLink.
private Alarm[] validateReductionLink(ReductionLink link) throws LaserDefinitionException {
if (link == null) {
throw new LaserDefinitionNotValidException("reduction link is null");
}
if (link.getParent() == null) {
throw new LaserDefinitionNotValidException("malformed reduction link: parent is null");
}
if (link.getChild() == null) {
throw new LaserDefinitionNotValidException("malformed reduction link: child is null");
}
Alarm parent = alarmDAO.getAlarm(link.getParent().getAlarmId());
if (parent == null) {
throw new LaserDefinitionNotFoundException("reduction parent " + link.getParent().getAlarmId() + " does not exist");
}
Alarm child = alarmDAO.getAlarm(link.getChild().getAlarmId());
if (child == null) {
throw new LaserDefinitionNotFoundException("reduction child " + link.getChild().getAlarmId() + " does not exist");
}
return new Alarm[] { parent, child };
}
use of cern.laser.business.definition.LaserDefinitionNotFoundException in project ACS by ACS-Community.
the class AdminUserDefinitionServiceImpl method removeAdminUser.
public void removeAdminUser(String name) throws LaserDefinitionException {
LOGGER.info("removing admin user : " + name);
AdminUser admin_user = adminUserDAO.getAdminUserByName(name);
if (admin_user == null) {
throw new LaserDefinitionNotFoundException("a user " + name + " does not exists");
}
adminUserDAO.deleteAdminUser(admin_user);
admin_user = null;
LOGGER.info("user " + name + " removed");
}
Aggregations