|
|
| Line 1: | |||
| + | 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:'' | ||
| + | <pre>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; | ||
| + | </pre> | ||
| + | ---- | ||
| + | ''Report Script:'' | ||
| + | <pre>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; | ||
| + | </pre> | ||
| + | ---- | ||
| + | '''Related Content''' | ||
| + | [[AnthillPro Template Reports]]<br/> | ||
| + | [[Report Templates]] | ||