From 4c11b47ed5641e332007b16923e800073d904887 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20de=20Talhou=C3=ABt?= Date: Fri, 8 May 2015 11:15:27 -0400 Subject: [PATCH] MdsalUtils#getOtherConfig() & MdsalUtils#getExternalIds(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch Set 1: useless formatting Patch Set 2: remove trailing space Patch Set 3&4: MdsalUtils#getOtherConfig() Patch Set 5: remove trailing space Patch Set 6: MdsalUtils#getExternalIds() Change-Id: Ie5db49990f413f12052cdb44f82a0b4a0b3ea51b Signed-off-by: Alexis de Talhouët --- .../ovsdb/openstack/netvirt/MdsalUtils.java | 75 +++++++++++++++++-- 1 file changed, 69 insertions(+), 6 deletions(-) diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/MdsalUtils.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/MdsalUtils.java index 721eee403..c9f8093ed 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/MdsalUtils.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/MdsalUtils.java @@ -7,10 +7,6 @@ */ package org.opendaylight.ovsdb.openstack.netvirt; -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableBiMap; -import com.google.common.util.concurrent.CheckedFuture; - import java.math.BigInteger; import java.security.InvalidParameterException; import java.util.ArrayList; @@ -37,16 +33,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentationBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeExternalIds; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.OpenvswitchExternalIds; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.OpenvswitchOtherConfigs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceExternalIds; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortExternalIds; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.PortOtherConfigs; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; @@ -59,6 +60,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Optional; +import com.google.common.collect.ImmutableBiMap; +import com.google.common.util.concurrent.CheckedFuture; + /** * Utility class to wrap mdsal transactions. * @@ -348,6 +353,10 @@ public class MdsalUtils { return null; } + public static OvsdbNodeAugmentation extractOvsdbNodeAugmentation(Node node) { + return node.getAugmentation(OvsdbNodeAugmentation.class); + } + /** * Method read ports from bridge node. Method will check if the provided node * has the ports details, if not, it will read from Operational data store. @@ -470,11 +479,65 @@ public class MdsalUtils { } public static String getExternalId(Node node, OvsdbTables table, String key) { - return null; + switch (table) { + case BRIDGE: + for (BridgeExternalIds bridgeExternaIds :extractBridgeAugmentation(node).getBridgeExternalIds()) { + if (bridgeExternaIds.getBridgeExternalIdKey().equals(key)) { + return bridgeExternaIds.getBridgeExternalIdValue(); + } + } + case CONTROLLER: + LOG.debug("There is no external_id for OvsdbTables: ", table); + return null; + case OPENVSWITCH: + for ( OpenvswitchExternalIds openvswitchExternalIds :extractOvsdbNodeAugmentation(node).getOpenvswitchExternalIds()) { + if (openvswitchExternalIds.getExternalIdKey().equals(key)) { + return openvswitchExternalIds.getExternalIdValue(); + } + } + case PORT: + for (OvsdbTerminationPointAugmentation ovsdbTerminationPointAugmentation :extractTerminationPointAugmentations(node)) { + for (PortExternalIds portExternalIds :ovsdbTerminationPointAugmentation.getPortExternalIds()) { + if (portExternalIds.getExternalIdKey().equals(key)) { + return portExternalIds.getExternalIdValue(); + } + } + } + default: + LOG.debug("Couldn't find the specified OvsdbTables: ", table); + return null; + } } public static String getOtherConfig(Node node, OvsdbTables table, String key) { - return null; + switch (table) { + case BRIDGE: + for (BridgeOtherConfigs bridgeOtherConfigs :extractBridgeAugmentation(node).getBridgeOtherConfigs()) { + if (bridgeOtherConfigs.getBridgeOtherConfigKey().equals(key)) { + return bridgeOtherConfigs.getBridgeOtherConfigValue(); + } + } + case CONTROLLER: + LOG.debug("There is no other_config for OvsdbTables: ", table); + return null; + case OPENVSWITCH: + for ( OpenvswitchOtherConfigs openvswitchOtherConfigs :extractOvsdbNodeAugmentation(node).getOpenvswitchOtherConfigs()) { + if (openvswitchOtherConfigs.getOtherConfigKey().equals(key)) { + return openvswitchOtherConfigs.getOtherConfigValue(); + } + } + case PORT: + for (OvsdbTerminationPointAugmentation ovsdbTerminationPointAugmentation :extractTerminationPointAugmentations(node)) { + for (PortOtherConfigs portOtherConfigs :ovsdbTerminationPointAugmentation.getPortOtherConfigs()) { + if (portOtherConfigs.getOtherConfigKey().equals(key)) { + return portOtherConfigs.getOtherConfigValue(); + } + } + } + default: + LOG.debug("Couldn't find the specified OvsdbTables: ", table); + return null; + } } public static boolean addVlanToTp(long vlan) { -- 2.36.6