X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetworkconfiguration%2Fneutron%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetworkconfig%2Fneutron%2Fimplementation%2FNeutronSubnetInterface.java;h=81fa107fd8005d038a506b6f7938216e7722e158;hp=62ef64c74c705fe8d0fb0f92c913d750157ece9c;hb=b1ad203b32b73fc06a856cdfae243986c8037617;hpb=a1b55fb491e235c028e1d451aff4b1d261d5a86c diff --git a/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronSubnetInterface.java b/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronSubnetInterface.java index 62ef64c74c..81fa107fd8 100644 --- a/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronSubnetInterface.java +++ b/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronSubnetInterface.java @@ -10,19 +10,13 @@ package org.opendaylight.controller.networkconfig.neutron.implementation; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Dictionary; -import java.util.EnumSet; import java.util.HashSet; import java.util.List; -import java.util.Set; import java.util.Map.Entry; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import org.apache.felix.dm.Component; -import org.opendaylight.controller.clustering.services.CacheConfigException; -import org.opendaylight.controller.clustering.services.CacheExistException; -import org.opendaylight.controller.clustering.services.IClusterContainerServices; -import org.opendaylight.controller.clustering.services.IClusterServices; import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkCRUD; import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetCRUD; import org.opendaylight.controller.networkconfig.neutron.NeutronCRUDInterfaces; @@ -33,118 +27,9 @@ import org.slf4j.LoggerFactory; public class NeutronSubnetInterface implements INeutronSubnetCRUD { private static final Logger logger = LoggerFactory.getLogger(NeutronSubnetInterface.class); - private String containerName = null; - - private IClusterContainerServices clusterContainerService = null; - private ConcurrentMap subnetDB; - - // methods needed for creating caches - - void setClusterContainerService(IClusterContainerServices s) { - logger.debug("Cluster Service set"); - this.clusterContainerService = s; - } - - void unsetClusterContainerService(IClusterContainerServices s) { - if (this.clusterContainerService == s) { - logger.debug("Cluster Service removed!"); - this.clusterContainerService = null; - } - } + private ConcurrentMap subnetDB = new ConcurrentHashMap(); - @SuppressWarnings("deprecation") - private void allocateCache() { - if (this.clusterContainerService == null) { - logger.error("un-initialized clusterContainerService, can't create cache"); - return; - } - logger.debug("Creating Cache for Neutron Subnets"); - try { - // neutron caches - this.clusterContainerService.createCache("neutronSubnets", - EnumSet.of(IClusterServices.cacheMode.NON_TRANSACTIONAL)); - } catch (CacheConfigException cce) { - logger.error("Cache couldn't be created for Neutron Subnets - check cache mode"); - } catch (CacheExistException cce) { - logger.error("Cache for Neutron Subnets already exists, destroy and recreate"); - } - logger.debug("Cache successfully created for Neutron Subnets"); - } - @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 Neutron Subnets"); - subnetDB = (ConcurrentMap) this.clusterContainerService - .getCache("neutronSubnets"); - if (subnetDB == null) { - logger.error("Cache couldn't be retrieved for Neutron Subnets"); - } - logger.debug("Cache was successfully retrieved for Neutron Subnets"); - } - - @SuppressWarnings("deprecation") - private void destroyCache() { - if (this.clusterContainerService == null) { - logger.error("un-initialized clusterMger, can't destroy cache"); - return; - } - logger.debug("Destroying Cache for HostTracker"); - this.clusterContainerService.destroyCache("neutronSubnets"); - } - - private void startUp() { - allocateCache(); - retrieveCache(); - } - - /** - * Function called by the dependency manager when all the required - * dependencies are satisfied - * - */ - void init(Component c) { - Dictionary props = c.getServiceProperties(); - if (props != null) { - this.containerName = (String) props.get("containerName"); - logger.debug("Running containerName: {}", this.containerName); - } else { - // In the Global instance case the containerName is empty - this.containerName = ""; - } - startUp(); - } - - /** - * Function called by the dependency manager when at least one dependency - * become unsatisfied or when the component is shutting down because for - * example bundle is being stopped. - * - */ - void destroy() { - destroyCache(); - } - - /** - * Function called by dependency manager after "init ()" is called and after - * the services provided by the class are registered in the service registry - * - */ - void start() { - } - - /** - * Function called by the dependency manager before the services exported by - * the component are unregistered, this will be followed by a "destroy ()" - * calls - * - */ - void stop() { - } // this method uses reflection to update an object from it's delta. @@ -176,16 +61,20 @@ public class NeutronSubnetInterface implements INeutronSubnetCRUD { // IfNBSubnetCRUD methods + @Override public boolean subnetExists(String uuid) { return subnetDB.containsKey(uuid); } + @Override public NeutronSubnet getSubnet(String uuid) { - if (!subnetExists(uuid)) + if (!subnetExists(uuid)) { return null; + } return subnetDB.get(uuid); } + @Override public List getAllSubnets() { Set allSubnets = new HashSet(); for (Entry entry : subnetDB.entrySet()) { @@ -198,10 +87,12 @@ public class NeutronSubnetInterface implements INeutronSubnetCRUD { return ans; } + @Override public boolean addSubnet(NeutronSubnet input) { String id = input.getID(); - if (subnetExists(id)) + if (subnetExists(id)) { return false; + } subnetDB.putIfAbsent(id, input); INeutronNetworkCRUD networkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); @@ -210,9 +101,11 @@ public class NeutronSubnetInterface implements INeutronSubnetCRUD { return true; } + @Override public boolean removeSubnet(String uuid) { - if (!subnetExists(uuid)) + if (!subnetExists(uuid)) { return false; + } NeutronSubnet target = subnetDB.get(uuid); INeutronNetworkCRUD networkIf = NeutronCRUDInterfaces.getINeutronNetworkCRUD(this); @@ -222,16 +115,20 @@ public class NeutronSubnetInterface implements INeutronSubnetCRUD { return true; } + @Override public boolean updateSubnet(String uuid, NeutronSubnet delta) { - if (!subnetExists(uuid)) + if (!subnetExists(uuid)) { return false; + } NeutronSubnet target = subnetDB.get(uuid); return overwrite(target, delta); } + @Override public boolean subnetInUse(String subnetUUID) { - if (!subnetExists(subnetUUID)) + if (!subnetExists(subnetUUID)) { return true; + } NeutronSubnet target = subnetDB.get(subnetUUID); return (target.getPortsInSubnet().size() > 0); }