package org.ovirt.engine.core.bll; import javax.inject.Inject; import org.ovirt.engine.core.common.businessentities.VdsStatic; import org.ovirt.engine.core.common.businessentities.VmDynamic; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.VdsStaticDao; import org.ovirt.engine.core.dao.VmDynamicDao; import org.ovirt.engine.core.utils.CertificateSubjectHelper; public class GetVdsCertificateSubjectByVmIdQuery <P extends IdQueryParameters> extends QueriesCommandBase<P> { @Inject private VmDynamicDao vmDynamicDao; @Inject private VdsStaticDao vdsStaticDao; public GetVdsCertificateSubjectByVmIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { // Initially we set the command as failed: VdcQueryReturnValue queryReturnValue = getQueryReturnValue(); queryReturnValue.setSucceeded(false); // Check if the virtual machine is running on a host, and if does then retrieve the host and copy the subject // of the certificate to the value returned by the query: Guid vmId = getParameters().getId(); if (vmId != null) { VmDynamic vm = vmDynamicDao.get(vmId); if (vm != null) { Guid vdsId = vm.getRunOnVds(); if (vdsId != null) { VdsStatic vds = vdsStaticDao.get(vdsId); queryReturnValue.setSucceeded(true); queryReturnValue.setReturnValue(CertificateSubjectHelper.getCertificateSubject(vds.getHostName())); } } } } }