private static void createAllowPolicy(IfSBDovePolicyCRUD dovePolicyDB,
OpenDoveNetwork newODN, OpenDoveNetwork oldODN, int traffic_type) {
List<OpenDovePolicy> policies = dovePolicyDB.getPolicies();
Iterator<OpenDovePolicy> policyIterator = policies.iterator();
boolean found = false;
while (policyIterator.hasNext() && !found) {
OpenDovePolicy policy = policyIterator.next();
if (policy.getSourceVNID() == newODN.getVnid() &&
policy.getDestinationVNID() == oldODN.getVnid() &&
policy.getPolicyAction() == 0 && policy.getTrafficType() == traffic_type) {
OpenDovePolicy delta = new OpenDovePolicy();
delta.setPolicyAction(1);
found = true;
dovePolicyDB.updatePolicy(policy, delta);
}
}
if (!found) {
OpenDovePolicy newPolicy = new OpenDovePolicy(newODN.getVnid(),
oldODN.getVnid(), newODN.getDomain_uuid(), newODN.getDomain_id(), traffic_type);
newPolicy.setTombstoneFlag(false);
dovePolicyDB.addPolicy(newPolicy.getUUID(), newPolicy);
}
}