static private Integer poolSize(NeutronSubnet_IPAllocationPool pool) { long bottom = convertIPv4StringToLong(pool.getPoolStart()); long top = convertIPv4StringToLong(pool.getPoolEnd()); int ans = (int) (top-bottom)+1; return new Integer(ans); }
public static void removeEGWSNATPool(NeutronSubnet neutronSubnet, IfSBDoveEGWSNATPoolCRUD snatPoolDB, OpenDoveNeutronControlBlock controlBlock, OpenDoveNetwork oldODN) { Iterator<OpenDoveEGWSNATPool> iterator = snatPoolDB.getEgwSNATPools().iterator(); while (iterator.hasNext()) { OpenDoveEGWSNATPool snatPool = iterator.next(); if (oldODN.networkUsesEGW(snatPool.getGatewayUUID()) && snatPool.getVnid() == oldODN.getVnid()) { snatPool.setTombstoneFlag(true); snatPoolDB.updateSNATPool(snatPool.getUUID(), snatPool); } } } }
while (poolIterator.hasNext()) { NeutronSubnet_IPAllocationPool pool = poolIterator.next(); if (poolSize(pool) >= snatPoolSize) { int i1; for (i1=1; i1<=snatPoolSize; i1++) { Integer domainID = d.getDomainId(); OpenDoveGwIpv4 egwExternalIP = oDSA.getEGWExtIP(); OpenDoveEGWSNATPool snatPool = new OpenDoveEGWSNATPool(oDSA.getUUID(), ip_low, ip_high, oldODN.getDomain_uuid(), domainID, extMCastNet.getVnid(), oldODN.getVnid(), egwExternalIP, 8000, 9000);//TODO add control for low and high snatPoolDB.addEgwSNATPool(snatPool.getUUID(), snatPool);
IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4.assignEGWs(serviceApplianceDB, gatewayIPDB, neutronSubnet, controlBlock, oldODN); OpenDoveEGWSNATPool.configureEGWSNATPool(neutronSubnet, snatPoolDB, controlBlock, oldODN); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4.assignEGWs(serviceApplianceDB, gatewayIPDB, oldNeutronSubnet, controlBlock, newODN); OpenDoveEGWSNATPool.configureEGWSNATPool(oldNeutronSubnet, snatPoolDB, controlBlock, newODN);
if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(oldNeutronSubnet.getID()) && oDS.getDomainUUID() == oldODN.getDomain_uuid()) { OpenDoveEGWSNATPool.removeEGWSNATPool(neutronSubnet, snatPoolDB, controlBlock, oldODN); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(neutronSubnet.getID()) && oDS.getDomainUUID() == newODN.getDomain_uuid()) { OpenDoveEGWSNATPool.removeEGWSNATPool(oldNeutronSubnet, snatPoolDB, controlBlock, newODN);