package org.ovirt.engine.core.bll.provider.storage; import java.util.List; import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.provider.ProviderValidator; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.AsyncTaskDao; import org.ovirt.engine.core.dao.StorageDomainDao; public class GlanceProviderValidator extends ProviderValidator { StorageDomain glanceStorageDomain; public GlanceProviderValidator(Provider<?> provider) { super(provider); } @Override public ValidationResult validateRemoveProvider() { if (getAsyncTaskDao().getAsyncTaskIdsByEntity(getStorageDomain().getId()).size() > 0) { return new ValidationResult(EngineMessage.ERROR_CANNOT_DEACTIVATE_DOMAIN_WITH_TASKS); } return ValidationResult.VALID; } private StorageDomain getStorageDomain() { if (glanceStorageDomain == null) { List<StorageDomain> providerStorageList = getStorageDomainDao().getAllByConnectionId(provider.getId()); if (!providerStorageList.isEmpty()) { glanceStorageDomain = providerStorageList.get(0); } } return glanceStorageDomain; } protected StorageDomainDao getStorageDomainDao() { return DbFacade.getInstance().getStorageDomainDao(); } protected AsyncTaskDao getAsyncTaskDao() { return DbFacade.getInstance().getAsyncTaskDao(); } }