public void neutronSubnetCreated(NeutronSubnet neutronSubnet) { IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); IfOpenDoveDomainCRUD domainDB = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); IfOpenDoveNetworkCRUD networkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); IfSBDoveSubnetCRUD subnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); IfSBDoveNetworkSubnetAssociationCRUD networkSubnetAssociationDB = OpenDoveCRUDInterfaces.getIfDoveNetworkSubnetAssociationCRUD(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); subnetDB.addSubnet(subnet.getUUID(), subnet); IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4.assignEGWs(serviceApplianceDB, gatewayIPDB, neutronSubnet, controlBlock, network);
NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); String networkName = "Neutron " + neutronNetwork.getID(); IfSBDoveSubnetCRUD doveSubnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); IfOpenDoveNetworkCRUD doveNetworkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); OpenDoveNetwork newODN = doveNetworkDB.getNetworkByName(networkName); IfSBDovePolicyCRUD dovePolicyDB = OpenDoveCRUDInterfaces.getIfDovePolicyCRUD(this); IfSBDoveEGWSNATPoolCRUD snatPoolDB = OpenDoveCRUDInterfaces.getIfDoveEGWSNATPoolCRUD(this); IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(oldNeutronSubnet.getID()) && oDS.getDomainUUID() == oldODN.getDomain_uuid()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4.assignEGWs(serviceApplianceDB, gatewayIPDB, neutronSubnet, controlBlock, oldODN); OpenDoveEGWSNATPool.configureEGWSNATPool(neutronSubnet, snatPoolDB, if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(neutronSubnet.getID()) && oDS.getDomainUUID() == newODN.getDomain_uuid()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4.assignEGWs(serviceApplianceDB, gatewayIPDB, oldNeutronSubnet, controlBlock, newODN); OpenDoveEGWSNATPool.configureEGWSNATPool(oldNeutronSubnet, snatPoolDB,
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; }
public void neutronSubnetDeleted(NeutronSubnet subnet) { IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); OpenDoveNeutronControlBlock controlBlock = systemDB.getSystemBlock(); OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); IfSBDoveSubnetCRUD subnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); IfSBDoveNetworkSubnetAssociationCRUD networkSubnetAssociationDB = OpenDoveCRUDInterfaces.getIfDoveNetworkSubnetAssociationCRUD(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(subnet.getNetworkUUID()); if (!controlBlock.getDomainSeparation()) { IfOpenDoveNetworkCRUD networkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); String networkName = "Neutron "+subnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName);
static public void mapFloatingIPtoEGWFwdRule(NeutronFloatingIP floatingIP, Object o) { IfSBDoveEGWFwdRuleCRUD egwFwdRuleCRUDif = OpenDoveCRUDInterfaces.getIfSBDoveEGWFwdRuleCRUD(o); INeutronPortCRUD neutronPortCRUDif = NeutronCRUDInterfaces.getINeutronPortCRUD(o); NeutronPort port = neutronPortCRUDif.getPort(floatingIP.getPortUUID()); String doveDomainName = "Neutron "+port.getTenantID(); String doveNetworkName = "Neutron "+network.getID(); IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(o); IfOpenDoveDomainCRUD domainDB = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(o); String doveDomainUUID = domainDB.getDomainByName(doveDomainName).getUUID(); IfOpenDoveNetworkCRUD doveNetworkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(o); Iterator<OpenDoveNetwork> doveNetworkIterator = doveNetworkDB.getNetworks().iterator(); while (doveNetworkIterator.hasNext()) {
NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); String networkUUID = "Neutron " + neutronNetwork.getID(); IfSBDoveSubnetCRUD doveSubnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); IfOpenDoveNetworkCRUD doveNetworkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); OpenDoveNetwork newODN = doveNetworkDB.getNetworkByName(networkUUID); IfSBDovePolicyCRUD dovePolicyDB = OpenDoveCRUDInterfaces.getIfDovePolicyCRUD(this); IfSBDoveEGWSNATPoolCRUD snatPoolDB = OpenDoveCRUDInterfaces.getIfDoveEGWSNATPoolCRUD(this); IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this);
public void neutronNetworkCreated(NeutronNetwork input) { IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); IfOpenDoveDomainCRUD domainDB = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); IfOpenDoveNetworkCRUD doveNetworkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); if (!input.isRouterExternal()) { // don't map router external networks if (input.isShared()) { // map shared network OpenDoveNeutronControlBlock controlBlock = systemDB.getSystemBlock(); //get system block if (!controlBlock.getDomainSeparation()) { //if domain separation not supported, map to shared domain OpenDoveDomain sharedDomain = createDoveDomain("SharedDomain", input.getID(), domainDB, doveNetworkDB); int vnid = doveNetworkDB.allocateVNID(); String networkName = "Neutron "+input.getID(); OpenDoveNetwork doveNetwork = new OpenDoveNetwork(networkName, vnid, sharedDomain, 0, input.getID()); doveNetworkDB.addNetwork(doveNetwork.getUUID(), doveNetwork); } } else { // map dedicated network String domainName = "Neutron "+input.getTenantID(); OpenDoveDomain domain = createDoveDomain(domainName, input.getID(), domainDB, doveNetworkDB); domain.setAssociatedOSTenantUUID(input.getTenantID()); int vnid = doveNetworkDB.allocateVNID(); String networkName = "Neutron "+input.getID(); OpenDoveNetwork doveNetwork = new OpenDoveNetwork(networkName, vnid, domain, 0, input.getID()); doveNetworkDB.addNetwork(doveNetwork.getUUID(), doveNetwork); } } }
@PathParam("domainUUID") String domainUUID ) { IfOpenDoveDomainCRUD sbDomainInterface = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); IfOpenDoveServiceApplianceCRUD sbDSAInterface = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); if (sbDomainInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
IfOpenDoveServiceApplianceCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
public void neutronNetworkDeleted(NeutronNetwork network) { IfOpenDoveNetworkCRUD doveNetworkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); // mark open dove networks for deletion // no need to release EGW and SNAT pools for networks here - before the network can be removed, // the router interface has to be removed (which tears down policies and SNAT pools) and // then the port has to be removed. Iterator<OpenDoveNetwork> i = doveNetworkDB.getNetworks().iterator(); while (i.hasNext()) { OpenDoveNetwork oDN = i.next(); if (oDN.getNeutronNetwork().equalsIgnoreCase(network.getID())) { oDN.setTombstoneFlag(true); doveNetworkDB.updateNetwork(oDN.getUUID()); } } }
public void addNetwork(String networkUUID, OpenDoveNetwork network) { networkMap.putIfAbsent(networkUUID, network); IfOpenDoveDomainCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); if (sbInterface != null) { sbInterface.addNetworkToDomain(network.getDomain_uuid(), network); } }
private int canAllocateEGW(String uuid, boolean negate) { /* if object is shared and domains are not separated, * then we need to configure an external gateway at this point. If we don't have one * don't create the port */ IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(uuid); if (!neutronNetwork.isRouterExternal()) { if (neutronNetwork.isShared()) { OpenDoveNeutronControlBlock controlBlock = systemDB.getSystemBlock(); //get system block if ((!negate && controlBlock.getDomainSeparation()) || (negate && !controlBlock.getDomainSeparation())) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); for (OpenDoveServiceAppliance oDSA : serviceApplianceDB.getAppliances()) { if (oDSA.get_isDGW() && oDSA.getDoveTunnel() != null){ return 200; } } return 400; } } } return 200; } }
OpenDoveGwIpv4Request request ) { IfOpenDoveServiceApplianceCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD sbGWIpv4Interface = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface " throw new BadRequestException("appliance must be an active oDGW"); } else { IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); OpenDoveGwIpv4 newGWIP = new OpenDoveGwIpv4(gwIpv4.getIP(), gwIpv4.getMask(), gwIpv4.getNexthop(), gwIpv4.getType(), odgwUUID, 0); gatewayIPDB.addGwIpv4(newGWIP.getUUID(), newGWIP);
public int canAttachInterface(NeutronRouter router, NeutronRouter_Interface routerInterface) { //See if a EGW will need to be configured //If so, and there aren't GWs available, return BADREQUEST with a message INeutronSubnetCRUD neutronSubnetIf = NeutronCRUDInterfaces.getINeutronSubnetCRUD(this); NeutronSubnet neutronSubnet = neutronSubnetIf.getSubnet(routerInterface.getSubnetUUID()); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); if (neutronNetwork.isRouterExternal()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); List<OpenDoveServiceAppliance> oDSAs = serviceApplianceDB.getAppliances(); Iterator<OpenDoveServiceAppliance> iterator = oDSAs.iterator(); while (iterator.hasNext()) { if (iterator.next().get_isDGW()) { return 200; } } return 400; } return 200; }
@ResponseCode(code = 500, condition = "Internal Error") }) public Response showServiceAppliances() { IfOpenDoveNetworkCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
@ResponseCode(code = 500, condition = "Internal Error") }) public Response showDomains() { IfOpenDoveDomainCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
IfOpenDoveServiceApplianceCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
@PathParam("networkUUID") String networkUUID ) { IfOpenDoveNetworkCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
@PathParam("domainUUID") String domainUUID ) { IfOpenDoveDomainCRUD sbInterface = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(this); if (sbInterface == null) { throw new ServiceUnavailableException("OpenDove SB Interface "
public void neutronPortDeleted(NeutronPort port) { IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(this); IfSBDoveSubnetCRUD subnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); IfSBDoveNetworkSubnetAssociationCRUD networkSubnetAssociationDB = OpenDoveCRUDInterfaces.getIfDoveNetworkSubnetAssociationCRUD(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(port.getNetworkUUID()); if (controlBlock.getDomainSeparation()) { IfOpenDoveNetworkCRUD networkDB = OpenDoveCRUDInterfaces.getIfDoveNetworkCRU(this); IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); String networkName = "Neutron "+neutronSubnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName);