add dependency check for qosPolicyId to NeutronNetworkInterface 67/74767/1
authorMichael Vorburger <vorburger@redhat.com>
Thu, 2 Aug 2018 13:50:47 +0000 (15:50 +0200)
committerMichael Vorburger <vorburger@redhat.com>
Thu, 2 Aug 2018 13:50:47 +0000 (15:50 +0200)
JIRA: NEUTRON-178
Change-Id: I50c668659ad87bc53f370f584408867dc0625f70
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java

index d1d36a96485bb576d0d0ab3603ff1efb00b3d4fe..85d50fdf72c435b17be8f8c8a36f7274675dc614 100644 (file)
@@ -13,6 +13,8 @@ import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.neutron.spi.INeutronNetworkCRUD;
 import org.opendaylight.neutron.spi.NeutronNetwork;
 import org.opendaylight.neutron.spi.NeutronNetworkSegment;
@@ -46,9 +48,12 @@ public final class NeutronNetworkInterface
                     .put(NetworkTypeFlat.class, "flat").put(NetworkTypeGre.class, "gre")
                     .put(NetworkTypeVlan.class, "vlan").put(NetworkTypeVxlan.class, "vxlan").build();
 
+    private final NeutronQosPolicyInterface qosPolicyInterface;
+
     @Inject
-    public NeutronNetworkInterface(DataBroker db) {
+    public NeutronNetworkInterface(DataBroker db, NeutronQosPolicyInterface qosPolicyInterface) {
         super(NetworkBuilder.class, db);
+        this.qosPolicyInterface = qosPolicyInterface;
     }
 
     // IfNBNetworkCRUD methods
@@ -158,4 +163,10 @@ public final class NeutronNetworkInterface
 
         return networkBuilder.build();
     }
+
+    @Override
+    protected boolean areAllDependenciesAvailable(ReadTransaction tx, NeutronNetwork network)
+            throws ReadFailedException {
+        return ifNonNull(network.getQosPolicyId(), qosPolicyId -> qosPolicyInterface.exists(qosPolicyId, tx));
+    }
 }