package io.cattle.platform.allocator.constraint;
import io.cattle.platform.allocator.service.AllocationCandidate;
import io.cattle.platform.allocator.util.AllocatorUtils;
import io.cattle.platform.core.model.StoragePool;
import io.cattle.platform.core.model.Volume;
import java.util.Set;
public class UnmanagedStoragePoolKindConstraint extends HardConstraint implements Constraint {
private Volume volume;
public UnmanagedStoragePoolKindConstraint(Volume volume) {
super();
this.volume = volume;
}
@Override
public boolean matches(AllocationCandidate candidate) {
Set<Long> poolIds = candidate.getPools().get(volume.getId());
for (Long id : poolIds) {
StoragePool pool = candidate.loadResource(StoragePool.class, id);
if (!AllocatorUtils.UNMANGED_STORAGE_POOLS.contains(pool.getKind())) {
return false;
}
}
return true;
}
@Override
public String toString() {
return String.format("storage pool for volume %s must be one of kind %s", volume.getId(), AllocatorUtils.UNMANGED_STORAGE_POOLS);
}
}