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;
.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
return networkBuilder.build();
}
+
+ @Override
+ protected boolean areAllDependenciesAvailable(ReadTransaction tx, NeutronNetwork network)
+ throws ReadFailedException {
+ return ifNonNull(network.getQosPolicyId(), qosPolicyId -> qosPolicyInterface.exists(qosPolicyId, tx));
+ }
}