package org.ovirt.engine.core.bll;
import javax.inject.Inject;
import org.ovirt.engine.core.bll.host.provider.HostProviderProxy;
import org.ovirt.engine.core.bll.provider.ProviderProxyFactory;
import org.ovirt.engine.core.common.businessentities.ErrataData;
import org.ovirt.engine.core.common.businessentities.Provider;
import org.ovirt.engine.core.common.businessentities.VdsStatic;
import org.ovirt.engine.core.common.queries.GetErrataCountsParameters;
import org.ovirt.engine.core.dao.VdsStaticDao;
import org.ovirt.engine.core.dao.provider.ProviderDao;
public class GetErrataForHostQuery<P extends GetErrataCountsParameters> extends QueriesCommandBase<P> {
@Inject
private VdsStaticDao hostStaticDao;
@Inject
private ProviderDao providerDao;
public GetErrataForHostQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
VdsStatic host = hostStaticDao.get(getParameters().getId());
if (host == null || host.getHostProviderId() == null) {
getQueryReturnValue().setReturnValue(ErrataData.emptyData());
return;
}
Provider<?> provider = providerDao.get(host.getHostProviderId());
if (provider != null) {
HostProviderProxy proxy = ProviderProxyFactory.getInstance().create(provider);
ErrataData errataForHost = proxy.getErrataForHost(host.getHostName(),
getParameters().getErrataFilter());
getQueryReturnValue().setReturnValue(errataForHost);
} else {
getQueryReturnValue().setReturnValue(ErrataData.emptyData());
}
}
}