/**
* Copyright (C) 2008 - Abiquo Holdings S.L. All rights reserved.
*
* Please see /opt/abiquo/tomcat/webapps/legal/ on Abiquo server
* or contact contact@abiquo.com for licensing information.
*/
package com.abiquo.hypervisor.model.provider;
import static java.util.Objects.requireNonNull;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import com.abiquo.hypervisor.model.VirtualMachineIdentifier;
/**
* Describes when virtual machine registered into a {@link LoadBalancer} is suitable to receive
* traffic as defined by its configured {@link HealthCheck}s
*/
@XmlRootElement
@XmlType(name = "healthState")
public class HealthState
{
private VirtualMachineIdentifier virtualMachineIdentifier;
private boolean outOfService;
public HealthState()
{
super();
}
/**
* VirtualMachine state in the LoadBalancer.
*
* @param virtualMachineIdentifier identify the virtual machine in the provider.
* @param outOfService if not suitable, otherwise online.
*/
public HealthState(final VirtualMachineIdentifier virtualMachineIdentifier,
final boolean outOfService)
{
super();
this.virtualMachineIdentifier =
requireNonNull(virtualMachineIdentifier, "virtualMachineIdentifier");
this.outOfService = outOfService;
}
/**
* VirtualMachine state in the LoadBalancer.
*
* @param virtualMachineName identify the virtual machine in the provider.
* @param outOfService if not suitable, otherwise online.
*/
public HealthState(final String virtualMachineName, final boolean outOfService)
{
this(
new VirtualMachineIdentifier(requireNonNull(virtualMachineName, "virtualMachineName")),
outOfService);
}
/** Identify the virtual machine in the provider. */
public VirtualMachineIdentifier getVirtualMachineIdentifier()
{
return virtualMachineIdentifier;
}
/** Not suitable, otherwise online. */
public boolean isOutOfService()
{
return outOfService;
}
public void setVirtualMachineIdentifier(final VirtualMachineIdentifier virtualMachineIdentifier)
{
this.virtualMachineIdentifier = virtualMachineIdentifier;
}
public void setOutOfService(final boolean outOfService)
{
this.outOfService = outOfService;
}
}