From 335590c046f0be7243d16825ace6c767159dc6ff Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Thu, 2 Aug 2018 15:50:47 +0200 Subject: [PATCH] add dependency check for qosPolicyId to NeutronNetworkInterface JIRA: NEUTRON-178 Change-Id: I50c668659ad87bc53f370f584408867dc0625f70 Signed-off-by: Michael Vorburger --- .../transcriber/NeutronNetworkInterface.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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)); + } } -- 2.36.6