package org.ovirt.engine.core.bll;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.VDSType;
import org.ovirt.engine.core.common.config.Config;
import org.ovirt.engine.core.common.config.ConfigValues;
import org.ovirt.engine.core.common.queries.GetPowerClientByClientInfoParameters;
import org.ovirt.engine.core.compat.LogCompat;
import org.ovirt.engine.core.compat.LogFactoryCompat;
import org.ovirt.engine.core.compat.StringHelper;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class GetPowerClientQuery<P extends GetPowerClientByClientInfoParameters> extends QueriesCommandBase<P> {
public GetPowerClientQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
getQueryReturnValue().setReturnValue(GetPowerClient(getParameters().getClientIp()));
}
private VDS GetPowerClient(String client_ip) {
VDS powerClient = null;
if (!StringHelper.isNullOrEmpty(client_ip)) {
if (Config.<Boolean> GetValue(ConfigValues.PowerClientLogDetection)) {
log.infoFormat("Checking if client is a power client. client IP={0}", client_ip);
}
List<VDS> targetVDS = DbFacade.getInstance().getVdsDAO().getAllForHostname(client_ip);
// DbFacade.Instance.GetVdsByHost(client_ip);
if (targetVDS.size() == 1 && targetVDS.get(0).getvds_type() == VDSType.PowerClient) {
if (Config.<Boolean> GetValue(ConfigValues.PowerClientLogDetection)) {
log.infoFormat("Client is a power client. client IP={0}", client_ip);
}
powerClient = targetVDS.get(0); // DbFacade.Instance.GetVdsByVdsId(targetVDS.vds_id);
}
}
return powerClient;
}
private static LogCompat log = LogFactoryCompat.getLog(GetPowerClientQuery.class);
}