Two of the discovery hook scripts, custom-end-system.asl and custom-start-post.asl, as shipped with the IP Manager, are shown in Figure on page and Figure on page.
/* . . . * RCS $Id: custom-end-system.asl,v 1.1 2003/03/06 17:39:37 ouc Exp $ * * This asl file is used at the end of probing of each device. */ default AgentName = ""; agentObj = object("SNMPAgent", AgentName); if (agentObj->isNull()) { stop(); } nodeObj = agentObj->getSystem(); if (nodeObj->isNull()) { stop(); } factory = object(getInstances("ICIM_ObjectFactory")[0]); topo_manager = object(getInstances("ICF_TopologyManager")[0]); default DEBUG = topo_manager->DebugEnabled; me = this->ReadsRulesFrom->fileName.": "; blanks = " "; /* * Add additional initialization here. */ /* * Add convenience patterns here. */ /*****************************************************************************/ START { /* * Add Parsing rules here. */ .. eol } do { /* * Add processing rules here. */ stop(); } /* * Addition EOF or DEFAULT here if necessary. */ /**********************************************************/ /* * Local Variables: * mode: C++ * End: */ /* . . . * RCS $Id: custom-start-post.asl,v 1.1.464.1 2009/02/04 21:36:47 tdemay Exp $ * * This asl file is used at beginning of discovery post processing. */ factory = object(getInstances("ICIM_ObjectFactory")[0]); topo_manager = object(getInstances("ICF_TopologyManager")[0]); default DEBUG = topo_manager->DebugEnabled; me = this->ReadsRulesFrom->fileName.": "; blanks = " "; /* * Add additional initialization here. */ /* * Add convenience patterns here. */ /*****************************************************************************/ START { /* * Add Parsing rules here. */ .. eol } do { start = STARTTIMER() ; /* * Add processing rules here. */ FINISHTIMER(start) ; stop(); } STARTTIMER() do { msg = "Starting: ".this->Name ; TIMER(msg) ; return time() ; } FINISHTIMER(start) do { msg = "Finished: ".this->Name." (Running time: ".time()-start." seconds)" ; TIMER(msg) ; } TIMER(msg) do { print(msg." at ".time()); topo_manager->probeStatusMessage = msg; } /* * Addition EOF or DEFAULT here if necessary. */ /**********************************************************/ /* * Local Variables: * mode: C++ * End: */