From: Michael Vorburger Date: Thu, 2 Aug 2018 13:50:47 +0000 (+0200) Subject: add dependency check for qosPolicyId to NeutronNetworkInterface X-Git-Tag: release/neon~34^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=335590c046f0be7243d16825ace6c767159dc6ff;p=neutron.git add dependency check for qosPolicyId to NeutronNetworkInterface JIRA: NEUTRON-178 Change-Id: I50c668659ad87bc53f370f584408867dc0625f70 Signed-off-by: Michael Vorburger --- diff --git a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java index d1d36a964..85d50fdf7 100644 --- a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java +++ b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java @@ -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)); + } }