Search in sources :

Example 1 with LaserDefinitionDuplicationException

use of cern.laser.business.definition.LaserDefinitionDuplicationException 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");
}
Also used : LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) Category(cern.laser.business.data.Category) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) Alarm(cern.laser.business.data.Alarm) AdminUser(cern.laser.business.data.AdminUser) AlarmCacheException(cern.laser.business.cache.AlarmCacheException) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException)

Example 2 with LaserDefinitionDuplicationException

use of cern.laser.business.definition.LaserDefinitionDuplicationException 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");
}
Also used : CategoryImpl(cern.laser.business.data.CategoryImpl) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) Category(cern.laser.business.data.Category) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) AdminUser(cern.laser.business.data.AdminUser) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException)

Example 3 with LaserDefinitionDuplicationException

use of cern.laser.business.definition.LaserDefinitionDuplicationException 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;
}
Also used : Building(cern.laser.business.data.Building) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) ResponsiblePerson(cern.laser.business.data.ResponsiblePerson) Alarm(cern.laser.business.data.Alarm) AlarmImpl(cern.laser.business.data.AlarmImpl) AdminUser(cern.laser.business.data.AdminUser) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) Source(cern.laser.business.data.Source) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException)

Example 4 with LaserDefinitionDuplicationException

use of cern.laser.business.definition.LaserDefinitionDuplicationException in project ACS by ACS-Community.

the class AlarmDefinitionServiceImpl method createMultiplicityLinkInternal.

private void createMultiplicityLinkInternal(String userId, ReductionLink link) throws LaserDefinitionException {
    Alarm[] parent_child = validateReductionLink(link);
    //alarmDAO.findAlarm(link.getParent().getAlarmId());
    Alarm parent = parent_child[0];
    //alarmDAO.findAlarm(link.getChild().getAlarmId());
    Alarm child = parent_child[1];
    if (((AlarmImpl) parent).getMultiplicityChildrenIds().contains(child.getAlarmId())) {
        throw new LaserDefinitionDuplicationException("reduction child " + link.getChild().getAlarmId() + " does not exist");
    }
    AdminUser admin_user = adminUserDAO.findAdminUser(userId);
    LOGGER.info("user " + admin_user.getName() + " creating multiplicity link : " + link);
    parent.addMultiplicityChild(child);
    alarmDAO.updateAlarm(parent);
    LOGGER.info("multiplicity link created");
}
Also used : Alarm(cern.laser.business.data.Alarm) AdminUser(cern.laser.business.data.AdminUser) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException)

Example 5 with LaserDefinitionDuplicationException

use of cern.laser.business.definition.LaserDefinitionDuplicationException in project ACS by ACS-Community.

the class SourceDefinitionServiceImpl method createSource.

public void createSource(String userId, SourceDefinition sourceDefinition) throws LaserDefinitionException {
    if (sourceDefinition == null) {
        throw new LaserDefinitionNotValidException("source is null");
    }
    Source source = sourceDAO.getSource(sourceDefinition.getSourceId());
    if (source != null) {
        throw new LaserDefinitionDuplicationException("source " + sourceDefinition.getSourceId() + " already exist");
    }
    if (sourceDefinition.getResponsiblePersonId() == null) {
        throw new LaserDefinitionNotValidException("responsible id for the source definition is null");
    }
    ResponsiblePerson responsible = responsiblePersonDAO.getResponsiblePerson(sourceDefinition.getResponsiblePersonId());
    if (responsible == null) {
        throw new LaserDefinitionNotValidException("responsible with id " + sourceDefinition.getResponsiblePersonId() + " does not exist");
    }
    AdminUser admin_user = adminUserDAO.findAdminUser(userId);
    AdminUser laser_user = adminUserDAO.findByLaserAdminUser();
    LOGGER.info("user " + admin_user.getName() + " creating source : " + sourceDefinition);
    // create the source
    source = new Source(sourceDefinition, responsible);
    CategoryDefinition category_definition = new CategoryDefinition(SOURCE_CATEGORY_PATH_PREFIX + sourceDefinition.getName(), "Category for source " + sourceDefinition.getName());
    Category parent_category = categoryDAO.findCategoryByPath(category_definition.getParentPath());
    Category category = new CategoryImpl(category_definition);
    parent_category.addChildCategory(category);
    categoryDAO.saveCategory(category);
    admin_user.addAdministeredCategory(category);
    laser_user.addAdministeredCategory(category);
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("default category " + category_definition.getPath() + "created for source " + sourceDefinition.getName());
    source.setSurveillanceAlarmId(alarmDAO.findLaserSurveillanceAlarmId());
    sourceDAO.saveSource(source);
    // create the source surveillance alarm
    AlarmDefinition surveillance_alarm_definition = (AlarmDefinition) SOURCE_SURVEILLANCE_ALARM_DEFINITION.clone();
    surveillance_alarm_definition.setFaultMember(sourceDefinition.getName());
    surveillance_alarm_definition.setIdentifier(sourceDefinition.getName());
    Alarm surveillance_alarm = new AlarmImpl(surveillance_alarm_definition, source, responsible);
    Category surveillance_category = categoryDAO.findBySurveillanceCategory();
    surveillance_category.addAlarm(surveillance_alarm);
    category.addAlarm(surveillance_alarm);
    alarmDAO.saveAlarm(surveillance_alarm);
    categoryDAO.updateCategory(surveillance_category);
    categoryDAO.updateCategory(category);
    if (LOGGER.isDebugEnabled())
        LOGGER.debug("surveillance alarm created for source " + sourceDefinition.getName());
    source.setSurveillanceAlarmId(surveillance_alarm.getAlarmId());
    sourceDAO.updateSource(source);
    admin_user.addAdministeredSource(source);
    laser_user.addAdministeredSource(source);
    adminUserDAO.updateAdminUser(admin_user);
    adminUserDAO.updateAdminUser(laser_user);
    LOGGER.info("source created");
}
Also used : CategoryImpl(cern.laser.business.data.CategoryImpl) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) Category(cern.laser.business.data.Category) ResponsiblePerson(cern.laser.business.data.ResponsiblePerson) AlarmDefinition(cern.laser.business.definition.data.AlarmDefinition) Alarm(cern.laser.business.data.Alarm) AlarmImpl(cern.laser.business.data.AlarmImpl) AdminUser(cern.laser.business.data.AdminUser) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) Source(cern.laser.business.data.Source) CategoryDefinition(cern.laser.business.definition.data.CategoryDefinition)

Aggregations

AdminUser (cern.laser.business.data.AdminUser)6 LaserDefinitionDuplicationException (cern.laser.business.definition.LaserDefinitionDuplicationException)6 Alarm (cern.laser.business.data.Alarm)4 LaserDefinitionNotValidException (cern.laser.business.definition.LaserDefinitionNotValidException)4 Category (cern.laser.business.data.Category)3 LaserDefinitionNotAllowedException (cern.laser.business.definition.LaserDefinitionNotAllowedException)3 LaserDefinitionNotFoundException (cern.laser.business.definition.LaserDefinitionNotFoundException)3 AlarmImpl (cern.laser.business.data.AlarmImpl)2 CategoryImpl (cern.laser.business.data.CategoryImpl)2 ResponsiblePerson (cern.laser.business.data.ResponsiblePerson)2 Source (cern.laser.business.data.Source)2 AlarmCacheException (cern.laser.business.cache.AlarmCacheException)1 Building (cern.laser.business.data.Building)1 AlarmDefinition (cern.laser.business.definition.data.AlarmDefinition)1 CategoryDefinition (cern.laser.business.definition.data.CategoryDefinition)1