@SuppressWarnings({ "unchecked", "deprecation" }) private void retrieveCache() { if (this.clusterContainerService == null) { logger.error("un-initialized clusterContainerService, can't retrieve cache"); return; } logger.debug("Retrieving cache for openDoveNeutronSystem"); systemDB = (ConcurrentMap<String, OpenDoveNeutronControlBlock>) this.clusterContainerService .getCache("openDoveNeutronSystem"); if (systemDB == null) { logger.error("Cache couldn't be retrieved for openDOVENeutronSystem"); } OpenDoveNeutronControlBlock block = new OpenDoveNeutronControlBlock(); //block.setDomainSeparation(true); systemDB.putIfAbsent("default", block); logger.debug("Cache was successfully retrieved for openDOVENeutronSystem"); }
public boolean updateControlBlock(OpenDoveNeutronControlBlock input) { OpenDoveNeutronControlBlock target = systemDB.get("default"); return target.overwrite(input); } }
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; } }
public static void assignEGWs(IfOpenDoveServiceApplianceCRUD serviceApplianceDB, IfSBDoveGwIpv4CRUD gatewayIPDB, NeutronSubnet neutronSubnet, OpenDoveNeutronControlBlock controlBlock, OpenDoveNetwork network) { Integer replicationFactor = controlBlock.getEgwReplicationFactor(); List<OpenDoveServiceAppliance> oDSAs = getAssignableDGWs(serviceApplianceDB); SubnetUtils util = new SubnetUtils(neutronSubnet.getCidr());
while (oDSAIterator.hasNext()) { OpenDoveServiceAppliance oDSA = oDSAIterator.next(); Integer snatPoolSize = controlBlock.getSnatPoolSize(); Iterator<NeutronSubnet_IPAllocationPool> poolIterator = neutronSubnet.getAllocationPools().iterator(); while (poolIterator.hasNext()) {
IfNBSystemRU systemDB = OpenDoveCRUDInterfaces.getIfSystemRU(o); if (network.isShared() && !controlBlock.getDomainSeparation()) doveDomainName = "SharedDomain"; IfOpenDoveDomainCRUD domainDB = OpenDoveCRUDInterfaces.getIfDoveDomainCRU(o);
if (controlBlock.getDomainSeparation()) {
if (!neutronNetwork.isRouterExternal()) { if (neutronNetwork.isShared()) { if (!controlBlock.getDomainSeparation()) {
if (neutronNetwork.isShared()) { if (controlBlock.getDomainSeparation()) {
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); } } }
if (!controlBlock.getDomainSeparation()) { OpenDoveDomain sharedDomain = domainDB.getDomainByName("SharedDomain"); String networkName = "Neutron "+neutronSubnet.getNetworkUUID();