NeutronSubnet ans = new NeutronSubnet(); Iterator<String> i = fields.iterator(); while (i.hasNext()) { String s = i.next(); if (s.equals("id")) { ans.setSubnetUUID(this.getSubnetUUID()); ans.setNetworkUUID(this.getNetworkUUID()); ans.setName(this.getName()); ans.setIpVersion(this.getIpVersion()); ans.setCidr(this.getCidr()); ans.setGatewayIP(this.getGatewayIP()); nsList.addAll(this.getDnsNameservers()); ans.setDnsNameservers(nsList); aPools.addAll(this.getAllocationPools()); ans.setAllocationPools(aPools); hRoutes.addAll(this.getHostRoutes()); ans.setHostRoutes(hRoutes); ans.setEnableDHCP(this.getEnableDHCP()); ans.setTenantID(this.getTenantID());
while (i.hasNext()) { NeutronSubnet oSS = i.next(); if ((queryID == null || queryID.equals(oSS.getID())) && (queryNetworkID == null || queryNetworkID.equals(oSS.getNetworkUUID())) && (queryName == null || queryName.equals(oSS.getName())) && (queryIPVersion == null || queryIPVersion.equals(oSS.getIpVersion())) && (queryCIDR == null || queryCIDR.equals(oSS.getCidr())) && (queryGatewayIP == null || queryGatewayIP.equals(oSS.getGatewayIP())) && (queryEnableDHCP == null || queryEnableDHCP.equals(oSS.getEnableDHCP())) && (queryTenantID == null || queryTenantID.equals(oSS.getTenantID())) && (queryIpV6AddressMode == null || queryIpV6AddressMode.equals(oSS.getIpV6AddressMode())) && (queryIpV6RaMode == null || queryIpV6RaMode.equals(oSS.getIpV6RaMode()))){ if (fields.size() > 0) { ans.add(extractFields(oSS,fields));
public OpenDoveSubnet(NeutronSubnet neutronSubnet, OpenDoveDomain domain, NeutronNetwork neutronNetwork, OpenDoveNetwork network) { networkUUIDs = new ArrayList<String>(); uuid = java.util.UUID.randomUUID().toString(); domainUUID = domain.getUUID(); subnet = getIPNetwork(neutronSubnet.getCidr()); mask = getIPMask(neutronSubnet.getCidr()); nexthop = neutronSubnet.getGatewayIP(); if (neutronNetwork.isShared()) { subnetType = "Shared"; } else { subnetType = "Dedicated"; } // link to network networkUUIDs.add(network.getUUID()); tombstoneFlag = false; associatedOSSubnetUUID = neutronSubnet.getID(); }
if (delta.getID() != null || delta.getTenantID() != null || delta.getIpVersion() != null || delta.getCidr() != null || delta.getAllocationPools() != null) { throw new BadRequestException("Attribute edit blocked by Neutron");
NeutronSubnet neutronSubnet = neutronSubnetIf.getSubnet(routerInterface.getSubnetUUID()); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); String networkName = "Neutron " + neutronNetwork.getID(); IfSBDoveSubnetCRUD doveSubnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); NeutronRouter_Interface oldInterface = interfaceIterator.next(); NeutronSubnet oldNeutronSubnet = neutronSubnetIf.getSubnet(oldInterface.getSubnetUUID()); NeutronNetwork oldNeutronNetwork = neutronNetworkIf.getNetwork(oldNeutronSubnet.getNetworkUUID()); String oldNetworkUUID = "Neutron " + oldNeutronNetwork.getID(); OpenDoveNetwork oldODN = doveNetworkDB.getNetworkByName(oldNetworkUUID); while (i.hasNext()) { OpenDoveSubnet oDS = i.next(); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(oldNeutronSubnet.getID()) && oDS.getDomainUUID() == oldODN.getDomain_uuid()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); while (i.hasNext()) { OpenDoveSubnet oDS = i.next(); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(neutronSubnet.getID()) && oDS.getDomainUUID() == newODN.getDomain_uuid()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this);
Integer replicationFactor = controlBlock.getEgwReplicationFactor(); List<OpenDoveServiceAppliance> oDSAs = getAssignableDGWs(serviceApplianceDB); SubnetUtils util = new SubnetUtils(neutronSubnet.getCidr()); SubnetInfo info = util.getInfo(); while (replicationFactor > 0 && oDSAs.size() > 0) { String gwAddress = neutronSubnet.getLowAddr(); neutronSubnet.allocateIP(gwAddress); OpenDoveGwIpv4 newGWIP = new OpenDoveGwIpv4(gwAddress, OpenDoveSubnet.getIPMask(neutronSubnet.getCidr()), neutronSubnet.getGatewayIP(), "external", target.getUUID(), 0); newGWIP.setNeutronSubnet(neutronSubnet);
if (subnetInterface.subnetExists(singleton.getID())) { throw new BadRequestException("subnet UUID already exists"); if (!networkInterface.networkExists(singleton.getNetworkUUID())) { throw new ResourceNotFoundException("network UUID does not exist."); if (!singleton.isValidCIDR()) { throw new BadRequestException("invaild CIDR"); if (!singleton.initDefaults()) { throw new InternalServerErrorException("subnet object could not be initialized properly"); if (singleton.gatewayIP_Pool_overlap()) { throw new ResourceConflictException("IP pool overlaps with gateway"); if (!test.initDefaults()) { throw new InternalServerErrorException("subnet object could not be initialized properly"); if (subnetInterface.subnetExists(test.getID())) { throw new BadRequestException("subnet UUID already exists"); if (testMap.containsKey(test.getID())) { throw new BadRequestException("subnet UUID already exists"); testMap.put(test.getID(), test); if (!networkInterface.networkExists(test.getNetworkUUID())) { throw new ResourceNotFoundException("network UUID does not exist."); if (!test.isValidCIDR()) {
if (!target.getNetworkUUID().equalsIgnoreCase(subnet.getNetworkUUID())) { throw new BadRequestException("network UUID must match that of subnet"); if (!subnet.isValidIP(ip.getIpAddress())) { throw new BadRequestException("invalid IP address"); if (subnet.isIPInUse(ip.getIpAddress())) { throw new ResourceConflictException("IP address in use");
OpenDoveCRUDInterfaces.getIfDoveNetworkSubnetAssociationCRUD(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); if (!controlBlock.getDomainSeparation()) { OpenDoveDomain sharedDomain = domainDB.getDomainByName("SharedDomain"); String networkName = "Neutron "+neutronSubnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName); OpenDoveSubnet subnet = createDoveSubnet(neutronSubnet, String domainName = "Neutron "+neutronSubnet.getTenantID(); OpenDoveDomain domain = domainDB.getDomainByName(domainName); String networkName = "Neutron "+neutronSubnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName); OpenDoveSubnet subnet = createDoveSubnet(neutronSubnet,
public int canUpdateSubnet(NeutronSubnet delta, NeutronSubnet original) { /* * updates restricted by openDove */ if (delta.getGatewayIP() != null) { return 403; } return 200; }
public int canCreateSubnet(NeutronSubnet subnet) { return canAllocateEGW(subnet.getNetworkUUID(), true); }
OpenDoveServiceAppliance oDSA = oDSAIterator.next(); Integer snatPoolSize = controlBlock.getSnatPoolSize(); Iterator<NeutronSubnet_IPAllocationPool> poolIterator = neutronSubnet.getAllocationPools().iterator(); while (poolIterator.hasNext()) { NeutronSubnet_IPAllocationPool pool = poolIterator.next(); ip_high = ipAddr; neutronSubnet.allocateIP(ipAddr);
NeutronSubnet neutronSubnet = neutronSubnetIf.getSubnet(routerInterface.getSubnetUUID()); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(neutronSubnet.getNetworkUUID()); String networkUUID = "Neutron " + neutronNetwork.getID(); IfSBDoveSubnetCRUD doveSubnetDB = OpenDoveCRUDInterfaces.getIfDoveSubnetCRUD(this); NeutronNetwork oldNeutronNetwork = neutronNetworkIf.getNetwork(oldNeutronSubnet.getNetworkUUID()); String oldNetworkUUID = "Neutron " + oldNeutronNetwork.getID(); OpenDoveNetwork oldODN = doveNetworkDB.getNetworkByName(oldNetworkUUID); while (i.hasNext()) { OpenDoveSubnet oDS = i.next(); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(oldNeutronSubnet.getID()) && oDS.getDomainUUID() == oldODN.getDomain_uuid()) { OpenDoveEGWSNATPool.removeEGWSNATPool(neutronSubnet, snatPoolDB, if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(neutronSubnet.getID()) && oDS.getDomainUUID() == newODN.getDomain_uuid()) { OpenDoveEGWSNATPool.removeEGWSNATPool(oldNeutronSubnet, snatPoolDB,
if (!singleton.getNetworkUUID().equalsIgnoreCase(subnet.getNetworkUUID())) { throw new BadRequestException("network UUID must match that of subnet"); if (!subnet.isValidIP(ip.getIpAddress())) { throw new BadRequestException("IP address is not valid"); if (subnet.isIPInUse(ip.getIpAddress())) { throw new ResourceConflictException("IP address is in use."); if (!test.getNetworkUUID().equalsIgnoreCase(subnet.getNetworkUUID())) { throw new BadRequestException("network UUID must match that of subnet"); if (!subnet.isValidIP(ip.getIpAddress())) { throw new BadRequestException("ip address not valid"); if (subnet.isIPInUse(ip.getIpAddress())) { throw new ResourceConflictException("IP address in use");
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; }
OpenDoveCRUDInterfaces.getIfDoveNetworkSubnetAssociationCRUD(this); INeutronNetworkCRUD neutronNetworkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); NeutronNetwork neutronNetwork = neutronNetworkIf.getNetwork(subnet.getNetworkUUID()); if (!neutronNetwork.isRouterExternal()) { if (neutronNetwork.isShared()) { IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); String networkName = "Neutron "+subnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName); OpenDoveGwIpv4.tombstoneEGWs(serviceApplianceDB, gatewayIPDB, subnet, network); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(subnet.getID())) { for (OpenDoveNetworkSubnetAssociation oDNSA : networkSubnetAssociationDB.getAssociations()) { if (oDNSA.getOpenDoveNetworkSubnetUuid().equalsIgnoreCase(oDS.getUUID())) {
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; }
IfOpenDoveServiceApplianceCRUD serviceApplianceDB = OpenDoveCRUDInterfaces.getIfDoveServiceApplianceCRUD(this); IfSBDoveGwIpv4CRUD gatewayIPDB = OpenDoveCRUDInterfaces.getIfSBDoveGwIpv4CRUD(this); String networkName = "Neutron "+neutronSubnet.getNetworkUUID(); OpenDoveNetwork network = networkDB.getNetworkByName(networkName); OpenDoveGwIpv4.tombstoneEGWs(serviceApplianceDB, gatewayIPDB, neutronSubnet, network); if (oDS.getAssociatedOSSubnetUUID().equalsIgnoreCase(neutronSubnet.getID())) { for (OpenDoveNetworkSubnetAssociation oDNSA : networkSubnetAssociationDB.getAssociations()) { if (oDNSA.getOpenDoveNetworkSubnetUuid().equalsIgnoreCase(oDS.getUUID())) {