package org.openstack.atlas.api.validation.verifiers;
import org.openstack.atlas.docs.loadbalancers.api.v1.Node;
import org.openstack.atlas.api.validation.verifiers.Verifier;
import org.openstack.atlas.api.validation.verifiers.VerifierResult;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class DuplicateNodeVerifier implements Verifier<List<Node>> {
public VerifierResult verify(List<Node> nodes) {
Set<String> ipAddressesAndPorts = new HashSet<String>();
if(nodes == null) {
return new VerifierResult(true); // Don't flag the user for duplicate nodes when the nodes must not be empty verifier already flagged the user.
}
for (Node node : nodes) {
String ipAddressAndPort = node.getAddress() + ":" + node.getPort();
if (!ipAddressesAndPorts.add(ipAddressAndPort)) {
return new VerifierResult(false);
}
}
return new VerifierResult(true);
}
}