Reversion yang model
[neutron.git] / transcriber / src / main / java / org / opendaylight / neutron / transcriber / NeutronVPNIPSECSiteConnectionsInterface.java
index c9e5d7b7e9f6717b6e0499c15ff1609d90ffba06..bf5b31c53f389becea2b49ae3ee71e8c92f5ef74 100644 (file)
@@ -13,28 +13,24 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
 
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.neutron.spi.INeutronVPNIPSECSiteConnectionsCRUD;
 import org.opendaylight.neutron.spi.NeutronVPNDeadPeerDetection;
 import org.opendaylight.neutron.spi.NeutronVPNIPSECSiteConnection;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev141002.ipsecconnection.attributes.DpdBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev141002.ipsecconnections.attributes.IpsecSiteConnections;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev141002.ipsecconnections.attributes.ipsec.site.connections.Ipsecsiteconnection;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev141002.ipsecconnections.attributes.ipsec.site.connections.IpsecsiteconnectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150325.Neutron;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecconnection.attributes.DpdBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecconnections.attributes.IpsecSiteConnections;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecconnections.attributes.ipsec.site.connections.Ipsecsiteconnection;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.vpnaas.rev150712.ipsecconnections.attributes.ipsec.site.connections.IpsecsiteconnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NeutronVPNIPSECSiteConnectionsInterface extends AbstractNeutronInterface<Ipsecsiteconnection, NeutronVPNIPSECSiteConnection> implements INeutronVPNIPSECSiteConnectionsCRUD {
+public class NeutronVPNIPSECSiteConnectionsInterface extends AbstractNeutronInterface<Ipsecsiteconnection, IpsecSiteConnections, NeutronVPNIPSECSiteConnection> implements INeutronVPNIPSECSiteConnectionsCRUD {
     private static final Logger LOGGER = LoggerFactory.getLogger(NeutronVPNIKEPolicyInterface.class);
-    private ConcurrentMap<String, NeutronVPNIPSECSiteConnection> neutronVPNIPSECSiteConnectionDB = new ConcurrentHashMap<String, NeutronVPNIPSECSiteConnection>();
-
 
     NeutronVPNIPSECSiteConnectionsInterface(ProviderContext providerContext) {
         super(providerContext);
@@ -43,70 +39,108 @@ public class NeutronVPNIPSECSiteConnectionsInterface extends AbstractNeutronInte
     // INeutronVPNIPSECSiteConnectionsCRUD methods
 
     @Override
-    public boolean neutronVPNIPSECSiteConnectionsExists(String policyID) {
-        return neutronVPNIPSECSiteConnectionDB.containsKey(policyID);
+    public boolean neutronVPNIPSECSiteConnectionsExists(String uuid) {
+        return exists(uuid);
     }
 
     @Override
-    public NeutronVPNIPSECSiteConnection getNeutronVPNIPSECSiteConnections(String policyID) {
-        if (!neutronVPNIPSECSiteConnectionsExists(policyID)) {
-            return null;
-        }
-        return neutronVPNIPSECSiteConnectionDB.get(policyID);
+    public NeutronVPNIPSECSiteConnection getNeutronVPNIPSECSiteConnections(String uuid) {
+        return get(uuid);
+    }
+
+    @Override
+    protected List<Ipsecsiteconnection> getDataObjectList(IpsecSiteConnections connections) {
+        return connections.getIpsecsiteconnection();
     }
 
     @Override
     public List<NeutronVPNIPSECSiteConnection> getAllNeutronVPNIPSECSiteConnections() {
-        Set<NeutronVPNIPSECSiteConnection> allNeutronVPNIPSECSiteConnections = new HashSet<NeutronVPNIPSECSiteConnection>();
-        for (Entry<String, NeutronVPNIPSECSiteConnection> entry : neutronVPNIPSECSiteConnectionDB.entrySet()) {
-            NeutronVPNIPSECSiteConnection meteringLabelRule = entry.getValue();
-            allNeutronVPNIPSECSiteConnections.add(meteringLabelRule);
-        }
-        LOGGER.debug("Exiting getAllNeutronVPNIPSECSiteConnections, Found {} OpenStackVPNIPSECSiteConnections", allNeutronVPNIPSECSiteConnections.size());
-        List<NeutronVPNIPSECSiteConnection> ans = new ArrayList<NeutronVPNIPSECSiteConnection>();
-        ans.addAll(allNeutronVPNIPSECSiteConnections);
-        return ans;
+        return getAll();
     }
 
     @Override
     public boolean addNeutronVPNIPSECSiteConnections(NeutronVPNIPSECSiteConnection input) {
-        if (neutronVPNIPSECSiteConnectionsExists(input.getID())) {
-            return false;
-        }
-        neutronVPNIPSECSiteConnectionDB.putIfAbsent(input.getID(), input);
-        addMd(input);
-        return true;
+        return add(input);
     }
 
     @Override
     public boolean removeNeutronVPNIPSECSiteConnections(String policyID) {
-        if (!neutronVPNIPSECSiteConnectionsExists(policyID)) {
-            return false;
-        }
-        neutronVPNIPSECSiteConnectionDB.remove(policyID);
-        removeMd(toMd(policyID));
-        return true;
+        return remove(policyID);
     }
 
     @Override
     public boolean updateNeutronVPNIPSECSiteConnections(String policyID, NeutronVPNIPSECSiteConnection delta) {
-        if (!neutronVPNIPSECSiteConnectionsExists(policyID)) {
-            return false;
-        }
-        NeutronVPNIPSECSiteConnection target = neutronVPNIPSECSiteConnectionDB.get(policyID);
-        boolean rc = overwrite(target, delta);
-        if (rc) {
-            updateMd(neutronVPNIPSECSiteConnectionDB.get(policyID));
-        }
-        return rc;
+        return update(policyID, delta);
     }
 
     @Override
     public boolean neutronVPNIPSECSiteConnectionsInUse(String policyID) {
-        if (!neutronVPNIPSECSiteConnectionsExists(policyID)) {
-            return true;
+        return !exists(policyID);
+    }
+
+    protected NeutronVPNIPSECSiteConnection fromMd(Ipsecsiteconnection ipsecSiteConnection) {
+        NeutronVPNIPSECSiteConnection answer = new NeutronVPNIPSECSiteConnection();
+        if (ipsecSiteConnection.getName() != null) {
+            answer.setName(ipsecSiteConnection.getName());
+        }
+        if (ipsecSiteConnection.getTenantId() != null) {
+            answer.setTenantID(ipsecSiteConnection.getTenantId());
+        }
+        answer.setStatus(ipsecSiteConnection.getStatus());
+        if (ipsecSiteConnection.isAdminStateUp() != null) {
+            answer.setAdminStateUp(ipsecSiteConnection.isAdminStateUp());
+        }
+        if (ipsecSiteConnection.getDescr() != null) {
+            answer.setDescription(ipsecSiteConnection.getDescr());
+        }
+        if (ipsecSiteConnection.getPeerAddress() != null) {
+            answer.setPeerAddress(ipsecSiteConnection.getPeerAddress());
+        }
+        if (ipsecSiteConnection.getPeerCidrs() != null) {
+            List<String> peerCidrs = new ArrayList<String>();
+            for( String peerCidr : ipsecSiteConnection.getPeerCidrs()) {
+                peerCidrs.add(peerCidr);
+            }
+            answer.setPeerCidrs(peerCidrs);
+        }
+        if (ipsecSiteConnection.getPeerId() != null) {
+            answer.setPeerID(ipsecSiteConnection.getPeerId());
         }
-        return false;
+        if (ipsecSiteConnection.getRouteMode() != null) {
+            answer.setRouteMode(ipsecSiteConnection.getRouteMode());
+        }
+        if (ipsecSiteConnection.getMtu() != null) {
+            answer.setMtu((ipsecSiteConnection.getMtu()).intValue());
+        }
+        if (ipsecSiteConnection.getAuthMode() != null) {
+            answer.setAuthMode(ipsecSiteConnection.getAuthMode());
+        }
+        if (ipsecSiteConnection.getPsk() != null) {
+            answer.setPreSharedKey(ipsecSiteConnection.getPsk());
+        }
+        if (ipsecSiteConnection.getInitiator() != null) {
+            answer.setInitiator(ipsecSiteConnection.getInitiator());
+        }
+        if (ipsecSiteConnection.getIkepolicyId() != null) {
+            answer.setIkePolicyID(ipsecSiteConnection.getIkepolicyId().getValue());
+        }
+        if (ipsecSiteConnection.getIpsecpolicyId() != null) {
+            answer.setIpsecPolicyID(ipsecSiteConnection.getIpsecpolicyId().getValue());
+        }
+        if (ipsecSiteConnection.getVpnserviceId() != null) {
+            answer.setVpnServiceID(ipsecSiteConnection.getVpnserviceId().getValue());
+        }
+        if (ipsecSiteConnection.getDpd() != null) {
+            NeutronVPNDeadPeerDetection deadPeerDetection = new NeutronVPNDeadPeerDetection();
+            deadPeerDetection.setAction(ipsecSiteConnection.getDpd().getAction());
+            deadPeerDetection.setInterval(ipsecSiteConnection.getDpd().getInterval());
+            deadPeerDetection.setTimeout(ipsecSiteConnection.getDpd().getTimeout());
+            answer.setDeadPeerDetection(deadPeerDetection);
+        }
+        if (ipsecSiteConnection.getUuid() != null) {
+            answer.setID(ipsecSiteConnection.getUuid().getValue());
+        }
+        return answer;
     }
 
     @Override
@@ -178,6 +212,12 @@ public class NeutronVPNIPSECSiteConnectionsInterface extends AbstractNeutronInte
         return ipsecSiteConnectionBuilder.build();
     }
 
+    @Override
+    protected InstanceIdentifier<IpsecSiteConnections> createInstanceIdentifier() {
+        return InstanceIdentifier.create(Neutron.class)
+                 .child(IpsecSiteConnections.class);
+    }
+
     @Override
     protected InstanceIdentifier<Ipsecsiteconnection> createInstanceIdentifier(Ipsecsiteconnection ipsecSiteConnection) {
         return InstanceIdentifier.create(Neutron.class)