/var/opt/ericsson/blkcm/data/bulkcm.nameserviceand on the web server
http: // "masterhost ip": 80 / ior / ExternalNameService.iorWe use the first method:
private String readIOR() { String mastersvc = "/var/opt/ericsson/blkcm/data/bulkcm.nameservice"; File f = new File(mastersvc); BufferedReader br; String iorContents = null; try { br = new BufferedReader(new FileReader(f)); iorContents = br.readLine(); br.close(); } catch (IOException e) { e.printStackTrace(); } return iorContents; }
public void createAlarmObj(){ org.omg.CORBA.Object rootObj = null; NamingContextExt rootNameCon = null; Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitRef", "NameService=" + readIOR()); org.omg.CORBA.ORB orb = ORB.init(new String[0], props); // Resolve the CORBA Naming Service try { rootObj = orb.resolve_initial_references("NameService"); rootNameCon = NamingContextExtHelper.narrow(rootObj); String s = "com/ericsson/nms/fm_cirpagent/AlarmIRP"; //Locate Alarm IRP rootObj = rootNameCon.resolve(rootNameCon.to_name(s)); _alarmIrp = com.ericsson.irp.AlarmIRPSystem._AlarmIRPOperationsHelper.narrow(rootObj); } catch (InvalidName | NotFound | CannotProceed | org.omg.CosNaming.NamingContextPackage.InvalidName e) { e.printStackTrace(); } }
This method returns Alarm Informations. If flag is
TRUE, all returned AlarmInformationSeq
that contains 0,1 or more Alarm Informations. Output parameter iter
shall be useless. If flag is FALSE, no Alarm Information shall
in AlarmInformationSeq. IRPAgent needs to use them to retrieve them.
public void getActiveAlarms(){ BooleanHolder flag = new BooleanHolder(false); // false for iteration com.ericsson.irp.AlarmIRPSystem.AlarmInformationIteratorHolder iter = new com.ericsson.irp.AlarmIRPSystem.AlarmInformationIteratorHolder(); try { _alarmIrp.get_alarm_list(alarmFilter, flag, iter); EventBatchHolder alarmInformation = new EventBatchHolder(); short alarmSize = 100; List<StructuredEvent> alarms = new ArrayList<StructuredEvent>(); boolean haveMoreAlarms = false; do{ if (iter.value != null) { haveMoreAlarms = iter.value.next_alarmInformations(alarmSize, alarmInformation); alarms.addAll(Arrays.asList(alarmInformation.value)); } }while (haveMoreAlarms); for (StructuredEvent alarm: alarms) { alarmPrint(alarm); } } } catch (GetAlarmList | ParameterNotSupported | InvalidParameter | NextAlarmInformations e) { e.printStackTrace(); } }
const string NV_NOTIFICATION_ID = "a";
const string NV_CORRELATED_NOTIFICATIONS = "b";
const string NV_EVENT_TIME = “c”;
const string NV_SYSTEM_DN = "d";
const string NV_MANAGED_OBJECT_CLASS = "e";
const string NV_MANAGED_OBJECT_INSTANCE = "f";
const string NV_SPECIFIC_PROBLEM = "i";
...
private void alarmPrint(StructuredEvent alarm){ String result = "" if (alarm.filterable_data != null) { for (Property filterableData: alarm.filterable_data) { String fieldName = filterableData.name; switch (fieldName){ case "f": result = result + filterableData.value.extract_string() + ";"; break; case "i": result = result + filterableData.value.extract_string(); break; } } } System.out.println(result); }
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Properties; import org.omg.CORBA.*; import org.omg.CORBA.ORBPackage.InvalidName; import org.omg.CosNaming.NamingContextExt; import org.omg.CosNaming.NamingContextExtHelper; import org.omg.CosNaming.NamingContextPackage.CannotProceed; import org.omg.CosNaming.NamingContextPackage.NotFound; import org.omg.CosNotification.EventBatchHolder; import org.omg.CosNotification.Property; import org.omg.CosNotification.StructuredEvent; import com.ericsson.irp.AlarmIRPSystem.GetAlarmList; import com.ericsson.irp.AlarmIRPSystem.InvalidParameter; import com.ericsson.irp.AlarmIRPSystem.NextAlarmInformations; import com.ericsson.irp.AlarmIRPSystem.ParameterNotSupported; public class AlarmClient { private com.ericsson.irp.AlarmIRPSystem._AlarmIRPOperations _alarmIrp = null; public static void main(String[] args) { AlarmClient ac = new AlarmClient(); ac.createAlarmObj(); ac.getActiveAlarms(); } private String readIOR() { File f = new File("/var/opt/ericsson/blkcm/data/bulkcm.nameservice"); BufferedReader br; String iorContents = null; try { br = new BufferedReader(new FileReader(f)); iorContents = br.readLine(); br.close(); } catch (IOException e) { e.printStackTrace(); } return iorContents; } public void createAlarmObj(){ org.omg.CORBA.Object rootObj = null; NamingContextExt rootNameCon = null; Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitRef", "NameService=" + readIOR()); org.omg.CORBA.ORB orb = ORB.init(new String[0], props); // Resolve the CORBA Naming Service try { rootObj = orb.resolve_initial_references("NameService"); rootNameCon = NamingContextExtHelper.narrow(rootObj); String s = "com/ericsson/nms/fm_cirpagent/AlarmIRP"; //Locate Alarm IRP rootObj = rootNameCon.resolve(rootNameCon.to_name(s)); _alarmIrp = com.ericsson.irp.AlarmIRPSystem._AlarmIRPOperationsHelper.narrow(rootObj); //System.out.println(_alarmIrp); } catch (InvalidName | NotFound | CannotProceed | org.omg.CosNaming.NamingContextPackage.InvalidName e) { e.printStackTrace(); } } public void getActiveAlarms(){ BooleanHolder flag = new BooleanHolder(false); // false for iteration com.ericsson.irp.AlarmIRPSystem.AlarmInformationIteratorHolder iter = new com.ericsson.irp.AlarmIRPSystem.AlarmInformationIteratorHolder(); try { _alarmIrp.get_alarm_list("", flag, iter); EventBatchHolder alarmInformation = new EventBatchHolder(); short alarmSize = 100; List<StructuredEvent> alarms = new ArrayList<StructuredEvent>(); boolean haveMoreAlarms = false; do{ if (iter.value != null) { haveMoreAlarms = iter.value.next_alarmInformations(alarmSize, alarmInformation); alarms.addAll(Arrays.asList(alarmInformation.value)); } }while (haveMoreAlarms); if (iter.value != null) { for (StructuredEvent alarm: alarms) { alarmPrint(alarm); } } } catch (GetAlarmList | ParameterNotSupported | InvalidParameter | NextAlarmInformations e) { e.printStackTrace(); } } private void alarmPrint(StructuredEvent alarm){ String result = ""; if (alarm.filterable_data != null) { for (Property filterableData: alarm.filterable_data) { String fieldName = filterableData.name; switch (fieldName){ case "f": result = result + filterableData.value.extract_string() + ";"; break; case "i": result = result + filterableData.value.extract_string(); break; } } } System.out.println(result); } }
java -cp.: / opt / ericsson / fm_core / classes / alarmirp.jar AlarmClient
Source: https://habr.com/ru/post/422293/
All Articles