Search in sources :

Example 46 with Alarm

use of cern.laser.business.data.Alarm in project ACS by ACS-Community.

the class AlarmDefinitionServiceImpl method createAlarms.

public void createAlarms(String userId, Collection alarms) throws LaserDefinitionException {
    Set categories_to_update = new HashSet();
    if ((alarms == null) || (alarms.size() == 0)) {
        return;
    }
    LOGGER.info("creating " + alarms.size() + " alarms");
    Iterator iterator = alarms.iterator();
    while (iterator.hasNext()) {
        Alarm alarm = createAlarmInternal(userId, (AlarmDefinition) iterator.next());
        alarmDAO.saveAlarm(alarm);
        String category_path = SOURCE_CATEGORY_PATH_PREFIX + alarm.getSource().getName();
        Category category = categoryDAO.findCategoryByPath(category_path);
        category.addAlarm(alarm);
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("alarm added to default category " + category_path);
        categories_to_update.add(category);
    }
    for (Iterator iter = categories_to_update.iterator(); iter.hasNext(); ) {
        Category category_to_update = (Category) iter.next();
        categoryDAO.updateCategory(category_to_update);
    }
    LOGGER.info("alarms created");
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) Category(cern.laser.business.data.Category) Alarm(cern.laser.business.data.Alarm) Iterator(java.util.Iterator) HashSet(java.util.HashSet)

Example 47 with Alarm

use of cern.laser.business.data.Alarm in project ACS by ACS-Community.

the class AlarmDefinitionServiceImpl method removeAlarms.

public void removeAlarms(String userId, Collection alarms) throws LaserDefinitionException {
    if ((alarms == null) || (alarms.size() == 0)) {
        return;
    }
    removeAlarmsInternal(userId, alarms);
    Iterator iterator = alarms.iterator();
    Alarm alarm_obj = null;
    while (iterator.hasNext()) {
        try {
            alarm_obj = alarmCache.getCopy(((AlarmDefinition) iterator.next()).getAlarmId());
            invalidateAlarm(alarm_obj);
            propagateRemovedAlarm(alarm_obj);
        } catch (Exception e) {
            LOGGER.warn("unable to handle removed alarm " + alarm_obj.getTriplet() + " : " + e.getMessage());
        }
    }
}
Also used : Alarm(cern.laser.business.data.Alarm) AlarmDefinition(cern.laser.business.definition.data.AlarmDefinition) Iterator(java.util.Iterator) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) LaserRuntimeException(cern.laser.business.LaserRuntimeException) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) LaserDefinitionException(cern.laser.business.definition.LaserDefinitionException) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) AlarmCacheException(cern.laser.business.cache.AlarmCacheException)

Example 48 with Alarm

use of cern.laser.business.data.Alarm in project ACS by ACS-Community.

the class AlarmMessageProcessorImpl method notifyMultiplicityChildren.

private void notifyMultiplicityChildren(Alarm alarm) throws Exception {
    String[] children = alarm.getMultiplicityChildren();
    for (int i = 0; i < children.length; i++) {
        Alarm child = alarmCache.getCopy(children[i]);
        logger.log(AcsLogLevel.DEBUG, "notifying multiplicity child " + child.getTriplet());
        if (hasActiveMultiplicityParents(child)) {
            if (child.getStatus().getReduced().equals(Boolean.FALSE)) {
                logger.log(AcsLogLevel.DEBUG, "reducing multiplicity child " + child.getTriplet());
                child.getStatus().setReduced(Boolean.TRUE);
                alarmCache.put(child);
            }
        } else {
            if (child.getStatus().getReduced().equals(Boolean.TRUE)) {
                logger.log(AcsLogLevel.DEBUG, "unreducing multiplicity child " + child.getTriplet());
                child.getStatus().setReduced(Boolean.FALSE);
                alarmCache.put(child);
            }
        }
    }
}
Also used : Alarm(cern.laser.business.data.Alarm)

Example 49 with Alarm

use of cern.laser.business.data.Alarm in project ACS by ACS-Community.

the class AlarmDefinitionServiceImpl method removeAlarmInternal.

private void removeAlarmInternal(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 LaserDefinitionNotFoundException("alarm " + alarmDefinition.getAlarmId() + " does not exist");
    }
    AdminUser admin_user = adminUserDAO.findAdminUser(userId);
    if (!admin_user.administersSource(alarm.getSource())) {
        throw new LaserDefinitionNotAllowedException("not in source administrators");
    }
    try {
        LOGGER.info("user " + admin_user.getName() + " removing alarm : " + alarmDefinition.getAlarmId());
        alarmDAO.deleteAlarm(alarm);
        LOGGER.info("alarm removed");
    } catch (Exception e) {
        throw new LaserRuntimeException("unable to remove alarm " + alarmDefinition.getAlarmId() + " : " + e.getMessage(), e);
    }
}
Also used : LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) Alarm(cern.laser.business.data.Alarm) AdminUser(cern.laser.business.data.AdminUser) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) LaserRuntimeException(cern.laser.business.LaserRuntimeException) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) LaserDefinitionException(cern.laser.business.definition.LaserDefinitionException) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) AlarmCacheException(cern.laser.business.cache.AlarmCacheException) LaserRuntimeException(cern.laser.business.LaserRuntimeException) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException)

Example 50 with Alarm

use of cern.laser.business.data.Alarm in project ACS by ACS-Community.

the class AlarmDefinitionServiceImpl method updateAlarm.

public void updateAlarm(String userId, AlarmDefinition alarmDefinition) throws LaserDefinitionException {
    if (alarmDefinition == null) {
        throw new LaserDefinitionNotValidException("alarm is null");
    }
    AdminUser admin_user = adminUserDAO.findAdminUser(userId);
    Alarm alarm = alarmDAO.findAlarm(alarmDefinition.getAlarmId());
    Source new_source = sourceDAO.findSource(alarmDefinition.getSourceName());
    Source old_source = alarm.getSource();
    if (!(admin_user.administersSource(new_source) && admin_user.administersSource(old_source))) {
        throw new LaserDefinitionNotAllowedException("not an administrator for the alarm : " + alarmDefinition);
    }
    if (!new_source.equals(old_source)) {
        //      old_source.removeAlarm(alarm);
        new_source.addAlarm(alarm);
        String old_category_path = SOURCE_CATEGORY_PATH_PREFIX + old_source.getName();
        Category old_category = categoryDAO.findCategory(new Integer(old_category_path.hashCode()));
        old_category.removeAlarm(alarm);
        String new_category_path = SOURCE_CATEGORY_PATH_PREFIX + alarmDefinition.getSourceName();
        Category new_category = categoryDAO.findCategory(new Integer(new_category_path.hashCode()));
        new_category.addAlarm(alarm);
        if (LOGGER.isDebugEnabled())
            LOGGER.debug("alarm removed from category " + old_category_path + " and added to category " + new_category_path);
        sourceDAO.updateSource(old_source);
        sourceDAO.updateSource(new_source);
        categoryDAO.updateCategory(old_category);
        categoryDAO.updateCategory(new_category);
    }
    LOGGER.info("user " + admin_user.getName() + " updating alarm : " + alarmDefinition);
    if (!alarm.getResponsiblePerson().getResponsibleId().equals(alarmDefinition.getResponsiblePersonId())) {
        //        ResponsiblePerson old_responsible = alarm.getResponsiblePerson();
        //        old_responsible.getAlarmIds().remove(alarm.getAlarmId());
        ResponsiblePerson new_responsible = alarmDefinition.getResponsiblePersonId() == null ? new_source.getResponsiblePerson() : responsiblePersonDAO.getResponsiblePerson(alarmDefinition.getResponsiblePersonId());
        //        new_responsible.getAlarmIds().add(alarm.getAlarmId());
        alarm.setResponsiblePerson(new_responsible);
    //        session.update(old_responsible);
    //        session.update(new_responsible);
    }
    alarm.setDefinition(alarmDefinition);
    alarmDAO.updateAlarm(alarm);
    try {
        alarmCache.invalidate(alarmDefinition.getAlarmId());
    } catch (Exception e) {
        LOGGER.error("unable to propagate alarm update : " + alarmDefinition, e);
    }
    LOGGER.info("alarm updated");
}
Also used : LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) Category(cern.laser.business.data.Category) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) ResponsiblePerson(cern.laser.business.data.ResponsiblePerson) Alarm(cern.laser.business.data.Alarm) AdminUser(cern.laser.business.data.AdminUser) Source(cern.laser.business.data.Source) LaserDefinitionNotFoundException(cern.laser.business.definition.LaserDefinitionNotFoundException) LaserDefinitionNotAllowedException(cern.laser.business.definition.LaserDefinitionNotAllowedException) LaserRuntimeException(cern.laser.business.LaserRuntimeException) LaserDefinitionDuplicationException(cern.laser.business.definition.LaserDefinitionDuplicationException) LaserDefinitionException(cern.laser.business.definition.LaserDefinitionException) LaserDefinitionNotValidException(cern.laser.business.definition.LaserDefinitionNotValidException) AlarmCacheException(cern.laser.business.cache.AlarmCacheException)

Aggregations

Alarm (cern.laser.business.data.Alarm)91 AlarmCacheException (cern.laser.business.cache.AlarmCacheException)24 LaserRuntimeException (cern.laser.business.LaserRuntimeException)21 ArrayList (java.util.ArrayList)21 Category (cern.laser.business.data.Category)16 Collection (java.util.Collection)14 AlarmImpl (cern.laser.business.data.AlarmImpl)13 LaserDefinitionNotValidException (cern.laser.business.definition.LaserDefinitionNotValidException)12 AdminUser (cern.laser.business.data.AdminUser)11 AlarmDefinition (alma.alarmsystem.alarmmessage.generated.AlarmDefinition)10 LaserDefinitionDuplicationException (cern.laser.business.definition.LaserDefinitionDuplicationException)10 LaserDefinitionNotFoundException (cern.laser.business.definition.LaserDefinitionNotFoundException)10 Iterator (java.util.Iterator)10 LaserProcessingException (cern.laser.business.LaserProcessingException)9 LaserDefinitionNotAllowedException (cern.laser.business.definition.LaserDefinitionNotAllowedException)9 LaserObjectNotFoundException (cern.laser.business.LaserObjectNotFoundException)7 ReductionRule (cl.utfsm.acs.acg.core.ReductionRule)7 FaultCode (alma.acs.alarmsystem.generated.FaultCode)6 FaultFamily (alma.acs.alarmsystem.generated.FaultFamily)6 FaultMember (alma.acs.alarmsystem.generated.FaultMember)6