package org.ovirt.engine.core.bll.validator;
import org.ovirt.engine.core.bll.ValidationResult;
import org.ovirt.engine.core.bll.network.macpool.MacPool;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.utils.ReplacementUtils;
public class MacAddressValidator {
private final MacPool macPool;
private final String macAddress;
public MacAddressValidator(MacPool macPool, String macAddress) {
this.macPool = macPool;
this.macAddress = macAddress;
}
public ValidationResult isMacAssignableValidator() {
boolean allowDupMacs = macPool.isDuplicateMacAddressesAllowed();
boolean illegalDuplicateMacUsage = !allowDupMacs && macPool.isMacInUse(macAddress);
EngineMessage failMessage = EngineMessage.NETWORK_MAC_ADDRESS_IN_USE;
return ValidationResult
.failWith(failMessage, ReplacementUtils.getVariableAssignmentString(failMessage, macAddress))
.when(illegalDuplicateMacUsage);
}
}