(→AHPSCRIPTS-135)
|
(→AHPSCRIPTS-134)
|
Line 1556: | |||
//BMG</pre> | //BMG</pre> | ||
+ | = Find All Agents Online And Offline = | ||
+ | * This can be heavily modified for practical uses in other applications (such as finding agents online in each environment versus offline, return just a list of online agents, return just a list of offline agents, etc.). The following script will return the status of all agents that the server is aware of: | ||
+ | ==== AHPSCRIPTS-128 ==== | ||
+ | <pre>/***********************************************************************/ | ||
+ | /* */ | ||
+ | /* This script will retrieve all online agents across all environments */ | ||
+ | /* and print this information out */ | ||
+ | /* */ | ||
+ | /* @author BMG */ | ||
+ | /* @date 02/22/2011 */ | ||
+ | /* */ | ||
+ | /***********************************************************************/ | ||
+ | import com.urbancode.anthill3.main.client.AnthillClient; | ||
+ | import com.urbancode.anthill3.persistence.UnitOfWork; | ||
+ | import com.urbancode.anthill3.domain.agent.*; | ||
+ | import com.urbancode.anthill3.services.agent.AgentManager; | ||
+ | //The following settings are for establishing a connection to the | ||
+ | //anthill server | ||
+ | String username = "admin"; | ||
+ | String password = "admin"; | ||
+ | String host = "localhost"; | ||
+ | int remotingPort = 4567; | ||
+ | //obtain connection to the Anthill server | ||
+ | AnthillClient anthill = AnthillClient.connect(host, remotingPort, username, password); | ||
+ | //create a Unit of Work | ||
+ | UnitOfWork uow = anthill.createUnitOfWork(); | ||
+ | //Make room for debug info | ||
+ | print("\n\n"); | ||
+ | //quick description | ||
+ | Thread.sleep(333); | ||
+ | print("Now attempting to query all agents, and return status of each. PLEASE WAIT. . ."); | ||
+ | Thread.sleep(500); | ||
+ | //main script | ||
+ | String agentName; | ||
+ | String environmentName; | ||
+ | int online = 0; | ||
+ | int offline = 0; | ||
+ | int total = 0; | ||
+ | int none = 0; | ||
+ | boolean others = false; | ||
+ | AgentFactory agentFactory = AgentFactory.getInstance(); | ||
+ | Agent[] agentArray = agentFactory.restoreAll(); | ||
+ | print(""); | ||
+ | for (index : agentArray){ | ||
+ | status = AgentManager.getInstance().getAgentStatus(index); | ||
+ | if (status != null && status.isOnline()){ | ||
+ | agentName = index.getName(); | ||
+ | print("[ ] - Agent '" + agentName + "' is returning ONLINE."); | ||
+ | online++; | ||
+ | } | ||
+ | else if (status != null && !status.isOnline()){ | ||
+ | agentName = index.getName(); | ||
+ | print("[ERROR] - Agent '" + agentName + "' is returning OFFLINE."); | ||
+ | offline++; | ||
+ | } | ||
+ | else{ | ||
+ | print(status); | ||
+ | others = true; | ||
+ | } | ||
+ | total++; | ||
+ | } | ||
+ | Thread.sleep(1000); | ||
+ | print(""); | ||
+ | print(""); | ||
+ | print("+------------------------+ "); | ||
+ | print("+ TOTAL ONLINE AGENTS : " + online); | ||
+ | print("+ TOTAL OFFLINE AGENTS : " + offline); | ||
+ | if (others==true){ | ||
+ | print("+ TOTAL UNKNOWN AGENTS : " + none); | ||
+ | } | ||
+ | print("+ TOTAL AGENTS : " + total); | ||
+ | print("+------------------------+ "); | ||
+ | uow.commitAndClose(); | ||
+ | print("\n\n"); | ||
+ | //BMG</pre> |