/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.jobs;
import com.emc.storageos.services.util.AlertsLogger;
import com.emc.storageos.services.util.NamedScheduledThreadPoolExecutor;
import com.emc.storageos.systemservices.impl.healthmonitor.NodeResourceAllocationChecker;
import com.emc.storageos.systemservices.impl.jobs.common.JobConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class NodeCheckResourceAllocationScheduler implements Runnable, JobConstants {
private static final Logger _log = LoggerFactory.getLogger(NodeCheckResourceAllocationScheduler.class);
private static final AlertsLogger _alertsLog = AlertsLogger.getAlertsLogger();
private static final String PREFIX = "Resource allocation: ";
private NodeResourceAllocationChecker _checker;
public void setChecker(NodeResourceAllocationChecker checker) {
_checker = checker;
}
/**
* Sets up the scheduler.
*/
public NodeCheckResourceAllocationScheduler() {
_log.info("Initializing node balance check scheduler");
ScheduledExecutorService service = new NamedScheduledThreadPoolExecutor("NodeResourceAllocationScheduler", 1);
service.schedule(this, SERVICE_START_LAG, TimeUnit.SECONDS);
}
@Override
public void run() {
String resourceAllocationCheckResult = _checker.getNodeResourceAllocationCheckResult();
if (!resourceAllocationCheckResult.contains("OK")) {
_alertsLog.warn(PREFIX + "[" + resourceAllocationCheckResult + "]");
}
}
}