/*
* RHQ Management Platform
* Copyright (C) 2005-2014 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
package org.rhq.core.pc.availability;
import org.rhq.core.domain.measurement.Availability;
import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.pc.inventory.InventoryManager;
import org.rhq.core.pluginapi.availability.AvailabilityCollectorRunnable;
import org.rhq.core.pluginapi.availability.AvailabilityContext;
import org.rhq.core.pluginapi.availability.AvailabilityFacet;
/**
* @author Jay Shaughnessy
*/
public class AvailabilityContextImpl implements AvailabilityContext {
private final Resource resource;
private final InventoryManager inventoryManager;
public AvailabilityContextImpl(Resource resource, InventoryManager inventoryManager) {
super();
this.resource = resource;
this.inventoryManager = inventoryManager;
}
@Override
@Deprecated
public AvailabilityCollectorRunnable createAvailabilityCollectorRunnable(AvailabilityFacet facet, long i) {
// even though this shouldn't be used, plugins may still be using this. Allow for these to still be
// created for backward compatibility, but its a dummy object nevertheless.
return new AvailabilityCollectorRunnable(facet, i, null, null);
}
@Override
public void requestAvailabilityCheck() {
inventoryManager.requestAvailabilityCheck(resource);
}
@Override
public AvailabilityType getLastReportedAvailability() {
Availability avail = inventoryManager.getAvailabilityIfKnown(resource);
return (null != avail) ? avail.getAvailabilityType() : null;
}
@Override
public void disable() {
inventoryManager.setResourceEnablement(resource.getId(), false);
}
@Override
public void enable() {
inventoryManager.setResourceEnablement(resource.getId(), true);
}
/**
* Only used in tests
*/
public Resource getResource() {
return resource;
}
}