/** * A special case constructor, mainly used by virtual probe * * @param pd */ public Probe(ProbeDesc<KeyType> pd) { super(); setPd(pd); }
private void dumpAll(Collection<ProbeDesc<? extends Object>> probes) { for(ProbeDesc<? extends Object> pd: probes) { @SuppressWarnings("unchecked") ProbeDesc<Object> castedpd = (ProbeDesc<Object>) pd; try { Class<? extends Probe<Object, ?>> c = (Class<? extends Probe<Object, ?>>) castedpd.getProbeClass(); //Don't dump passive probes, nothing to show if (PassiveProbe.class.isAssignableFrom(c)) { continue; } Probe<Object, ?> p = c.newInstance(); p.setPd(castedpd); System.out.println(oneLine(p)); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } } }
return null; retValue.setPd(pd); return retValue;
private void dumpProbe(ProbeDesc<Object> pd) throws InstantiationException, IllegalAccessException, InvocationTargetException { Class<? extends Probe<Object, ?>> c = (Class<? extends Probe<Object, ?>>) pd.getProbeClass(); Probe<Object, ?> p = c.newInstance(); p.setPd(pd); System.out.println(oneLine(p));
@Test public void constructAndCheckImmediateHigh() { Probe<String, Number> p = new MokeProbe<String, Number>(); p.setPd(pd); Map<String, String> nameMap = p.getCollectMapping(); Map<String, Number> filteredSamples = new HashMap<String, Number>(); Map<String, Number> resultSample = new HashMap<String, Number>(); for(Map.Entry<String, Number> e: filteredSamples.entrySet()) { String dsName = nameMap.get(e.getKey()); double value = e.getValue().doubleValue(); if(dsName != null) { resultSample.put(dsName, value); } else { logger.debug("Dropped entry: " + e.getKey()); } } } }
static public Probe<?, ?> getProbe() throws InvocationTargetException { Probe<?, ?> p = new Probe<String, Number>() { @Override public Map<String, Number> getNewSampleValues() { return Collections.emptyMap(); } @Override public String getSourceType() { return "fullmoke"; } }; Map<String, String> empty = Collections.emptyMap(); p.setMainStore(new jrds.store.RrdDbStoreFactory(), empty); p.setPd(getPd()); return p; }
static public Probe<String, Number> getProbe() throws InvocationTargetException { Probe<String, Number> p = new MokeProbe<String, Number>(); p.setPd(getPd()); p.setHost(new HostStarter(getHost())); Map<String, String> empty = Collections.emptyMap(); p.setMainStore(new RrdDbStoreFactory(), empty); return p; }
@Test public void testOptional() throws Exception { PropertiesManager localpm = Tools.makePm(testFolder); ConfigObjectFactory conf = new ConfigObjectFactory(localpm, localpm.extensionClassLoader); JrdsDocument pddoc = Tools.parseRessource("httpxmlprobedesc.xml"); pddoc.getRootElement().getElementbyName("probeClass").setTextContent("jrds.mockobjects.MokeProbeBean"); conf.getNodeMap(ConfigType.PROBEDESC).put("name", pddoc); @SuppressWarnings("unchecked") ProbeDesc<String> pd = (ProbeDesc<String>) conf.setProbeDescMap().get("name"); Assert.assertNotNull("Probedesc not build", pd); @SuppressWarnings("unchecked") Probe<String, String> p = (Probe<String, String>) pd.getProbeClass().getConstructor().newInstance(); p.setPd(pd); p.setLabel("goodlabel"); Assert.assertTrue("optional resolution broken", p.isOptional("goodlabel")); }
@Test public void create() throws Exception { @SuppressWarnings("unchecked") Probe<String, Number> p = GenerateProbe.quickProbe(testFolder); p.setPd(Full.getPd()); File rrdFile = new File(p.getMainStore().getPath()); Assert.assertTrue("Failed to create probe " + rrdFile.getAbsolutePath(), p.checkStore()); logger.debug("Created " + p + " stored in " + p.getMainStore().getStoreObject()); long endSec = Full.fill(p); logger.debug("fill time: " + endSec); logger.debug(p.getLastUpdate()); Period pr = Full.getPeriod(p, endSec); Graphics2D g2d = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB).createGraphics(); GraphDesc gd = Full.getGd(); gd.initializeLimits(g2d); GraphNode gn = new GraphNode(p, gd); Graph g = new Graph(gn); g.setPeriod(pr); int h = g.getDimension().height; int w = g.getDimension().width; File outputFile = testFolder.newFile(); OutputStream out = new FileOutputStream(outputFile); g.writePng(out); BufferedImage img = ImageIO.read(outputFile); Assert.assertEquals(h, img.getHeight()); Assert.assertEquals(w, img.getWidth()); Assert.assertTrue(rrdFile.exists()); Assert.assertTrue(rrdFile.length() > 0); }
pd = new ProbeDesc<String>(); p.setPd(pd);
@Test public void testCustomBeans() throws Exception { PropertiesManager localpm = Tools.makePm(testFolder); ConfigObjectFactory conf = new ConfigObjectFactory(localpm, localpm.extensionClassLoader); JrdsDocument pddoc = Tools.parseRessource("beans.xml"); pddoc.getRootElement().getElementbyName("probeClass").setTextContent("jrds.mockobjects.MokeProbeBean"); conf.getNodeMap(ConfigType.PROBEDESC).put("name", pddoc); @SuppressWarnings("unchecked") ProbeDesc<String> pd = (ProbeDesc<String>) conf.setProbeDescMap().get("name"); Assert.assertNotNull("custom bean customattr1 not found", pd.getBean("customattr1")); Assert.assertNotNull("custom bean customattr2 not found", pd.getBean("customattr2")); @SuppressWarnings("unchecked") Probe<String, String> p = (Probe<String, String>) pd.getProbeClass().getConstructor().newInstance(); p.setPd(pd); pd.getBean("customattr1").set(p, "value1"); pd.getBean("customattr2").set(p, "value2"); Assert.assertEquals("value1", pd.getBean("customattr1").get(p)); Assert.assertEquals("value2", pd.getBean("customattr2").get(p)); Assert.assertEquals("value1", Util.parseTemplate("${attr.customattr1}", p)); Assert.assertEquals("value2", Util.parseTemplate("${attr.customattr2}", p)); } }