Skip to content

Commit

Permalink
core: Block MBS Image upload
Browse files Browse the repository at this point in the history
Transfering image into MBS will be block inside TransferDiskImageCommand validation

Signed-off-by: Artiom Divak <adivak@redhat.com>
  • Loading branch information
ArtiomDivak committed Jun 21, 2022
1 parent 513d016 commit 0dd0868
Showing 1 changed file with 42 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.ovirt.engine.core.bll.utils.PermissionSubject;
import org.ovirt.engine.core.bll.validator.storage.DiskImagesValidator;
import org.ovirt.engine.core.bll.validator.storage.DiskValidator;
import org.ovirt.engine.core.bll.validator.storage.ManagedBlockStorageDomainValidator;
import org.ovirt.engine.core.bll.validator.storage.StorageDomainValidator;
import org.ovirt.engine.core.common.AuditLogType;
import org.ovirt.engine.core.common.VdcObjectType;
Expand All @@ -40,6 +41,7 @@
import org.ovirt.engine.core.common.action.TransferImageStatusParameters;
import org.ovirt.engine.core.common.businessentities.ActionGroup;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.VDSDomainsData;
import org.ovirt.engine.core.common.businessentities.VM;
Expand Down Expand Up @@ -183,10 +185,50 @@ protected String prepareImage(Guid vdsId) {
return FILE_URL_SCHEME + ((PrepareImageReturn) vdsRetVal.getReturnValue()).getImagePath();
}

public StorageDomain getStorageDomain() {
StorageDomain storageDomain = null;
if (getStorageDomainId() != null) {
if (getStoragePool() != null) {
storageDomain = storageDomainDao.getForStoragePool(
getStorageDomainId(), getStoragePool().getId());
}
if (storageDomain == null) {
final List<StorageDomain> storageDomainList =
storageDomainDao.getAllForStorageDomain(getStorageDomainId());
if (storageDomainList.size() != 0) {
storageDomain = storageDomainList.get(0);
for (final StorageDomain storageDomainFromList : storageDomainList) {
if (storageDomainFromList.getStatus() == StorageDomainStatus.Active) {
storageDomain = storageDomainFromList;
break;
}
}
}
}
}
return storageDomain;
}

public boolean isSupportedByManagedBlockStorageDomain(StorageDomain storageDomain) {
if (storageDomain.getStorageType().isManagedBlockStorage()) {
return validate(ManagedBlockStorageDomainValidator.isOperationSupportedByManagedBlockStorage(getActionType()));
}
return true;
}

protected boolean validateImageTransfer() {
DiskImage diskImage = getDiskImage();
DiskValidator diskValidator = getDiskValidator(diskImage);
DiskImagesValidator diskImagesValidator = getDiskImagesValidator(diskImage);
StorageDomain storageDomain = getStorageDomain();
if (storageDomain == null) {
return failValidation(EngineMessage.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST);
}
if(!(isSupportedByManagedBlockStorageDomain(getStorageDomain()))) {
return failValidation(EngineMessage.ACTION_TYPE_FAILED_UNSUPPORTED_ACTION_FOR_MANAGED_BLOCK_STORAGE_TYPE);
}


StorageDomainValidator storageDomainValidator = getStorageDomainValidator(
storageDomainDao.getForStoragePool(diskImage.getStorageIds().get(0), diskImage.getStoragePoolId()));
boolean isValid =
Expand Down

0 comments on commit 0dd0868

Please sign in to comment.