Bump upstreams
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / mdsal / AuthenticationKeyDataListener.java
index 0025594046b4abde8a3863ae9c9c2ae70face5f8..941d001d8a03f5f07fda3d7799e354a3c74925c9 100644 (file)
@@ -7,18 +7,21 @@
  */
 package org.opendaylight.lispflowmapping.implementation.mdsal;
 
-import java.util.Collection;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
+import java.util.List;
 import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem;
+import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType;
+import org.opendaylight.mdsal.binding.api.DataTreeModification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingDatabase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType;
 
 /**
  * DataListener for all AuthenticationKey modification events.
@@ -26,7 +29,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.Mod
  * @author Lorand Jakab
  *
  */
-public class AuthenticationKeyDataListener extends NewAbstractDataListener<AuthenticationKey> {
+public class AuthenticationKeyDataListener extends AbstractDataListener<AuthenticationKey> {
     private static final Logger LOG = LoggerFactory.getLogger(AuthenticationKeyDataListener.class);
     private IMappingSystem mapSystem;
 
@@ -40,39 +43,53 @@ public class AuthenticationKeyDataListener extends NewAbstractDataListener<Authe
     }
 
     @Override
-    public void onDataTreeChanged(Collection<DataTreeModification<AuthenticationKey>> changes) {
+    public void onDataTreeChanged(List<DataTreeModification<AuthenticationKey>> changes) {
         for (DataTreeModification<AuthenticationKey> change : changes) {
             final DataObjectModification<AuthenticationKey> mod = change.getRootNode();
 
-            if (ModificationType.DELETE == mod.getModificationType()) {
-                final AuthenticationKey authKey = mod.getDataBefore();
+            if (ModificationType.DELETE == mod.modificationType()) {
+                final AuthenticationKey authKey = mod.dataBefore();
 
                 LOG.trace("Received deleted data");
-                LOG.trace("Key: {}", change.getRootPath().getRootIdentifier());
+                LOG.trace("Key: {}", change.getRootPath().path());
                 LOG.trace("Value: {}", authKey);
 
-                mapSystem.removeAuthenticationKey(authKey.getEid());
-            } else if (ModificationType.WRITE == mod.getModificationType() || ModificationType.SUBTREE_MODIFIED == mod
-                    .getModificationType()) {
-                if (ModificationType.WRITE == mod.getModificationType()) {
+                final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey);
+
+                mapSystem.removeAuthenticationKey(convertedAuthKey.getEid());
+            } else if (ModificationType.WRITE == mod.modificationType()
+                    || ModificationType.SUBTREE_MODIFIED == mod.modificationType()) {
+                if (ModificationType.WRITE == mod.modificationType()) {
                     LOG.trace("Received created data");
                 } else {
                     LOG.trace("Received updated data");
                 }
                 // Process newly created or updated authentication keys
-                final AuthenticationKey authKey = mod.getDataAfter();
+                final AuthenticationKey authKey = mod.dataAfter();
 
-                LOG.trace("Key: {}", change.getRootPath().getRootIdentifier());
+                LOG.trace("Key: {}", change.getRootPath().path());
                 LOG.trace("Value: {}", authKey);
 
-                mapSystem.addAuthenticationKey(authKey.getEid(), authKey.getMappingAuthkey());
+                final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey);
+
+                mapSystem.addAuthenticationKey(convertedAuthKey.getEid(), convertedAuthKey.getMappingAuthkey());
             } else {
-                LOG.warn("Ignoring unhandled modification type {}", mod.getModificationType());
+                LOG.warn("Ignoring unhandled modification type {}", mod.modificationType());
             }
         }
     }
 
+    private static AuthenticationKey convertToBinaryIfNecessary(AuthenticationKey authKey) {
+        Eid originalEid = authKey.getEid();
+        if (LispAddressUtil.addressNeedsConversionToBinary(originalEid.getAddress())) {
+            AuthenticationKeyBuilder akb = new AuthenticationKeyBuilder(authKey);
+            akb.setEid(LispAddressUtil.convertToBinary(originalEid));
+            return akb.build();
+        }
+        return authKey;
+    }
+
     void setMappingSystem(IMappingSystem msmr) {
-        this.mapSystem = msmr;
+        mapSystem = msmr;
     }
 }