package org.ovirt.engine.core.vdsbroker.irsbroker; import org.ovirt.engine.core.compat.*; import org.ovirt.engine.core.common.vdscommands.*; public class DoesImageExistVDSCommand<P extends GetImageInfoVDSCommandParameters> extends GetImageInfoVDSCommand<P> { public DoesImageExistVDSCommand(P parameters) { super(parameters); } @Override protected void ExecuteIrsBrokerCommand() { imageInfoReturn = getIrsProxy().getVolumeInfo(getParameters().getStorageDomainId().toString(), getParameters().getStoragePoolId().toString(), getParameters().getImageGroupId().toString(), getParameters().getImageId().toString()); try { ProceedProxyReturnValue(); } // NOTE: we should have been catching an IRSErrorImageNotExistException, // but since both the IRS doesn't send the correct status and we don't // check the correct status, we'll assume for now that any IRS exception // means that the image that we asked info about doesn't exist. catch (IRSErrorException ex) { log.warnFormat( "IrsBrokerCommand::DoesImageExistVDSCommand::ExecuteIrsBrokerCommand: getImageInfo on {0} threw an exception - assuming image doesn't exist.", getParameters().getImageId()); setReturnValue(false); return; } setReturnValue(true); } private static LogCompat log = LogFactoryCompat.getLog(DoesImageExistVDSCommand.class); }