From 3292912d2154da089b5c308dfdbe86a605302c3b Mon Sep 17 00:00:00 2001 From: Stephen Kitt Date: Fri, 23 Jun 2017 15:17:00 +0200 Subject: [PATCH] Remove sfc-translator MdsalUtils::read() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Replace MdsalUtils::read() with SingleTransactionDataBroker::syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional() (which is itself deprecated, but I didn’t want to redo the error-handling in this patch). Change-Id: I8233ce003f416a6d9575884b5592d0d5728e3f05 Signed-off-by: Stephen Kitt --- vpnservice/sfc/translator/pom.xml | 5 +++ .../netvirt/sfc/translator/MdsalUtils.java | 32 ------------------- .../sfc/translator/NeutronMdsalHelper.java | 22 ++++++------- .../sfc/translator/OvsdbMdsalHelper.java | 10 +++--- .../sfc/translator/SfcMdsalHelper.java | 11 +++++-- 5 files changed, 28 insertions(+), 52 deletions(-) diff --git a/vpnservice/sfc/translator/pom.xml b/vpnservice/sfc/translator/pom.xml index da17454c32..43f8ff7a28 100644 --- a/vpnservice/sfc/translator/pom.xml +++ b/vpnservice/sfc/translator/pom.xml @@ -55,6 +55,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html sfc-provider ${sfc.version} + + org.opendaylight.genius + mdsalutil-api + ${genius.version} + diff --git a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/MdsalUtils.java b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/MdsalUtils.java index 4864b096e2..07279206a3 100644 --- a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/MdsalUtils.java +++ b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/MdsalUtils.java @@ -8,13 +8,10 @@ package org.opendaylight.netvirt.sfc.translator; -import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -101,33 +98,4 @@ public class MdsalUtils { } return result; } - - /** - * Executes read as a blocking transaction. - * - * @param store {@link LogicalDatastoreType} to read - * @param path {@link InstanceIdentifier} for path to read - * @param the data object type - * @return the result as the data object requested - */ - public D read( - final LogicalDatastoreType store, final InstanceIdentifier path) { - D result = null; - final ReadOnlyTransaction transaction = databroker.newReadOnlyTransaction(); - Optional optionalDataObject; - CheckedFuture, ReadFailedException> future = transaction.read(store, path); - try { - optionalDataObject = future.checkedGet(); - if (optionalDataObject.isPresent()) { - result = optionalDataObject.get(); - } else { - LOG.debug("{}: Failed to read {}", - Thread.currentThread().getStackTrace()[1], path); - } - } catch (ReadFailedException e) { - LOG.warn("Failed to read {} ", path, e); - } - transaction.close(); - return result; - } } diff --git a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/NeutronMdsalHelper.java b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/NeutronMdsalHelper.java index 3812673dd1..f9307545f0 100644 --- a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/NeutronMdsalHelper.java +++ b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/NeutronMdsalHelper.java @@ -10,6 +10,7 @@ package org.opendaylight.netvirt.sfc.translator; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; @@ -44,34 +45,29 @@ public class NeutronMdsalHelper { InstanceIdentifier.create(Neutron.class).child(PortPairGroups.class); private final DataBroker dataBroker; - private final MdsalUtils mdsalUtils; public NeutronMdsalHelper(DataBroker dataBroker) { this.dataBroker = dataBroker; - mdsalUtils = new MdsalUtils(this.dataBroker); } public Port getNeutronPort(Uuid portId) { - Port neutronPort = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION , getNeutronPortPath(portId)); - return neutronPort; + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, getNeutronPortPath(portId)).orNull(); } public PortPair getNeutronPortPair(Uuid portPairId) { - PortPair neutronPortPair - = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION , getNeutronPortPairPath(portPairId)); - return neutronPortPair; + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, getNeutronPortPairPath(portPairId)).orNull(); } public PortPairGroup getNeutronPortPairGroup(Uuid portPairGroupId) { - PortPairGroup neutronPortPairGroup - = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION , getNeutronPortPairGroupPath(portPairGroupId)); - return neutronPortPairGroup; + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, getNeutronPortPairGroupPath(portPairGroupId)).orNull(); } public SfcFlowClassifier getNeutronFlowClassifier(Uuid flowClassifierId) { - SfcFlowClassifier sfcFlowClassifier = - mdsalUtils.read(LogicalDatastoreType.CONFIGURATION , getNeutronSfcFlowClassifierPath(flowClassifierId)); - return sfcFlowClassifier; + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, getNeutronSfcFlowClassifierPath(flowClassifierId)).orNull(); } private InstanceIdentifier getNeutronPortPath(Uuid portId) { diff --git a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/OvsdbMdsalHelper.java b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/OvsdbMdsalHelper.java index 64a781db13..8f37d8d00c 100644 --- a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/OvsdbMdsalHelper.java +++ b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/OvsdbMdsalHelper.java @@ -11,6 +11,7 @@ package org.opendaylight.netvirt.sfc.translator; import java.util.List; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; @@ -39,21 +40,22 @@ public class OvsdbMdsalHelper { .child(Topology.class, new TopologyKey(new TopologyId(OVSDB_TOPOLOGY_ID))); private final DataBroker dataBroker; - private final MdsalUtils mdsalUtils; public OvsdbMdsalHelper(DataBroker dataBroker) { this.dataBroker = dataBroker; - mdsalUtils = new MdsalUtils(this.dataBroker); } public Topology getOvsdbTopologyTree() { LOG.info("Reading OVSDB Topolog Tree (ovsdb:1)"); - return mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, TOPOLOGY_PATH); + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.OPERATIONAL, TOPOLOGY_PATH).orNull(); } public OvsdbPortMetadata getOvsdbPortMetadata(Uuid ingressPort) { LOG.info("Extract ovsdb port details for neutron port {}", ingressPort.getValue()); - Topology ovsdbTopology = mdsalUtils.read(LogicalDatastoreType.OPERATIONAL, TOPOLOGY_PATH); + Topology ovsdbTopology = + SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.OPERATIONAL, TOPOLOGY_PATH).orNull(); return getOvsdbPortMetadata(ingressPort, ovsdbTopology); } diff --git a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/SfcMdsalHelper.java b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/SfcMdsalHelper.java index 3a4f166c95..3281a39e57 100644 --- a/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/SfcMdsalHelper.java +++ b/vpnservice/sfc/translator/src/main/java/org/opendaylight/netvirt/sfc/translator/SfcMdsalHelper.java @@ -11,6 +11,7 @@ package org.opendaylight.netvirt.sfc.translator; import java.util.List; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.ServiceFunctions; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunctionKey; @@ -77,7 +78,8 @@ public class SfcMdsalHelper { public ServiceFunction readServiceFunction(ServiceFunctionKey sfKey) { InstanceIdentifier sfIid = getSFPath(sfKey); LOG.info("Read Service Function {} from config data store at {}",sfKey, sfIid); - return mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, sfIid); + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, sfIid).orNull(); } public void addServiceFunction(ServiceFunction sf) { @@ -102,7 +104,8 @@ public class SfcMdsalHelper { public ServiceFunctionForwarder readServiceFunctionForwarder(ServiceFunctionForwarderKey sffKey) { InstanceIdentifier sffIid = getSFFPath(sffKey); LOG.info("Read Service Function Forwarder from config data store at {}", sffIid); - return mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, sffIid); + return SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, sffIid).orNull(); } public void addServiceFunctionForwarder(ServiceFunctionForwarder sff) { @@ -162,7 +165,9 @@ public class SfcMdsalHelper { } public ServiceFunctionForwarder getExistingSFF(String ipAddress) { - ServiceFunctionForwarders existingSffs = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, sffIid); + ServiceFunctionForwarders existingSffs = + SingleTransactionDataBroker.syncReadOptionalAndTreatReadFailedExceptionAsAbsentOptional(dataBroker, + LogicalDatastoreType.CONFIGURATION, sffIid).orNull(); if (existingSffs != null && existingSffs.getServiceFunctionForwarder() != null && !existingSffs.getServiceFunctionForwarder().isEmpty()) { -- 2.36.6