/*
* AlarmsTipoControler.java
*
* Created on 9 de abril de 2008, 14:33
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.wonesys.emsModule.alarms;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.wonesys.emsModule.driver.Driver;
import com.wonesys.emsModule.driver.DriverAlarmasGeneral;
import com.wonesys.emsModule.driver.Optr10g;
import com.wonesys.emsModule.driver.Optr25gexc;
import com.wonesys.emsModule.driver.Optr25gexc_PM;
import com.wonesys.emsModule.driver.OptriaSX;
import com.wonesys.emsModule.driver.Sinton;
import com.wonesys.emsModule.driver.Wcmctc;
import com.wonesys.emsModule.driver.Wswitch;
/**
*
* @author mbeltran
*/
/*
* Exemple d'alarma (temperatura)
*
* str[0] = 307100 str[1] = 1.3.6.1.4.1.18223.9.4.2.2 str[2] = 0 str[3] = 4 str[4] = 0x0A:FF:FF str[5] = TEMP str[6] = High temperature str[7] = 1
*/
public class AlarmsTipoControler {
static List<String> getTipos(String params, String oids, String genericTrap) {
ArrayList<String> list = new ArrayList<String>();
String[] paramsSplit = params.split("#");
String oidAlarm = paramsSplit[1];
Driver driver = null;
if (oidAlarm.startsWith("1.3.6.1.6.3")) {
return new DriverAlarmasGeneral().getListTipos(params);
} else if (params.contains(Wcmctc.ID)) // W-CMC-TC
{
return new Wcmctc().getListTipos(params, oids);
} else if (oids.contains("1.3.6.1.4.1.8691") || oids.contains("1.3.6.1.2.1.2.2.1.1")) {
return new Wswitch().getListTipos(params, oids, genericTrap);
} else if (oidAlarm.equals(Sinton.Alarma)) // Sinton
{
return new Sinton().getListTipos(params);
} else if (oidAlarm.equals("1.3.6.1.4.1.18223.9.1.2.2") || // Equip OptriaSX
oidAlarm.equals("1.3.6.1.4.1.18223.9.4.2.2") || // Tarja 4x4
oidAlarm.equals("1.3.6.1.4.1.18223.9.5.2.3") || // Tarja 10G
oidAlarm.equals("1.3.6.1.4.1.18223.9.8.2.2") || // Tarja PM2G5
oidAlarm.equals("1.3.6.1.4.1.18223.9.11.2.3") || // Roadm
oidAlarm.equals("1.3.6.1.4.1.18223.9.14.2.2") || // Edfa
oidAlarm.equals("1.3.6.1.4.1.18223.9.17.2.3")) // opm
{
list.add("SNMP");
return list;
}
/*
* else if (oidAlarm.equals(Optr25gexc.Alarma)) //Tarja 4x4 {
*
* return new Optr25gexc().getListTipos(params);
*
* } else if (oidAlarm.equals(Optr10g.Alarma)) //Tarja 10G {
*
* return new Optr10g().getListTipos(params); } else if (oidAlarm.equals(Roadm.Alarma)) //Roadm {
*
* return new Roadm().getListTipos(params); }
*
* else if (oidAlarm.equals(Psedfa.Alarma)) //Sinton {
*
* return new Psedfa().getListTipos(params); } else if (oidAlarm.equals(Osnl.Alarma)) //Sinton {
*
* return new Osnl().getListTipos(params); }
*/
list.add("ALARMS_UNKNOWN");
return list;
}
static int getPuerto(String params) {
String[] paramsSplit = params.split("#");
String oidAlarm = paramsSplit[1];
Driver driver = null;
if (oidAlarm.startsWith("1.3.6.1.6.3")) {
return new DriverAlarmasGeneral().getPuerto(params);
} else if (oidAlarm.equals(OptriaSX.Alarma)) // Equip OptriaSX
{
return new OptriaSX().getPuerto(params);
} else if (oidAlarm.equals(Optr25gexc.Alarma)) // Tarja 4x4
{
return new Optr25gexc().getPuerto(params);
} else if (oidAlarm.equals(Optr10g.Alarma)) // Tarja 10G
{
return new Optr10g().getPuerto(params);
} else if (oidAlarm.equals(Optr25gexc_PM.Alarma)) // Tarja 10G
{
return new Optr25gexc_PM().getPuerto(params);
}
return -1;
}
/*
* Exemple d'alarma (temperatura)
*
* str[0] = 307100 str[1] = 1.3.6.1.4.1.18223.9.4.2.2 str[2] = 0 str[3] = 4 str[4] = 0x0A:FF:FF str[5] = TEMP str[6] = High temperature str[7] = 1
*/
public void setTipo(Alarm alarma, String typeID) {
if (typeID.equals("SNMP")) {
String raw = alarma.getRawIndo();
String[] strList = raw.split("#");
alarma.setTypeName(strList[6]);
alarma.setTypeID(strList[5]);
alarma.setSeverity(severity(strList[7]));
} else {
// Read properties file.
Properties properties = new Properties();
try {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("com/wonesys/EMSmodule/driver/alarmtype.properties");
if (in == null) {
// File not found! (Manage the problem)
System.err.println("Error loading Alarm Type properties file");
}
properties.load(in);
// System.out.println("lo file: " + url);
// properties.load(url.openStream());
String typeParams = properties.getProperty(typeID);
String[] types = typeParams.split("#");
// System.out.println(types);
alarma.setTypeName(types[0]);
alarma.setTypeID(typeID);
alarma.setSeverity(types[2]);
} catch (IOException e) {
System.err.println("Error loading properties file: " + e.getMessage());
}
}
}
private String severity(String string) {
if (string.equals("0")) // clear
return "Clear";
if (string.equals("1")) // warning
return "Warning";
if (string.equals("2")) // minor
return "Minor";
if (string.equals("3")) // major
return "Major";
if (string.equals("4")) // critical
return "Critical";
return "UNKNOWN";
}
}