// - The server service uses locking to ensure we don't conflict with an actual report from the agent
// - It ensure all necessary db modifications take place, like avail history and current avail
// - It ensures that all ancillary avail change logic, like alerting, still happens.
DiscoveryServerServiceImpl service = new DiscoveryServerServiceImpl();
for (AvailabilityReport report : reports.values()) {
service.mergeAvailabilityReport(report);
}
// Ask the relevant agents to send a full availability check so that the newly enabled resources get
// current availability as soon as possible. Do this async (via Quartz) so we don't hang waiting for
// Agent connections.