/******************************************************************************* * This file is part of OpenNMS(R). * * Copyright (C) 2011 The OpenNMS Group, Inc. * OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * * OpenNMS(R) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * OpenNMS(R) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenNMS(R). If not, see: * http://www.gnu.org/licenses/ * * For more information contact: * OpenNMS(R) Licensing <license@opennms.org> * http://www.opennms.org/ * http://www.opennms.com/ *******************************************************************************/ package org.opennms.netmgt.jasper.helper; import static org.junit.Assert.assertEquals; import java.io.FileNotFoundException; import java.io.IOException; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; public class JRobinDirectoryUtilTest { private static String JRB_DIRECTORY = "src/test/resources/share/rrd/snmp"; private static String RRD_TOOL_DIRECTORY = "src/test/resources/share/rrd"; private static String NODE_ID = "9"; private static String INTERFACE = "me1-0002baaacffe"; @Before public void setup() { System.setProperty("org.opennms.rrd.storeByGroup", "true"); System.setProperty("org.opennms.rrd.strategyClass", "org.opennms.netmgt.rrd.jrobin.JRobinRrdStrategy"); } @Test @Ignore public void testJRobinDirectoryLookupLocal() throws FileNotFoundException, IOException { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); String rrdDirectory = "/Users/thedesloge/git/opennms/target/opennms-1.9.93-SNAPSHOT/share/rrd/snmp"; String nodeId = "48"; String iFace = lookup.getInterfaceDirectory("", "mgi1", "90840dd40a7d"); String jrb = lookup.getIfInOctetsJrb(rrdDirectory, nodeId, iFace); System.out.println("path and file: " + jrb); assertEquals("/Users/thedesloge/git/opennms/target/opennms-1.9.93-SNAPSHOT/share/rrd/snmp/48/mgi1-90840dd40a7d/mib2-interfaces.jrb", lookup.getIfInOctetsJrb(rrdDirectory, nodeId, iFace)); assertEquals("/Users/thedesloge/git/opennms/target/opennms-1.9.93-SNAPSHOT/share/rrd/snmp/48/mgi1-90840dd40a7d/mib2-interfaces.jrb", lookup.getIfInOctetsJrb(rrdDirectory, nodeId, iFace)); assertEquals("ifInOctets", lookup.getIfInOctetsDataSource(rrdDirectory, nodeId, iFace)); assertEquals("ifOutOctets", lookup.getIfOutOctetsDataSource(rrdDirectory, nodeId, iFace)); } @Test public void testJRobinDirectoryLookup() throws IOException { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.jrb", lookup.getIfInOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.jrb", lookup.getIfOutOctetsJrb( JRB_DIRECTORY, NODE_ID, INTERFACE)); System.setProperty("org.opennms.rrd.storeByGroup", "false"); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/ifHCInOctets.jrb", lookup.getIfInOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/ifHCOutOctets.jrb", lookup.getIfOutOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); } @Test public void testJRobinDirectoryUtilRrdExtension() throws FileNotFoundException, IOException { System.setProperty("org.opennms.rrd.strategyClass", "org.opennms.netmgt.rrd.jrobin.JniRrdStrategy"); JRobinDirectoryUtil lookupUtil = new JRobinDirectoryUtil(); assertEquals("src/test/resources/share/rrd/9/me1-0002baaacffe/mib2-interfaces.rrd", lookupUtil.getIfInOctetsJrb(RRD_TOOL_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/9/me1-0002baaacffe/mib2-interfaces.rrd", lookupUtil.getIfOutOctetsJrb( RRD_TOOL_DIRECTORY, NODE_ID, INTERFACE)); System.setProperty("org.opennms.rrd.storeByGroup", "false"); assertEquals("src/test/resources/share/rrd/9/me1-0002baaacffe/ifHCInOctets.rrd", lookupUtil.getIfInOctetsJrb(RRD_TOOL_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/9/me1-0002baaacffe/ifHCOutOctets.rrd", lookupUtil.getIfOutOctetsJrb(RRD_TOOL_DIRECTORY, NODE_ID, INTERFACE)); } @Test public void testJRobinDirectoryUtilCustomExtension() throws FileNotFoundException, IOException { System.setProperty("org.opennms.rrd.fileExtension", ".jrb"); JRobinDirectoryUtil lookupUtil = new JRobinDirectoryUtil(); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.jrb", lookupUtil.getIfInOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.jrb", lookupUtil.getIfOutOctetsJrb( JRB_DIRECTORY, NODE_ID, INTERFACE)); System.setProperty("org.opennms.rrd.fileExtension", ".bogus"); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.bogus", lookupUtil.getIfInOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.bogus", lookupUtil.getIfOutOctetsJrb( JRB_DIRECTORY, NODE_ID, INTERFACE)); System.setProperty("org.opennms.rrd.fileExtension", ".rrd"); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.rrd", lookupUtil.getIfInOctetsJrb(JRB_DIRECTORY, NODE_ID, INTERFACE)); assertEquals("src/test/resources/share/rrd/snmp/9/me1-0002baaacffe/mib2-interfaces.rrd", lookupUtil.getIfOutOctetsJrb( JRB_DIRECTORY, NODE_ID, INTERFACE)); } @Test public void testGetInterfaceDirectory() { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); String snmpphysaddr = "0002baaacffe"; String snmpifname = "me1"; String snmpifdescr = "me1"; assertEquals("me1-0002baaacffe", lookup.getInterfaceDirectory(snmpifname, snmpifdescr, snmpphysaddr)); } @Test public void testGetInterfaceDirectoryNoSnmpPhysAddr() { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); String snmpphysaddr = null; String snmpifname = "me1"; String snmpifdescr = "me1"; assertEquals("me1", lookup.getInterfaceDirectory(snmpifname, snmpifdescr, snmpphysaddr)); snmpifdescr = null; assertEquals("me1", lookup.getInterfaceDirectory(snmpifname, snmpifdescr, snmpphysaddr)); } @Test public void testGetInterfaceDirectoryNoSnmpIfName() { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); String snmpphysaddr = "0002baaacffe"; String snmpifname = null; String snmpifdescr = "me1"; assertEquals("me1-0002baaacffe", lookup.getInterfaceDirectory(snmpifname, snmpifdescr, snmpphysaddr)); } @Test public void testGetInterfaceDirectoryATM() { JRobinDirectoryUtil lookup = new JRobinDirectoryUtil(); String snmpphysaddr = "00e0817xxxxx"; String snmpifname = ""; String snmpifdescr = "eth0"; assertEquals("eth0-00e0817xxxxx", lookup.getInterfaceDirectory(snmpifname, snmpifdescr, snmpphysaddr)); } }