package org.rrd4j.demo; import org.rrd4j.core.RrdDb; import org.rrd4j.core.RrdToolkit; import java.io.File; import java.io.FileFilter; import java.io.IOException; /** * <p>HeartbeatFix class.</p> */ public class HeartbeatFix { /** * <p>main.</p> * * @param args an array of {@link java.lang.String} objects. * @throws java.io.IOException if any. */ public static void main(String[] args) throws IOException { if (args.length != 2) { System.err.println("SYNTAX: HeartbeatFix <rrd directory> <heartbeat>"); System.exit(-1); } File directory = new File(args[0]); long heartbeat = Long.parseLong(args[1]); File[] files = directory.listFiles(new FileFilter() { public boolean accept(File pathname) { return pathname.isFile() && pathname.getName().endsWith(".rrd.jrb"); } }); System.out.println(files.length + " files found"); for (int i = 0; i < files.length; i++) { String path = files[i].getAbsolutePath(); System.out.print((i + 1) + ": " + path + ": "); // fix heartbeat RrdToolkit.setDsHeartbeat(files[i].getAbsolutePath(), 0, heartbeat); RrdToolkit.setDsHeartbeat(files[i].getAbsolutePath(), 1, heartbeat); System.out.print("fixed"); // check consistency of the file RrdDb rrd = new RrdDb(path); if (rrd.getRrdDef().getEstimatedSize() == files[i].length() && rrd.getDatasource(0).getHeartbeat() == heartbeat && rrd.getDatasource(1).getHeartbeat() == heartbeat) { System.out.println(", verified"); } else { System.out.println(", ********** ERROR **********"); } rrd.close(); } System.out.println("FINISHED!"); } }