X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetworkconfiguration%2Fneutron%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetworkconfig%2Fneutron%2Fimplementation%2FNeutronPortInterface.java;h=3294474b49480ed9153bcef9bf2d753d6c505be8;hb=00da46dd8963791aa00d72d4f996ce725b4a8867;hp=ec439bb92782b9f8b7b9f1dd865666c1d3ae8286;hpb=765f74bd08b61de6896411eb1a9d8377a981ec82;p=controller.git diff --git a/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronPortInterface.java b/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronPortInterface.java index ec439bb927..3294474b49 100644 --- a/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronPortInterface.java +++ b/opendaylight/networkconfiguration/neutron/implementation/src/main/java/org/opendaylight/controller/networkconfig/neutron/implementation/NeutronPortInterface.java @@ -18,9 +18,8 @@ import java.util.EnumSet; import java.util.HashSet; import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; +import java.util.Set; import java.util.concurrent.ConcurrentMap; import org.apache.felix.dm.Component; @@ -28,7 +27,9 @@ 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.configuration.ConfigurationObject; import org.opendaylight.controller.configuration.IConfigurationContainerAware; +import org.opendaylight.controller.configuration.IConfigurationContainerService; import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkCRUD; import org.opendaylight.controller.networkconfig.neutron.INeutronPortCRUD; import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetCRUD; @@ -37,10 +38,7 @@ import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork; import org.opendaylight.controller.networkconfig.neutron.NeutronPort; import org.opendaylight.controller.networkconfig.neutron.NeutronSubnet; import org.opendaylight.controller.networkconfig.neutron.Neutron_IPs; -import org.opendaylight.controller.sal.utils.GlobalConstants; import org.opendaylight.controller.sal.utils.IObjectReader; -import org.opendaylight.controller.sal.utils.ObjectReader; -import org.opendaylight.controller.sal.utils.ObjectWriter; import org.opendaylight.controller.sal.utils.Status; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,12 +46,11 @@ import org.slf4j.LoggerFactory; public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationContainerAware, IObjectReader { private static final Logger logger = LoggerFactory.getLogger(NeutronPortInterface.class); - private static String ROOT = GlobalConstants.STARTUPHOME.toString(); - private static final String FILENAME ="neutron.port"; - private static String fileName; + private static final String FILE_NAME ="neutron.port.conf"; private String containerName = null; private IClusterContainerServices clusterContainerService = null; + private IConfigurationContainerService configurationService; private ConcurrentMap portDB; // methods needed for creating caches @@ -70,7 +67,16 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon } } - @SuppressWarnings("deprecation") + public void setConfigurationContainerService(IConfigurationContainerService service) { + logger.trace("Configuration service set: {}", service); + configurationService = service; + } + + public void unsetConfigurationContainerService(IConfigurationContainerService service) { + logger.trace("Configuration service removed: {}", service); + configurationService = null; + } + private void allocateCache() { if (clusterContainerService == null) { logger.error("un-initialized clusterContainerService, can't create cache"); @@ -89,7 +95,7 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon logger.debug("Cache successfully created for OpenDOVE"); } - @SuppressWarnings({ "unchecked", "deprecation" }) + @SuppressWarnings({ "unchecked" }) private void retrieveCache() { if (clusterContainerService == null) { logger.error("un-initialized clusterContainerService, can't retrieve cache"); @@ -105,7 +111,6 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon logger.debug("Cache was successfully retrieved for Neutron Ports"); } - @SuppressWarnings("deprecation") private void destroyCache() { if (clusterContainerService == null) { logger.error("un-initialized clusterMger, can't destroy cache"); @@ -118,10 +123,7 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon private void startUp() { allocateCache(); retrieveCache(); - if (portDB.isEmpty()) { - loadConfiguration(); - } - + loadConfiguration(); } /** @@ -138,7 +140,6 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon // In the Global instance case the containerName is empty containerName = ""; } - fileName = ROOT + FILENAME + "_" + containerName + ".conf"; startUp(); } @@ -232,6 +233,9 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon portDB.putIfAbsent(input.getID(), input); // if there are no fixed IPs, allocate one for each subnet in the network INeutronSubnetCRUD systemCRUD = NeutronCRUDInterfaces.getINeutronSubnetCRUD(this); + if (input.getFixedIPs() == null){ + input.setFixedIPs(new ArrayList()); + } if (input.getFixedIPs().size() == 0) { List list = input.getFixedIPs(); Iterator subnetIterator = systemCRUD.getAllSubnets().iterator(); @@ -348,25 +352,17 @@ public class NeutronPortInterface implements INeutronPortCRUD, IConfigurationCon return null; } - @SuppressWarnings("unchecked") private void loadConfiguration() { - ObjectReader objReader = new ObjectReader(); - ConcurrentMap confList = (ConcurrentMap) - objReader.read(this, fileName); - - if (confList == null) { - return; - } - - for (String key : confList.keySet()) { - portDB.put(key, confList.get(key)); + for (ConfigurationObject conf : configurationService.retrieveConfiguration(this, FILE_NAME)) { + NeutronPort nn = (NeutronPort) conf; + portDB.put(nn.getID(), nn); } } @Override public Status saveConfiguration() { - ObjectWriter objWriter = new ObjectWriter(); - return objWriter.write(new ConcurrentHashMap(portDB), fileName); + return configurationService.persistConfiguration(new ArrayList(portDB.values()), + FILE_NAME); } @Override