private static boolean parseHeader(String line, Tl1AutonomousMessage message) throws IllegalArgumentException { StringTokenizer headerParser = new StringTokenizer(line); if (headerParser.countTokens() != 3) { throw new IllegalArgumentException("The line: "+line+" is not an Autonomous message header"); } message.getHeader().setRawMessage(line); message.getHeader().setSid(headerParser.nextToken()); message.setHost(message.getHeader().getSid()); message.getHeader().setDate(headerParser.nextToken()); message.getHeader().setTime(headerParser.nextToken()); try { if (message.getHeader().getDate().matches("^[0-9]{4}")) { message.getHeader().setTimestamp(SDF_4DY.get().parse(message.getHeader().getDate()+" "+message.getHeader().getTime())); } else { message.getHeader().setTimestamp(SDF_2DY.get().parse(message.getHeader().getDate()+" "+message.getHeader().getTime())); } message.setTimestamp(message.getHeader().getTimestamp()); } catch (ParseException e) { throw new IllegalArgumentException("The line: "+line+", doesn't contain date and time in the format: "+SDF_2DY.get().toLocalizedPattern() + " or " + SDF_4DY.get().toLocalizedPattern()); } return true; }
private boolean parseId(String line, Tl1AutonomousMessage message) { StringTokenizer idParser = new StringTokenizer(line); if (idParser.countTokens() < 3) { throw new IllegalArgumentException("The line: "+line+" is not an Autonomouse message id. Expected 3 or more tokens " + "and received: "+idParser.countTokens()); } message.getId().setRawMessage(line); message.getId().setAlarmCode(idParser.nextToken()); message.getId().setAlarmTag(idParser.nextToken()); final StringBuilder bldr = new StringBuilder(); while(idParser.hasMoreTokens()) { bldr.append(idParser.nextToken()); bldr.append(" "); } message.getId().setVerb(bldr.toString().trim()); return true; }
private void processId(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundId = false; while(!foundId ) { while (lineParser.hasMoreElements() && !foundId) { String line = (String) lineParser.nextElement(); if (line != null && !(line.equals(message.getTerminator()))) { foundId = parseId(line, message); } } } }
private void processMessage(Tl1AutonomousMessage message) { LOG.debug("processMessage: Processing message: {}", message); EventBuilder bldr = new EventBuilder(Tl1AutonomousMessage.UEI, "Tl1d"); bldr.setHost(message.getHost()); bldr.setInterface(addr(message.getHost())); //interface is the IP bldr.setService("TL-1"); //Service it TL-1 bldr.setSeverity(message.getId().getHighestSeverity()); bldr.setTime(message.getTimestamp()); bldr.addParam("raw-message", message.getRawMessage()); bldr.addParam("alarm-code", message.getId().getAlarmCode()); bldr.addParam("atag", message.getId().getAlarmTag()); bldr.addParam("verb", message.getId().getVerb()); bldr.addParam("autoblock", message.getAutoBlock().getBlock()); bldr.addParam("aid",message.getAutoBlock().getAid()); bldr.addParam("additionalParams",message.getAutoBlock().getAdditionalParams()); m_eventForwarder.sendNow(bldr.getEvent()); LOG.debug("processMessage: Message processed: {}", message); }
private boolean parseAutoBlock(String line, Tl1AutonomousMessage message) { message.getAutoBlock().setBlock(line); message.getAutoBlock().setAid(aidParser.nextToken().substring(1)); message.getAutoBlock().setNtfcncde(ntfcncde); message.getAutoBlock().setAdditionalParams(sb.toString().trim());
/** {@inheritDoc} */ @Override public Tl1AutonomousMessage process(String rawMessage, int messageType) { StringTokenizer lineParser = new StringTokenizer(rawMessage, "\n"); Tl1AutonomousMessage message = new Tl1AutonomousMessage(rawMessage); try { processHeader(lineParser, message); processId(lineParser, message); processAutoBlock(lineParser, message); } catch (IllegalStateException e) { return null; } return message; }
public void testProcess() { String sampleMessage = " GPON15000 2008-07-31 18:29:49\n" + "*C 0 REPT ALM BITS\n" + " \"1-4:NTFCNCDE=CR,CONDTYPE=FAIL,SRVEFF=SA,OCRDAT=09-23,OCRTM=02-03-04,LOCN=NEND,DIRN=RCV\"\n" + ";\n" + ""; Tl1AutonomousMessage alarm = m_processor.process(sampleMessage, Tl1Message.AUTONOMOUS); assertNotNull(alarm.getRawMessage()); assertNotNull(alarm.getHeader()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); assertEquals("2008-07-31", formatter.format(alarm.getHeader().getTimestamp())); formatter = new SimpleDateFormat("HH:mm:ss"); assertEquals("18:29:49", formatter.format(alarm.getHeader().getTimestamp())); assertEquals("GPON15000", alarm.getHost()); assertEquals("GPON15000", alarm.getHeader().getSid()); assertEquals(alarm.getTimestamp(), alarm.getHeader().getTimestamp()); assertEquals("*C 0 REPT ALM BITS", alarm.getId().getRawMessage()); assertEquals("*C", alarm.getId().getAlarmCode()); assertEquals("0", alarm.getId().getAlarmTag()); assertEquals("REPT ALM BITS", alarm.getId().getVerb()); assertEquals("\"1-4:NTFCNCDE=CR,CONDTYPE=FAIL,SRVEFF=SA,OCRDAT=09-23,OCRTM=02-03-04,LOCN=NEND,DIRN=RCV\"", alarm.getAutoBlock().getBlock()); assertEquals("CR", alarm.getAutoBlock().getNtfcncde()); }
assertNotNull(alarm.getRawMessage()); assertNotNull(alarm.getHeader()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); assertEquals("2009-04-20", formatter.format(alarm.getHeader().getTimestamp())); formatter = new SimpleDateFormat("HH:mm:ss"); assertEquals("07:38:35", formatter.format(alarm.getHeader().getTimestamp())); assertEquals("DSALC003", alarm.getHost()); assertEquals("DSALC003", alarm.getHeader().getSid()); assertEquals(alarm.getTimestamp(), alarm.getHeader().getTimestamp()); assertEquals("** 169 REPT ALM ENV", alarm.getId().getRawMessage()); assertEquals("**", alarm.getId().getAlarmCode()); assertEquals("169", alarm.getId().getAlarmTag()); assertEquals("REPT ALM ENV", alarm.getId().getVerb()); assertEquals("\"ENV-2:MJ,MISC,4-7,7-30-15,\\\"Miscellaneous environment alarm\\\"\"", alarm.getAutoBlock().getBlock()); assertEquals("MJ", alarm.getAutoBlock().getNtfcncde());
private void processAutoBlock(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundId = false; while(!foundId ) { while (lineParser.hasMoreElements() && !foundId) { String line = (String) lineParser.nextElement(); if (line != null && !(line.equals(message.getTerminator()))) { foundId = true; foundId = parseAutoBlock(line.trim(), message); //message.getAutoBlock().setBlock(line.trim()); } } } }
private void processHeader(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundHeader = false; while(!foundHeader ) { while (lineParser.hasMoreTokens() && !foundHeader) { String line = (String) lineParser.nextToken(); if (line != null && !(line.equals(message.getTerminator()))) { try { foundHeader = parseHeader(line, message); } catch (IllegalArgumentException e) { } } } } if (!foundHeader) { throw new IllegalStateException("No TL1 Header found in: "+lineParser.toString()); } }