Source:
<code>protected boolean validate() { if (!super.validate()) { return false; } StoragePoolValidator validator = createStoragePoolValidator(); if (!validate(validator.exists())) { return false; } if <START> (validator.isUnmanaged().isValid()) <END> { return true; } if (!validator.isNotInStatus(StoragePoolStatus.Up).isValid()) { return failValidation(EngineMessage.ERROR_CANNOT_REMOVE_ACTIVE_STORAGE_POOL); } if (!validator.isInStatus(StoragePoolStatus.Uninitialized).isValid() && !getParameters().isForceDelete() && !initializeVds()) { return false; } final List<StorageDomain> poolDomains = storageDomainDao.getAllForStoragePool(getStoragePool().getId()); if (!validateDomainsInMaintenance(poolDomains)) { return false; } if (!getParameters().isForceDelete()) { if(poolDomains.size() > 1) { return failValidation(EngineMessage.ERROR_CANNOT_REMOVE_STORAGE_POOL_WITH_NONMASTER_DOMAINS); } if (!poolDomains.isEmpty() && !canDetachStorageDomainWithVmsAndDisks(poolDomains.get(0))) { return false; } } else { List<VDS> poolHosts = vdsDao.getAllForStoragePool(getParameters().getStoragePoolId()); sharedLocks = new HashMap<>(); for (VDS host : poolHosts) { sharedLocks.put(host.getId().toString(), LockMessagesMatchUtil.makeLockingPair(LockingGroup.VDS, EngineMessage.ACTION_TYPE_FAILED_OBJECT_LOCKED)); } if (!poolHosts.isEmpty() && acquireLockInternal()) { for (VDS host : poolHosts) { if (host.getStatus() != VDSStatus.Maintenance) { return failValidation(EngineMessage.ERROR_CANNOT_FORCE_REMOVE_STORAGE_POOL_WITH_VDS_NOT_IN_MAINTENANCE); } } } } return true; }</code><technical_language>this method is tailored for this specific use. I simply check here: if (!getStoragePool().isManaged()) { return true; } avoid changes validator</technical_language>

Target:
protected boolean validate() { if (!super.validate()) { return false; } StoragePoolValidator validator = createStoragePoolValidator(); if (!validate(validator.exists())) { return false; } if (!getStoragePool().isManaged()) { return true; } if (!validator.isNotInStatus(StoragePoolStatus.Up).isValid()) { return failValidation(EngineMessage.ERROR_CANNOT_REMOVE_ACTIVE_STORAGE_POOL); } if (!validator.isInStatus(StoragePoolStatus.Uninitialized).isValid() && !getParameters().isForceDelete() && !initializeVds()) { return false; } final List<StorageDomain> poolDomains = storageDomainDao.getAllForStoragePool(getStoragePool().getId()); if (!validateDomainsInMaintenance(poolDomains)) { return false; } if (!getParameters().isForceDelete()) { if(poolDomains.size() > 1) { return failValidation(EngineMessage.ERROR_CANNOT_REMOVE_STORAGE_POOL_WITH_NONMASTER_DOMAINS); } if (!poolDomains.isEmpty() && !canDetachStorageDomainWithVmsAndDisks(poolDomains.get(0))) { return false; } } else { List<VDS> poolHosts = vdsDao.getAllForStoragePool(getParameters().getStoragePoolId()); sharedLocks = new HashMap<>(); for (VDS host : poolHosts) { sharedLocks.put(host.getId().toString(), LockMessagesMatchUtil.makeLockingPair(LockingGroup.VDS, EngineMessage.ACTION_TYPE_FAILED_OBJECT_LOCKED)); } if (!poolHosts.isEmpty() && acquireLockInternal()) { for (VDS host : poolHosts) { if (host.getStatus() != VDSStatus.Maintenance) { return failValidation(EngineMessage.ERROR_CANNOT_FORCE_REMOVE_STORAGE_POOL_WITH_VDS_NOT_IN_MAINTENANCE); } } } } return true; }