public static void tombstoneEGWs( IfOpenDoveServiceApplianceCRUD serviceApplianceDB, IfSBDoveGwIpv4CRUD gatewayIPDB, NeutronSubnet subnet, OpenDoveNetwork network) { for (OpenDoveGwIpv4 gwIP: gatewayIPDB.getGwIpv4Pool()) { if (subnet.isValidIP(gwIP.getIP())) { subnet.releaseIP(gwIP.getIP()); gwIP.setTombstoneFlag(true); gatewayIPDB.updateGwIpv4(gwIP); network.removeEGW(serviceApplianceDB.getDoveServiceAppliance(gwIP.getGWUUID())); } } } }
OpenDoveServiceAppliance target = oDSAs.get(index); List<OpenDoveGwIpv4> gwIPs= gatewayIPDB.getGwIpv4Pool(); Iterator<OpenDoveGwIpv4> ipIterator = gwIPs.iterator(); boolean found = false; "external", target.getUUID(), 0); newGWIP.setNeutronSubnet(neutronSubnet); gatewayIPDB.addGwIpv4(newGWIP.getUUID(), newGWIP);
IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4 newGWIP = new OpenDoveGwIpv4(gwIpv4.getIP(), gwIpv4.getMask(), gwIpv4.getNexthop(), gwIpv4.getType(), odgwUUID, 0); gatewayIPDB.addGwIpv4(newGWIP.getUUID(), newGWIP); dgwAppliance.setDoveTunnel(newGWIP); ipv4UUID = newGWIP.getUUID(); return Response.status(200).entity(new OpenDoveGwIpv4Request(sbGWIpv4Interface.getGwIpv4(ipv4UUID))).build();
public int canDeleteSubnet(NeutronSubnet subnet) { /* check if router external - if so, check for EGW assignments or SNAT pool assignments * if either exist, can't delete router external subnet */ INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(subnet.getNetworkUUID()); if (neutronNetwork.isRouterExternal()) { IfSBDoveEGWSNATPoolCRUD snatPoolDB = OpenDoveCRUDInterfaces.getIfDoveEGWSNATPoolCRUD(this); if (snatPoolDB.getEgwSNATPools().size() > 0 ) { return 409; } IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); for (OpenDoveGwIpv4 ipv4 : gatewayIPDB.getGwIpv4Pool()) { if (ipv4.getType().equalsIgnoreCase("external")) { return 409; } } } return 200; }