for(final Probe<?, ?> p: host.getProbes()) { final Runnable runUpgrade = new Runnable() { private Probe<?, ?> lp = p;
for (HostInfo hi: hostsList.getHosts()) { System.out.println(hi.getName()); for (Probe<?, ?> p: hi.getProbes()) { System.out.println(" " + p.getName()); try (Extractor ex = p.fetchData()) {
@Test public void testMacroFill() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); Collection<String> probesName = new ArrayList<String>(); for(Probe<?, ?> p: host.getProbes()) { probesName.add(p.toString()); } logger.trace(probesName); Assert.assertTrue("MacroProbe1 not found", probesName.contains("myhost/MacroProbe1")); Assert.assertTrue("MacroProbe2 not found", probesName.contains("myhost/MacroProbe2")); }
for(Probe<?, ?> p: host.getProbes()) { addProbe(p);
@Test public void testMacroFillwithProps2() throws Exception { Map<String, String> prop = new HashMap<String, String>(); prop.put(OutputKeys.INDENT, "yes"); prop.put(OutputKeys.INDENT, "yes"); prop.put("{http://xml.apache.org/xslt}indent-amount", "4"); JrdsDocument d = Tools.parseString(goodMacroXml); d.getRootElement().addElement("probe", "type=MacroProbe3").addElement("attr", "name=val").addTextNode("${a}"); Macro m = doMacro(d, "macrodef"); m.getDf(); JrdsDocument hostdoc = Tools.parseString(goodHostXml); hostdoc.getRootElement().getChildElementsByName("macro").iterator().next().addElement("arg", "type=String", "value=${a}"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe1".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertFalse(mp.getArgs().contains("bidule")); found = true; } else if("myhost/MacroProbe2".equals(p.toString())) { @SuppressWarnings("unused") MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; } } Assert.assertTrue("macro probe with properties not found", found); }
@Test public void testMacroFill() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); MacroBuilder b = new MacroBuilder(); Macro m = b.makeMacro(d); Map<String, Macro> macroMap = new HashMap<String, Macro>(); macroMap.put(m.getName(), m); JrdsDocument hostdoc = Tools.parseString(goodHostXml); hostdoc.setDocumentURI("-//jrds//DTD Graph Description//EN"); hostdoc.getRootElement().addElement("macro", "name=macrodef"); PropertiesManager pm = Tools.makePm(testFolder); HostBuilder hb = new HostBuilder(); hb.setPm(pm); hb.setMacros(macroMap); hb.setProbeFactory(new MokeProbeFactory()); hb.setTimers(Tools.getSimpleTimerMap()); HostInfo host = hb.makeHost(hostdoc); logger.debug("probes:" + host.getProbes()); Collection<String> probesName = new ArrayList<String>(); for(Probe<?, ?> p: host.getProbes()) { probesName.add(p.toString()); } Assert.assertTrue("MacroProbe1 not found", probesName.contains("myhost/MacroProbe1")); Assert.assertTrue("MacroProbe2 not found", probesName.contains("myhost/MacroProbe2")); }
@Test public void testAttributesParsing() throws Exception { PropertiesManager pm = Tools.makePm(testFolder); File descpath = new File("desc"); if(descpath.exists()) pm.libspath.add(descpath.toURI()); ConfigObjectFactory conf = new ConfigObjectFactory(pm); JrdsDocument pddoc = Tools.parseRessource("beans.xml"); conf.getNodeMap(ConfigType.PROBEDESC).put("name", pddoc); Map<String, GraphDesc> graphDescMap = conf.setGraphDescMap(); Map<String, ProbeDesc<? extends Object>> probeDescMap = conf.setProbeDescMap(); ProbeFactory pf = new ProbeFactory(probeDescMap, graphDescMap); HostBuilder hb = new HostBuilder(); hb.setPm(pm); hb.setClassLoader(this.getClass().getClassLoader()); hb.setMacros(new HashMap<String, Macro>(0)); hb.setProbeFactory(pf); Map<String, Timer> timerMap = Tools.getSimpleTimerMap(); timerMap.put("another", timerMap.get(Timer.DEFAULTNAME)); hb.setTimers(timerMap); JrdsDocument fullhost = Tools.parseRessource("attrhost.xml"); HostInfo hi = hb.build(fullhost); Probe<?, ?> p = hi.getProbes().iterator().next(); Assert.assertEquals("${attr.customattr1} failed", "defaultattr1", Util.parseTemplate("${attr.customattr1}", p)); Assert.assertEquals("${attr.customattr3} failed", "defaultattr2", Util.parseTemplate("${attr.customattr2}", p)); Assert.assertEquals("${attr.customattr3} failed", "defaultattr1", Util.parseTemplate("${attr.customattr3}", p)); Assert.assertEquals("${attr.customattr4} failed", "value4", Util.parseTemplate("${attr.customattr4}", p)); }
@Test public void testMacroFillwithProps1() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); d.getRootElement().addElement("entry", "key=a").setTextContent("bidule"); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); hostdoc.getRootElement().addElement("probe", "type=MacroProbe3").addElement("arg", "type=String", "value=${a}"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertFalse(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("macro probe with properties not found", found); }
@Test public void testCollection() throws Exception { JrdsDocument d = Tools.parseString(goodMacroXml); Tools.appendString(Tools.appendString(Tools.appendString(d.getDocumentElement(), "<for var=\"a\" collection=\"c\"/>"), "<probe type = \"MacroProbe3\" />"), "<arg type=\"String\" value=\"${a}\" />"); Macro m = doMacro(d, "macrodef"); JrdsDocument hostdoc = Tools.parseString(goodHostXml); Tools.appendString(Tools.appendString(hostdoc.getDocumentElement(), "<collection name=\"c\"/>"), "<element>bidule</element>"); HostBuilder hb = getBuilder(m); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertTrue(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("collection not found", found); }
@Test public void testRecursive() throws Exception { JrdsDocument d1 = Tools.parseString(goodMacroXml); Tools.appendString(d1.getDocumentElement(), "<macro name=\"macrodef2\" />"); Macro m1 = doMacro(d1, "macrodef"); JrdsDocument d2 = Tools.parseString(goodMacroXml); Tools.appendString(Tools.appendString(d2.getDocumentElement(), "<probe type = \"MacroProbe3\" />"), "<arg type=\"String\" value=\"bidule\" />"); Macro m2 = doMacro(d2, "macrodef2"); HostBuilder hb = getBuilder(m1, m2); JrdsDocument hostdoc = Tools.parseString(goodHostXml); HostInfo host = hb.makeHost(hostdoc); boolean found = false; for(Probe<?, ?> p: host.getProbes()) { if("myhost/MacroProbe3".equals(p.toString())) { MokeProbe<?, ?> mp = (MokeProbe<?, ?>) p; logger.trace("Args:" + mp.getArgs()); Assert.assertTrue(mp.getArgs().contains("bidule")); found = true; } } Assert.assertTrue("macro not recursive", found); }