This report shows the user a list of agents and their JAVA_HOME present on them. This report has to be used in conjunction with a report template such as the HTML Template.
Meta-Data Script:
import com.urbancode.anthill3.domain.reporting.*; ReportMetaData rmd = new ReportMetaData(); rmd.addColumn("Agent"); rmd.addColumn("Status"); rmd.addColumn("env/JAVA_HOME"); rmd.addColumn("env/USERDOMAIN"); rmd.addColumn("env/USERNAME"); rmd.addColumn("env/COMPUTERNAME"); rmd.addColumn("sys/java.version"); rmd.addColumn("sys/os.name"); rmd.addColumn("sys/os.version"); rmd.addColumn("sys/os.arch"); return rmd;
Report Script:
import com.urbancode.anthill3.domain.agent.*; import com.urbancode.anthill3.domain.reporting.*; import com.urbancode.anthill3.services.agent.*; String[] vars = new String[] { "env/JAVA_HOME", "env/USERDOMAIN", "env/USERNAME", "env/COMPUTERNAME", "sys/java.version", "sys/os.name", "sys/os.version", "sys/os.arch"}; void setColsBlank(row) { for (var : vars) { row.setColumnValue(var, ""); } } void setColsFromAgent(row, agent) { for (var : vars) { String value = AgentVarHelper.getAgentVar(agent, var); value = value == null ? "<i>undefined</i>" : value; row.setColumnValue(var, value); } } ReportOutput output = new ReportOutput(metaData); agents = AgentFactory.getInstance().restoreAll(); for (Agent agent : agents) { ReportRow row = new ReportRow(output, String.valueOf(agent.getId())); row.setColumnValue("Agent", agent.getName()); if (agent.isConfigured()) { status = AgentManager.getInstance().getAgentStatus(agent); if (status == null || !status.isOnline()) { row.setColumnValue("Status", "OFFLINE"); setColsBlank(row); } else if (status.isAcceptableVersion()) { row.setColumnValue("Status", "ONLINE"); setColsFromAgent(row, agent); } else { row.setColumnValue("Status", "WRONG VERSION"); setColsFromAgent(row, agent); } } else { row.setColumnValue("Status", "NOT CONFIGURED"); setColsBlank(row); } output.addRow(row); } return output;
Related Content