* @param scheduleRequests
*/
@Override
public synchronized void scheduleCollection(Set<ResourceMeasurementScheduleRequest> scheduleRequests) {
for (ResourceMeasurementScheduleRequest resourceRequest : scheduleRequests) {
ResourceContainer resourceContainer = inventoryManager.getResourceContainer(resourceRequest.getResourceId());
if (resourceContainer != null) {
// Set measurement schedule data ...
resourceContainer.setMeasurementSchedule(resourceRequest.getMeasurementSchedules());
// ... and then reschedule collection
scheduleCollection(resourceRequest.getResourceId(), resourceRequest.getMeasurementSchedules());
// Set availability schedule data
// This method also triggers a reschedule of availability check
resourceContainer.setAvailabilitySchedule(resourceRequest.getAvailabilitySchedule());
} else {
// This will happen when the server sends down schedules to an agent with a cleaned inventory
// It's ok to skip these because the agent will request a reschedule once its been able to synchronize
// and add these to inventory
LOG.debug("Resource container was null, could not schedule collection for resource "