use of org.ovirt.engine.core.common.vdscommands.LeaseVDSParameters in project ovirt-engine by oVirt.
the class AddVmLeaseCommand method endSuccessfully.
@Override
protected void endSuccessfully() {
// it would be nicer to get this as part of the tasks rather
// than initiating another call to the host, this approach is
// easier and backward compatible though
VDSReturnValue retVal = null;
try {
retVal = runVdsCommand(VDSCommandType.GetVmLeaseInfo, new VmLeaseVDSParameters(getParameters().getStoragePoolId(), getParameters().getStorageDomainId(), getParameters().getVmId()));
} catch (EngineException e) {
log.error("Failure in getting lease info for VM {}, message: {}", getParameters().getVmId(), e.getMessage());
}
if (retVal == null || !retVal.getSucceeded()) {
log.error("Failed to get info on the lease of VM {}", getParameters().getVmId());
return;
}
vmDynamicDao.updateVmLeaseInfo(getParameters().getVmId(), (Map<String, String>) retVal.getReturnValue());
if (getParameters().isHotPlugLease()) {
boolean hotPlugSucceeded = false;
try {
hotPlugSucceeded = runVdsCommand(VDSCommandType.HotPlugLease, new LeaseVDSParameters(getParameters().getVdsId(), getParameters().getVmId(), getParameters().getStorageDomainId())).getSucceeded();
} catch (EngineException e) {
log.error("Failure in hot plugging a lease to VM {}, message: {}", getParameters().getVmId(), e.getMessage());
}
if (!hotPlugSucceeded) {
setVmId(getParameters().getVmId());
auditLog(this, AuditLogType.HOT_PLUG_LEASE_FAILED);
getReturnValue().setEndActionTryAgain(false);
setSucceeded(false);
return;
}
}
setSucceeded(true);
}
Aggregations