use of cern.laser.business.data.Alarm in project ACS by ACS-Community.
the class ACSAlarmDAOImplTest method testRemoveFaultFamily.
public void testRemoveFaultFamily() {
Alarm al1;
boolean exception;
//Delete Entry if it exists due to an error in previous test
{
FaultFamily ff = new FaultFamily();
ff.setName("ffTest1");
try {
_alarmDAO.removeFaultFamily(ff);
} catch (Exception e) {
//This happens when FaultFamily "ffTest1" doesn't exist
}
}
//Check null argument
exception = false;
try {
_alarmDAO.removeFaultFamily(null);
} catch (Exception e) {
exception = true;
}
assertTrue(exception);
//Check Remove FF that doesn't exist
FaultFamily ff = new FaultFamily();
ff.setName("ffTest1");
exception = false;
try {
_alarmDAO.removeFaultFamily(ff);
} catch (Exception e) {
exception = true;
}
assertTrue(exception);
//Check Remove FF
ff.setAlarmSource("ALARM_SYSTEM_SOURCES");
ff.setHelpUrl("http://www.test.com");
Contact ct = new Contact();
ct.setEmail("em1");
ct.setGsm("gsm1");
ct.setName("cont1");
ff.setContact(ct);
FaultCode fc = new FaultCode();
fc.setValue(1);
fc.setPriority(0);
fc.setAction("action1");
fc.setCause("cause1");
fc.setConsequence("conseq1");
fc.setProblemDescription("problem1");
ff.addFaultCode(fc);
FaultMemberDefault fmd = new FaultMemberDefault();
Location lc = new Location();
lc.setBuilding("b1");
lc.setFloor("f1");
lc.setMnemonic("m1");
lc.setPosition("p1");
lc.setRoom("r1");
fmd.setLocation(lc);
ff.setFaultMemberDefault(fmd);
FaultMember fm = new FaultMember();
fm.setName("fmTest1");
lc = new Location();
lc.setBuilding("b2");
lc.setFloor("f2");
lc.setMnemonic("m2");
lc.setPosition("p2");
lc.setRoom("r2");
fm.setLocation(lc);
ff.addFaultMember(fm);
exception = false;
try {
_alarmDAO.addFaultFamily(ff);
} catch (Exception e) {
exception = true;
}
assertFalse(exception);
al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1");
assertNotNull(al1);
try {
_alarmDAO.removeFaultFamily(ff);
} catch (Exception e) {
exception = true;
}
assertFalse(exception);
al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1");
assertNull(al1);
}
use of cern.laser.business.data.Alarm 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");
}
use of cern.laser.business.data.Alarm in project ACS by ACS-Community.
the class ACSAlarmCacheImpl method dumpAlarmsCache.
/**
* Print a copy of the alarms in the cache in the standard output.
* This method is added for debugging
*
* @param verbose If true the details of each alarm found in the
* cache is also displayed
*/
private void dumpAlarmsCache(boolean verbose) {
if (alarms == null) {
return;
}
if (alarms.size() == 0) {
return;
}
System.out.println("*** ACSAlarmCacheImpl dumping cache.....");
// Get the keys
Set<String> keys = alarms.keySet();
Iterator<String> iter = keys.iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.print("***\t" + key + " ");
if (verbose) {
Alarm al = alarms.get(key);
System.out.println("active=" + al.getStatus().getActive());
} else {
System.out.println();
}
}
System.out.println("ACSAlarmCacheImpl dumping cache..... done");
}
use of cern.laser.business.data.Alarm in project ACS by ACS-Community.
the class ACSAlarmCacheImpl method replace.
public void replace(Alarm alarm) throws AlarmCacheException {
lock.lock();
try {
if (alarm == null) {
throw new IllegalArgumentException("Replacing with a null alarm is not allowed");
}
Alarm oldAl = alarms.put(alarm.getTriplet().toIdentifier(), alarm);
dao.updateAlarm(alarm);
sendMsgToListener(alarm, oldAl);
updateCategoryActiveLists(alarm);
//dumpAlarmsCache(false);
} finally {
lock.unlock();
}
}
use of cern.laser.business.data.Alarm in project ACS by ACS-Community.
the class ACSAlarmDAOImpl method saveAllIDs.
private void saveAllIDs() {
if (conf == null) {
throw new IllegalStateException("null ConfigurationAccessor");
}
if (!conf.isWriteable()) {
throw new RuntimeException("ConfigurationAccessor is not writeable");
}
StringBuffer result = new StringBuffer();
result.append("<?xml version=\"1.0\"?>\n");
result.append("<alarm-definition-list>\n");
Iterator<Alarm> i = alarmDefs.values().iterator();
while (i.hasNext()) {
Alarm a = i.next();
Triplet t = a.getTriplet();
result.append("\t<alarm-definition fault-family=\"");
DAOUtil.escapeXMLEntities(result, t.getFaultFamily());
result.append("\" fault-member=\"");
DAOUtil.escapeXMLEntities(result, t.getFaultMember());
result.append("\" fault-code=\"");
result.append(t.getFaultCode().intValue());
result.append("\" />\n");
}
result.append("</alarm-definition-list>\n");
try {
conf.setConfiguration("/alarms", result.toString());
} catch (Exception e) {
throw new RuntimeException("Could not write alarm list", e);
}
}
Aggregations