package evel_javalibrary.att.com.loadbalance; /**************************************************************************//** * @file * Evel Fault Event class extends EvelHeader class * * This file implements the Evel Fault Event class which is intended to provide a * simple wrapper around the complexity of AT&T's Vendor Event Listener API so * that VNFs can use it to send Fault events. * * License * ------- * Unless otherwise specified, all software contained herein is * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *****************************************************************************/ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.log4j.Level; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; import evel_javalibrary.att.com.AgentMain; import evel_javalibrary.att.com.EvelBatch; import evel_javalibrary.att.com.EvelFault; import evel_javalibrary.att.com.EvelFault.EVEL_SEVERITIES; import evel_javalibrary.att.com.EvelFault.EVEL_SOURCE_TYPES; import evel_javalibrary.att.com.EvelFault.EVEL_VF_STATUSES; import evel_javalibrary.att.com.EvelHeader; public class FaultData{ static HashMap fault_config = new HashMap<>(); static HashMap interface_config = new HashMap<>(); static HashMap faultConfig = new HashMap<>(); static HashMap faultInstanceres01 = new HashMap<>(); static HashMap faultInstanceres02 = new HashMap<>(); static HashMap tempAlaramClearParameter = new HashMap<>(); static HashMap Instanceres02ClearParameter = new HashMap<>(); static String[] resDevice =null; static String[] tempInitres; static String[] tempcommandres; static String[] tempcommand02res; static HashMap faultConfigTempInit = new HashMap<>(); static HashMap faultConfigCommand = new HashMap<>(); static String alarmCondition =""; static String specificProblem = ""; static String eventSeverity=""; static String alarmInterfaceA =""; static String alarmConditionClear =""; static String specificProblemClear = ""; static String eventSeverityClear=""; static String Instance02alarmInterfaceA; static String Instance02eventCategory; static String Instance02eventSourceType; static String Instance02eventName; static String ins02alarmConditionClear; static String ins02specificProblemClear; static String ins02eventSeverityClear; static String setAlarmCondition; static String setSpecificProblem; static String setEventSeverity; static String eventCategory =""; static String eventSourceType =""; static HashMap hm = new HashMap<>(); static String linkStart = ""; static int linkCount; static String event_id1 = "fault"; static String event_id = "00000000"; static float bytes_in; static float bytes_out; static float packets_in; static float packets_out; static float ins02Cmd; static int falut_raised =0; public final Runnable faultInstance01; public final Runnable faultInstance02; public FaultData(){ faultInstance01 = new Runnable() { @Override public void run() { int gm_event_id = 1; String event_id2=null; Long start_epoch_microsec = 0L; Long last_epoch_microsec = 0L; String hostName = hostName(); try { readFalutConfig(); readVppMetrics(resDevice); } catch (IOException | ParseException e1) { } String[] intFaceMapFault = resDevice; int numOfInterfacesFalut = 0; if( intFaceMapFault != null) numOfInterfacesFalut = intFaceMapFault.length; if( numOfInterfacesFalut <= 0) { return; } HashMap falut_last_metrics = readVppMetrics(resDevice); while(true) { try { EvelBatch ebt = new EvelBatch(); for( String falut : intFaceMapFault ) { HashMap falut_current_metrics = readVppMetrics(resDevice); for( String tmp_device :falut_current_metrics.keySet() ) { int receivedOctetsDelta = Integer.parseInt((falut_current_metrics.get(tmp_device).getT1Bytesin()) ) - Integer.parseInt((falut_last_metrics.get(tmp_device).getT0bytesIn())); int receivedTotalPacketsDelta = Integer.parseInt((falut_current_metrics.get(tmp_device).getT1Packetsin()) ) - Integer.parseInt((falut_last_metrics.get(tmp_device).getT0packetIn())); int transmittedOctetsDelta = Integer.parseInt((falut_current_metrics.get(tmp_device).getT1Bytesout()) ) - Integer.parseInt((falut_last_metrics.get(tmp_device).getT0bytesOut())); int transmittedTotalPacketsDelta = Integer.parseInt((falut_current_metrics.get(tmp_device).getT1Packetsout()) ) - Integer.parseInt((falut_last_metrics.get(tmp_device).getT0packetOut())); String alarmInterface = tmp_device; //resDevice[0]; if((receivedOctetsDelta < Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) || transmittedOctetsDelta < Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) || receivedTotalPacketsDelta < Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) || transmittedTotalPacketsDelta < Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark"))) && falut_raised == 0){ event_id2 = event_id1+ event_id+(gm_event_id++); EvelFault eveFalt = new EvelFault(faultInstanceres01.get("eventName"),event_id2, alarmCondition, specificProblem, EvelHeader.PRIORITIES.EVEL_PRIORITY_LOW, EVEL_SEVERITIES.EVEL_SEVERITY_MAJOR, EVEL_SOURCE_TYPES.EVEL_SOURCE_ROUTER, EVEL_VF_STATUSES.EVEL_VF_STATUS_IDLE); if(eveFalt != null) { falut_raised =1; if( faultConfig.get("eventType")!=null) { eveFalt.evel_fault_type_set(faultConfig.get("eventType")); start_epoch_microsec = last_epoch_microsec; last_epoch_microsec = System.nanoTime()/1000; eveFalt.evel_last_epoch_set(start_epoch_microsec); eveFalt.evel_start_epoch_set(last_epoch_microsec); eveFalt.evel_fault_category_set(eventCategory); eveFalt.evel_fault_interface_set(alarmInterface.replaceAll("^[\"']+|[\"']+$", "")); eveFalt.evel_nfcnamingcode_set(faultConfig.get("nfcNamingCode").toString()); eveFalt.evel_nfnamingcode_set(faultConfig.get("nfNamingCode").toString()); if(faultConfig.get("reportingEntityName") == null) { eveFalt.evel_reporting_entity_name_set(hostName); }else { eveFalt.evel_reporting_entity_name_set(faultConfig.get("reportingEntityName").toString()); } eveFalt.evel_reporting_entity_id_set(faultConfig.get("reportingEntityId").toString()); eveFalt.evel_nfVendorName_set(faultConfig.get("nfVendorName").toString()); eveFalt.evel_header_set_sourceid(true,faultConfig.get("sourceId").toString()); if(faultConfig.get("sourceName") == null) { eveFalt.evel_header_set_source_name(hostName); }else { eveFalt.evel_header_set_source_name(faultConfig.get("sourceName").toString()); } eveFalt.evel_timeZoneOffset_set(faultConfig.get("timeZoneOffset").toString()); AgentMain.evel_post_event(eveFalt); } } }else if((receivedOctetsDelta > Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) && transmittedOctetsDelta > Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) && receivedTotalPacketsDelta > Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark")) && transmittedTotalPacketsDelta > Integer.parseInt((String)faultInstanceres01.get("tmp_lowWaterMark"))) && falut_raised == 1) { event_id2 = event_id1+event_id+ (gm_event_id++); EvelFault eveFalt = new EvelFault(faultInstanceres01.get("eventName"),event_id2, alarmConditionClear, specificProblemClear, EvelHeader.PRIORITIES.EVEL_PRIORITY_LOW, EVEL_SEVERITIES.EVEL_SEVERITY_NORMAL, EVEL_SOURCE_TYPES.EVEL_SOURCE_ROUTER, EVEL_VF_STATUSES.EVEL_VF_STATUS_IDLE); if(eveFalt != null) { falut_raised =1; if( faultConfig.get("eventType")!=null) { eveFalt.evel_fault_type_set(faultConfig.get("eventType")); eveFalt.evel_fault_category_set(eventCategory); eveFalt.evel_fault_interface_set(alarmInterface.replaceAll("^[\"']+|[\"']+$", "")); eveFalt.evel_nfcnamingcode_set(faultConfig.get("nfcNamingCode").toString()); eveFalt.evel_nfnamingcode_set(faultConfig.get("nfNamingCode").toString()); if(faultConfig.get("reportingEntityName") == null) { eveFalt.evel_reporting_entity_name_set(hostName); }else { eveFalt.evel_reporting_entity_name_set(faultConfig.get("reportingEntityName").toString()); } eveFalt.evel_reporting_entity_id_set(faultConfig.get("reportingEntityId").toString()); eveFalt.evel_nfVendorName_set(faultConfig.get("nfVendorName").toString()); eveFalt.evel_header_set_sourceid(true,faultConfig.get("sourceId").toString()); if(faultConfig.get("sourceName") == null) { eveFalt.evel_header_set_source_name(hostName); }else { eveFalt.evel_header_set_source_name(faultConfig.get("sourceName").toString()); } eveFalt.evel_timeZoneOffset_set(faultConfig.get("timeZoneOffset").toString()); AgentMain.evel_post_event(eveFalt); } } } try { String Ins01Interval=""; long milliseconds = 60000; if(faultInstanceres01.get("tmp_faultCheckInterval") == null) { Ins01Interval = Long.toString(milliseconds); }else { Ins01Interval = faultInstanceres01.get("tmp_faultCheckInterval"); } Thread.sleep(Integer.parseInt(Ins01Interval)); }catch(Exception e) {} } //for map keyset } //for intFaceMapFault }catch (Exception e) { } } } }; faultInstance02 = new Runnable() { @Override public void run() { int gm_event_id = 1; String event_id2=null; Long start_epoch_microsec = 0L; Long last_epoch_microsec = 0L; String hostName = hostName(); try { readFalutConfig(); readVppMetrics(resDevice); } catch (IOException | ParseException e1) { } String[] intFaceMapFault = resDevice; int numOfInterfacesFalut = 0; if( intFaceMapFault != null) numOfInterfacesFalut = intFaceMapFault.length; if( numOfInterfacesFalut <= 0) { return; } HashMap falut_last_metrics = readVppMetrics(resDevice); while(true) { try { EvelBatch ebt = new EvelBatch(); HashMap falutMetric = readVppMetrics(resDevice); DeviceData mdGetdata = new DeviceData(); String ins02cmd = mdGetdata.getInstanceres02Command(); if(ins02Cmd < Integer.parseInt((String)falutMetric.get("Instanceres02Cmd").getInstanceres02Command())){ event_id2 = event_id1+ event_id+(gm_event_id++); EvelFault eveFalt = new EvelFault(Instance02eventName,event_id2, setAlarmCondition, setSpecificProblem, EvelHeader.PRIORITIES.EVEL_PRIORITY_LOW, EVEL_SEVERITIES.EVEL_SEVERITY_MAJOR, EVEL_SOURCE_TYPES.EVEL_SOURCE_VIRTUAL_MACHINE, EVEL_VF_STATUSES.EVEL_VF_STATUS_IDLE); if(eveFalt != null) { falut_raised =1; if( faultConfig.get("eventType")!=null) { eveFalt.evel_fault_type_set(faultConfig.get("eventType")); start_epoch_microsec = last_epoch_microsec; last_epoch_microsec = System.nanoTime()/1000; eveFalt.evel_last_epoch_set(start_epoch_microsec); eveFalt.evel_start_epoch_set(last_epoch_microsec); eveFalt.evel_fault_category_set(Instance02eventCategory); eveFalt.evel_fault_interface_set(Instance02alarmInterfaceA.replaceAll("^[\"']+|[\"']+$", "")); eveFalt.evel_nfcnamingcode_set(faultConfig.get("nfcNamingCode").toString()); eveFalt.evel_nfnamingcode_set(faultConfig.get("nfNamingCode").toString()); if(faultConfig.get("reportingEntityName") == null) { eveFalt.evel_reporting_entity_name_set(hostName); }else { eveFalt.evel_reporting_entity_name_set(faultConfig.get("reportingEntityName").toString()); } eveFalt.evel_reporting_entity_id_set(faultConfig.get("reportingEntityId").toString()); eveFalt.evel_nfVendorName_set(faultConfig.get("nfVendorName").toString()); eveFalt.evel_header_set_sourceid(true,faultConfig.get("sourceId").toString()); if(faultConfig.get("sourceName") == null) { eveFalt.evel_header_set_source_name(hostName); }else { eveFalt.evel_header_set_source_name(faultConfig.get("sourceName").toString()); } eveFalt.evel_timeZoneOffset_set(faultConfig.get("timeZoneOffset").toString()); AgentMain.evel_post_event(eveFalt); } } }else if(ins02Cmd > Integer.parseInt((String)falutMetric.get("Instanceres02Cmd").getInstanceres02Command())) { event_id2 = event_id1+ event_id+(gm_event_id++); EvelFault eveFalt = new EvelFault(Instance02eventName,event_id2, ins02alarmConditionClear, ins02specificProblemClear, EvelHeader.PRIORITIES.EVEL_PRIORITY_LOW, EVEL_SEVERITIES.EVEL_SEVERITY_NORMAL, EVEL_SOURCE_TYPES.EVEL_SOURCE_VIRTUAL_MACHINE, EVEL_VF_STATUSES.EVEL_VF_STATUS_IDLE); if(eveFalt != null) { falut_raised =1; if( faultConfig.get("eventType")!=null) { eveFalt.evel_fault_type_set(faultConfig.get("eventType")); eveFalt.evel_fault_category_set(Instance02eventCategory); eveFalt.evel_fault_interface_set(Instance02alarmInterfaceA.replaceAll("^[\"']+|[\"']+$", "")); eveFalt.evel_nfcnamingcode_set(faultConfig.get("nfcNamingCode").toString()); eveFalt.evel_nfnamingcode_set(faultConfig.get("nfNamingCode").toString()); if(faultConfig.get("reportingEntityName") == null) { eveFalt.evel_reporting_entity_name_set(hostName); }else { eveFalt.evel_reporting_entity_name_set(faultConfig.get("reportingEntityName").toString()); } eveFalt.evel_reporting_entity_id_set(faultConfig.get("reportingEntityId").toString()); eveFalt.evel_nfVendorName_set(faultConfig.get("nfVendorName").toString()); eveFalt.evel_header_set_sourceid(true,faultConfig.get("sourceId").toString()); if(faultConfig.get("sourceName") == null) { eveFalt.evel_header_set_source_name(hostName); }else { eveFalt.evel_header_set_source_name(faultConfig.get("sourceName").toString()); } eveFalt.evel_timeZoneOffset_set(faultConfig.get("timeZoneOffset").toString()); AgentMain.evel_post_event(eveFalt); } } } try { String Ins02Interval=""; long milliseconds = 60000; if(faultInstanceres02.get("tmp_faultCheckInterval") == null) { Ins02Interval = Long.toString(milliseconds); }else { Ins02Interval = faultInstanceres02.get("tmp_faultCheckInterval"); } Thread.sleep(Integer.parseInt(Ins02Interval)); }catch(Exception e) { } }catch (Exception e) { } } } }; } private final static char[] hexArray = "0123456789ABCDEF".toCharArray(); private static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for ( int j = 0; j < bytes.length; j++ ) { int v = bytes[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; } return new String(hexChars); } public static String hostName() { String hostname = "Unknown"; String uuid = "Unknown"; try { InetAddress addr; addr = InetAddress.getLocalHost(); hostname = addr.getHostName(); } catch (UnknownHostException ex) { } try{ Enumeration networks = NetworkInterface.getNetworkInterfaces(); while(networks.hasMoreElements()) { NetworkInterface network = networks.nextElement(); byte[] mac = network.getHardwareAddress(); if(hostname.equalsIgnoreCase("unknown")) { Enumeration inetAddrs = network.getInetAddresses(); while(inetAddrs.hasMoreElements()){ InetAddress inetAddr = (InetAddress) inetAddrs.nextElement(); if (!inetAddr.isLoopbackAddress()) { hostname = inetAddr.getHostAddress(); break; } } } if (mac != null) { uuid = bytesToHex(mac); } } } catch (SocketException e) { // TODO Auto-generated catch block } return hostname; } public static HashMap readFalutConfig() throws IOException, ParseException { List list = new ArrayList(); JSONParser jsonParser = new JSONParser(); try { FileReader reader = new FileReader("./src/main/java/evel_javalibrary/att/com/loadbalance/flt_config.json"); JSONObject obj = (JSONObject) jsonParser.parse(reader); Map.Entry directPair = null; String directObject =""; String[] directres; Map directParameters = ((Map)obj.get("tmp_directParameters")); Iterator itr1 = directParameters.entrySet().iterator(); while (itr1.hasNext()) { directPair = itr1.next(); directObject=String.valueOf(directPair); directres = directObject.split("="); faultConfig.put(directres[0], directres[1]); } JSONArray arrJson = (JSONArray) directParameters.get("tmp_device"); resDevice = new String[arrJson.size()]; for(int i = 0; i < arrJson.size(); i++) resDevice[i] = (String) arrJson.get(i); //tmp_indirectParameters Map.Entry indirectPair = null; String indirectObject =""; String[] indirectres; Map indirectParameters = ((Map)obj.get("tmp_indirectParameters")); Iterator itr2 = indirectParameters.entrySet().iterator(); while (itr2.hasNext()) { indirectPair = itr2.next(); indirectObject=String.valueOf(indirectPair); indirectres = indirectObject.split("="); faultConfig.put(indirectres[0], indirectres[1]); } //tmp_faultInstance01 Map.Entry faultInstancePair = null; String faultInstanceObject =""; String[] faultInstanceres; Map faultInstanceParameters = ((Map)indirectParameters.get("tmp_faultInstance01")); Iterator itr3 = faultInstanceParameters.entrySet().iterator(); while (itr3.hasNext()) { faultInstancePair = itr3.next(); faultInstanceObject=String.valueOf(faultInstancePair); faultInstanceres = faultInstanceObject.split("="); faultInstanceres01.put(faultInstanceres[0], faultInstanceres[1]); } eventCategory = faultInstanceres01.get("eventCategory").toString(); eventSourceType = faultInstanceres01.get("eventSourceType").toString(); //tmp_init Map.Entry tempInitPair = null; String tempInitObject =""; Map tempInitParameters = ((Map)faultInstanceParameters.get("tmp_init")); Iterator itr4 = tempInitParameters.entrySet().iterator(); while (itr4.hasNext()) { tempInitPair = itr4.next(); tempInitObject=String.valueOf(tempInitPair); tempInitres = tempInitObject.split("="); faultConfigTempInit.put(tempInitres[0], tempInitres[1]); } String tmp_t0BytesOut = faultConfigTempInit.get("tmp_init"); //tmp_command Map.Entry tempcommandPair = null; String tempcommandObject =""; Map tempcommandParameters = ((Map)faultInstanceParameters.get("tmp_command")); Iterator itr5 = tempcommandParameters.entrySet().iterator(); while (itr5.hasNext()) { tempcommandPair = itr5.next(); tempcommandObject=String.valueOf(tempcommandPair); tempcommandres = tempcommandObject.split("="); faultConfigCommand.put(tempcommandres[0], tempcommandres[1]); } //tmp_alarmSetParameters Map.Entry alarmSetPair = null; String alarmSetObject =""; String[] alarmSetres; Map alarmSetParameters = ((Map)faultInstanceParameters.get("tmp_alarmSetParameters")); Iterator itr6 = alarmSetParameters.entrySet().iterator(); while (itr6.hasNext()) { alarmSetPair = itr6.next(); alarmSetObject=String.valueOf(alarmSetPair); alarmSetres = alarmSetObject.split("="); faultConfig.put(alarmSetres[0], alarmSetres[1]); } alarmCondition = faultConfig.get("alarmCondition").toString(); specificProblem = faultConfig.get("specificProblem").toString(); eventSeverity = faultConfig.get("eventSeverity").toString(); //tmp_alarmClearParameters Map.Entry alarmClearPair = null; String alarmClearObject =""; String[] alarmClearres; Map alarmClearParameters = ((Map)faultInstanceParameters.get("tmp_alarmClearParameters")); Iterator itr7 = alarmClearParameters.entrySet().iterator(); while (itr7.hasNext()) { alarmClearPair = itr7.next(); alarmClearObject=String.valueOf(alarmClearPair); alarmClearres = alarmClearObject.split("="); tempAlaramClearParameter.put(alarmClearres[0], alarmClearres[1]); } alarmConditionClear = tempAlaramClearParameter.get("alarmCondition").toString(); specificProblemClear = tempAlaramClearParameter.get("specificProblem").toString(); eventSeverityClear = tempAlaramClearParameter.get("eventSeverity").toString(); //tmp_faultInstance02 Map.Entry faultInstance02Pair = null; String faultInstance02Object =""; String[] faultInstance02res; Map faultInstance02Parameters = ((Map)indirectParameters.get("tmp_faultInstance02")); Iterator itr8 = faultInstance02Parameters.entrySet().iterator(); while (itr8.hasNext()) { faultInstance02Pair = itr8.next(); faultInstance02Object=String.valueOf(faultInstance02Pair); faultInstance02res = faultInstance02Object.split("="); faultInstanceres02.put(faultInstance02res[0], faultInstance02res[1]); } Instance02alarmInterfaceA = faultInstanceres02.get("alarmInterfaceA"); Instance02eventCategory = faultInstanceres02.get("eventCategory"); Instance02eventSourceType = faultInstanceres02.get("eventSourceType"); Instance02eventName = faultInstanceres02.get("eventName"); //tmp_command Map.Entry tempcommand02Pair = null; String tempcommand02Object =""; Map tempcommand02Parameters = ((Map)faultInstance02Parameters.get("tmp_command")); Iterator itr9 = tempcommand02Parameters.entrySet().iterator(); while (itr9.hasNext()) { tempcommand02Pair = itr9.next(); tempcommand02Object=String.valueOf(tempcommand02Pair); tempcommand02res = tempcommand02Object.split("="); faultInstanceres02.put(tempcommand02res[0], tempcommand02res[1]); } //tmp_alarmSetParameters Map.Entry Instance02alarmSetPair = null; String Instance02alarmSetObject =""; String[] Instance02alarmSetres; Map Instance02alarmSetParameters = ((Map)faultInstance02Parameters.get("tmp_alarmSetParameters")); Iterator itr10 = Instance02alarmSetParameters.entrySet().iterator(); while (itr10.hasNext()) { Instance02alarmSetPair = itr10.next(); Instance02alarmSetObject=String.valueOf(Instance02alarmSetPair); Instance02alarmSetres = Instance02alarmSetObject.split("="); faultInstanceres02.put(Instance02alarmSetres[0], Instance02alarmSetres[1]); } setAlarmCondition = faultInstanceres02.get("alarmCondition").toString(); setSpecificProblem = faultInstanceres02.get("specificProblem").toString(); setEventSeverity = faultInstanceres02.get("eventSeverity").toString(); //tmp_alarmClearParameters Map.Entry Instanceres02alarmClearPair = null; String Instanceres02alarmClearObject =""; String[] Instanceres02alarmClearres; Map Instanceres02alarmClearParameters = ((Map)faultInstance02Parameters.get("tmp_alarmClearParameters")); Iterator itr11 = Instanceres02alarmClearParameters.entrySet().iterator(); while (itr11.hasNext()) { Instanceres02alarmClearPair = itr11.next(); Instanceres02alarmClearObject=String.valueOf(Instanceres02alarmClearPair); Instanceres02alarmClearres = Instanceres02alarmClearObject.split("="); Instanceres02ClearParameter.put(Instanceres02alarmClearres[0], Instanceres02alarmClearres[1]); } ins02alarmConditionClear = Instanceres02ClearParameter.get("alarmCondition").toString(); ins02specificProblemClear = Instanceres02ClearParameter.get("specificProblem").toString(); ins02eventSeverityClear = Instanceres02ClearParameter.get("eventSeverity").toString(); } catch (ClassCastException ex) { ex.printStackTrace(); } return faultConfig; } public static HashMap readFalutConfig1() throws IOException, ParseException { List list = new ArrayList(); JSONParser jsonParser = new JSONParser(); try { FileReader reader = new FileReader("./src/main/java/evel_javalibrary/att/com/loadbalance/flt_config.json"); JSONObject obj = (JSONObject) jsonParser.parse(reader); Map.Entry directPair = null; String directObject =""; String[] directres; Map directParameters = ((Map)obj.get("tmp_directParameters")); Iterator itr1 = directParameters.entrySet().iterator(); while (itr1.hasNext()) { directPair = itr1.next(); directObject=String.valueOf(directPair); directres = directObject.split("="); faultConfig.put(directres[0], directres[1]); } JSONArray arrJson = (JSONArray) directParameters.get("tmp_device"); resDevice = new String[arrJson.size()]; for(int i = 0; i < arrJson.size(); i++) resDevice[i] = (String) arrJson.get(i); //tmp_indirectParameters Map.Entry indirectPair = null; String indirectObject =""; String[] indirectres; Map indirectParameters = ((Map)obj.get("tmp_indirectParameters")); Iterator itr2 = indirectParameters.entrySet().iterator(); while (itr2.hasNext()) { indirectPair = itr2.next(); indirectObject=String.valueOf(indirectPair); indirectres = indirectObject.split("="); faultConfig.put(indirectres[0], indirectres[1]); } //tmp_faultInstance01 Map.Entry faultInstancePair = null; String faultInstanceObject =""; String[] faultInstanceres; Map faultInstanceParameters = ((Map)indirectParameters.get("tmp_faultInstance01")); Iterator itr3 = faultInstanceParameters.entrySet().iterator(); while (itr3.hasNext()) { faultInstancePair = itr3.next(); faultInstanceObject=String.valueOf(faultInstancePair); faultInstanceres = faultInstanceObject.split("="); faultInstanceres01.put(faultInstanceres[0], faultInstanceres[1]); } eventCategory = faultInstanceres01.get("eventCategory").toString(); eventSourceType = faultInstanceres01.get("eventSourceType").toString(); //tmp_init Map.Entry tempInitPair = null; String tempInitObject =""; Map tempInitParameters = ((Map)faultInstanceParameters.get("tmp_init")); Iterator itr4 = tempInitParameters.entrySet().iterator(); while (itr4.hasNext()) { tempInitPair = itr4.next(); tempInitObject=String.valueOf(tempInitPair); tempInitres = tempInitObject.split("="); faultConfigTempInit.put(tempInitres[0], tempInitres[1]); } String tmp_t0BytesOut = faultConfigTempInit.get("tmp_init"); //tmp_command Map.Entry tempcommandPair = null; String tempcommandObject =""; Map tempcommandParameters = ((Map)faultInstanceParameters.get("tmp_command")); Iterator itr5 = tempcommandParameters.entrySet().iterator(); while (itr5.hasNext()) { tempcommandPair = itr5.next(); tempcommandObject=String.valueOf(tempcommandPair); tempcommandres = tempcommandObject.split("="); faultConfig.put(tempcommandres[0], tempcommandres[1]); } //tmp_alarmSetParameters Map.Entry alarmSetPair = null; String alarmSetObject =""; String[] alarmSetres; Map alarmSetParameters = ((Map)faultInstanceParameters.get("tmp_alarmSetParameters")); Iterator itr6 = alarmSetParameters.entrySet().iterator(); while (itr6.hasNext()) { alarmSetPair = itr6.next(); alarmSetObject=String.valueOf(alarmSetPair); alarmSetres = alarmSetObject.split("="); faultConfig.put(alarmSetres[0], alarmSetres[1]); } alarmCondition = faultConfig.get("alarmCondition").toString(); specificProblem = faultConfig.get("specificProblem").toString(); eventSeverity = faultConfig.get("eventSeverity").toString(); //tmp_alarmClearParameters Map.Entry alarmClearPair = null; String alarmClearObject =""; String[] alarmClearres; Map alarmClearParameters = ((Map)faultInstanceParameters.get("tmp_alarmClearParameters")); Iterator itr7 = alarmClearParameters.entrySet().iterator(); while (itr7.hasNext()) { alarmClearPair = itr7.next(); alarmClearObject=String.valueOf(alarmClearPair); alarmClearres = alarmClearObject.split("="); tempAlaramClearParameter.put(alarmClearres[0], alarmClearres[1]); } alarmConditionClear = tempAlaramClearParameter.get("alarmCondition").toString(); specificProblemClear = tempAlaramClearParameter.get("specificProblem").toString(); eventSeverityClear = tempAlaramClearParameter.get("eventSeverity").toString(); //tmp_faultInstance02 Map.Entry faultInstance02Pair = null; String faultInstance02Object =""; String[] faultInstance02res; Map faultInstance02Parameters = ((Map)indirectParameters.get("tmp_faultInstance02")); Iterator itr8 = faultInstance02Parameters.entrySet().iterator(); while (itr8.hasNext()) { faultInstance02Pair = itr8.next(); faultInstance02Object=String.valueOf(faultInstance02Pair); faultInstance02res = faultInstance02Object.split("="); faultInstanceres02.put(faultInstance02res[0], faultInstance02res[1]); } Instance02alarmInterfaceA = faultInstanceres02.get("alarmInterfaceA"); Instance02eventCategory = faultInstanceres02.get("eventCategory"); Instance02eventSourceType = faultInstanceres02.get("eventSourceType"); Instance02eventName = faultInstanceres02.get("eventName"); //tmp_command Map.Entry tempcommand02Pair = null; String tempcommand02Object =""; Map tempcommand02Parameters = ((Map)faultInstance02Parameters.get("tmp_command")); Iterator itr9 = tempcommand02Parameters.entrySet().iterator(); while (itr9.hasNext()) { tempcommand02Pair = itr9.next(); tempcommand02Object=String.valueOf(tempcommand02Pair); tempcommand02res = tempcommand02Object.split("="); faultInstanceres02.put(tempcommand02res[0], tempcommand02res[1]); } //tmp_alarmSetParameters Map.Entry Instance02alarmSetPair = null; String Instance02alarmSetObject =""; String[] Instance02alarmSetres; Map Instance02alarmSetParameters = ((Map)faultInstance02Parameters.get("tmp_alarmSetParameters")); Iterator itr10 = Instance02alarmSetParameters.entrySet().iterator(); while (itr10.hasNext()) { Instance02alarmSetPair = itr10.next(); Instance02alarmSetObject=String.valueOf(Instance02alarmSetPair); Instance02alarmSetres = Instance02alarmSetObject.split("="); faultInstanceres02.put(Instance02alarmSetres[0], Instance02alarmSetres[1]); } setAlarmCondition = faultInstanceres02.get("alarmCondition").toString(); setSpecificProblem = faultInstanceres02.get("specificProblem").toString(); setEventSeverity = faultInstanceres02.get("eventSeverity").toString(); //tmp_alarmClearParameters Map.Entry Instanceres02alarmClearPair = null; String Instanceres02alarmClearObject =""; String[] Instanceres02alarmClearres; Map Instanceres02alarmClearParameters = ((Map)faultInstance02Parameters.get("tmp_alarmClearParameters")); Iterator itr11 = Instanceres02alarmClearParameters.entrySet().iterator(); while (itr11.hasNext()) { Instanceres02alarmClearPair = itr11.next(); Instanceres02alarmClearObject=String.valueOf(Instanceres02alarmClearPair); Instanceres02alarmClearres = Instanceres02alarmClearObject.split("="); Instanceres02ClearParameter.put(Instanceres02alarmClearres[0], Instanceres02alarmClearres[1]); } ins02alarmConditionClear = Instanceres02ClearParameter.get("alarmCondition").toString(); ins02specificProblemClear = Instanceres02ClearParameter.get("specificProblem").toString(); ins02eventSeverityClear = Instanceres02ClearParameter.get("eventSeverity").toString(); } catch (ClassCastException ex) { ex.printStackTrace(); } return faultConfig; } public static HashMap readVppMetrics(String[] linkStart) { //t0 String Bytesin = faultConfigTempInit.get("tmp_t0BytesIn"); String BytesOut = faultConfigTempInit.get("tmp_t0BytesOut").toString(); String PacketsIn = faultConfigTempInit.get("tmp_t0PacketsIn"); String PacketsOut = faultConfigTempInit.get("tmp_t0PacketsOut"); //t1 String t1BytesIn = faultConfigCommand.get("tmp_t1BytesIn"); String t1BytesOut = faultConfigCommand.get("tmp_t1BytesOut").toString(); String t1PacketsIn = faultConfigCommand.get("tmp_t1PacketsIn"); String t1PacketsOut = faultConfigCommand.get("tmp_t1PacketsOut"); String echoFalut = faultInstanceres02.get("tmp_cmd1"); HashMap vppMetrics = new HashMap<>(); for(int i=0;i readVppMetrics1(String[] linkStart) { String Bytesin = faultConfigTempInit.get("tmp_t0BytesIn"); String BytesOut = faultConfigTempInit.get("tmp_t0BytesOut").toString(); String PacketsIn = faultConfigTempInit.get("tmp_t0PacketsIn"); String PacketsOut = faultConfigTempInit.get("tmp_t0PacketsOut"); String echoFalut = faultInstanceres02.get("tmp_cmd1"); HashMap vppMetrics = new HashMap<>(); for(int i=0;i