X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=neutron-ovsdb%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fgroupbasedpolicy%2Fneutron%2Fovsdb%2Futil%2FOvsdbHelper.java;h=d4354bc9451b7d2c48422d683dc5efa980343148;hb=02dd576a2ff7d7a8c304bd74a239c150be1ddd2b;hp=0d522cb93e8c951819ac9d91149f1271e0b9775d;hpb=af8e12e590f01c53bac5d2ced813ebf1f3e85c00;p=groupbasedpolicy.git diff --git a/neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/util/OvsdbHelper.java b/neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/util/OvsdbHelper.java old mode 100644 new mode 100755 index 0d522cb93..d4354bc94 --- a/neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/util/OvsdbHelper.java +++ b/neutron-ovsdb/src/main/java/org/opendaylight/groupbasedpolicy/neutron/ovsdb/util/OvsdbHelper.java @@ -8,8 +8,10 @@ package org.opendaylight.groupbasedpolicy.neutron.ovsdb.util; -import static org.opendaylight.groupbasedpolicy.neutron.ovsdb.util.DataStore.readFromDs; -import static org.opendaylight.groupbasedpolicy.neutron.ovsdb.util.DataStore.submitToDs; +import static org.opendaylight.groupbasedpolicy.util.DataStoreHelper.readFromDs; +import static org.opendaylight.groupbasedpolicy.util.DataStoreHelper.submitToDs; + +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.List; @@ -19,8 +21,8 @@ import org.opendaylight.controller.md.sal.binding.api.ReadTransaction; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.groupbasedpolicy.neutron.ovsdb.AbstractTunnelType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan; 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.OvsdbBridgeAugmentationBuilder; @@ -42,31 +44,32 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Optional; - public class OvsdbHelper { - private static final Logger LOG = LoggerFactory.getLogger(DataStore.class); + private static final Logger LOG = LoggerFactory.getLogger(OvsdbHelper.class); private static final String OF_PORT = "6653"; /** * Look up the {@link OvsdbBridgeAugmentation} from the data store - * given a child {@link InstanceIdentifier} + * given a child {@link InstanceIdentifier} of {@link OvsdbTerminationPointAugmentation}. * - * @param tpId The InstanceIdentifier for a child TerminationPoint augmentation + * @param tpIid The InstanceIdentifier for a child TerminationPoint augmentation + * @param dataBroker the {@link DataBroker} * @return the {@link OvsdbBridgeAugmentation}, null if the augmentation isn't present */ public static OvsdbBridgeAugmentation getOvsdbBridgeFromTerminationPoint( InstanceIdentifier tpIid, DataBroker dataBroker) { - InstanceIdentifier ovsdbBridgeIid = - tpIid.firstIdentifierOf(Node.class).augmentation(OvsdbBridgeAugmentation.class); - if (ovsdbBridgeIid == null) { - return null; - } - ReadTransaction transaction = dataBroker.newReadOnlyTransaction(); - Optional ovsdbBridge = - readFromDs(LogicalDatastoreType.OPERATIONAL, ovsdbBridgeIid, transaction ); - if (ovsdbBridge.isPresent()) { - return ovsdbBridge.get(); + InstanceIdentifier nodeIid = tpIid.firstIdentifierOf(Node.class); + if (nodeIid != null) { + InstanceIdentifier + ovsdbBridgeIid = nodeIid.augmentation(OvsdbBridgeAugmentation.class); + if (ovsdbBridgeIid != null) { + ReadTransaction transaction = dataBroker.newReadOnlyTransaction(); + Optional ovsdbBridge = + readFromDs(LogicalDatastoreType.OPERATIONAL, ovsdbBridgeIid, transaction); + if (ovsdbBridge.isPresent()) { + return ovsdbBridge.get(); + } + } } return null; } @@ -74,11 +77,10 @@ public class OvsdbHelper { public static Node getNodeFromBridgeRef(OvsdbBridgeRef bridgeRef, DataBroker dataBroker) { InstanceIdentifier nodeIid = bridgeRef.getValue().firstIdentifierOf(Node.class); ReadTransaction transaction = dataBroker.newReadOnlyTransaction(); - Optional node = - readFromDs(LogicalDatastoreType.OPERATIONAL, nodeIid, transaction ); + Optional node = readFromDs(LogicalDatastoreType.OPERATIONAL, nodeIid, transaction); if (node.isPresent()) { if (node.get() instanceof Node) { - return (Node)node.get(); + return (Node) node.get(); } } return null; @@ -87,8 +89,8 @@ public class OvsdbHelper { public static OvsdbTerminationPointAugmentation getOvsdbTerminationPoint( InstanceIdentifier tpIid, DataBroker dataBroker) { ReadTransaction transaction = dataBroker.newReadOnlyTransaction(); - Optional ovsdbTp = - readFromDs(LogicalDatastoreType.OPERATIONAL, tpIid, transaction ); + Optional + ovsdbTp = readFromDs(LogicalDatastoreType.OPERATIONAL, tpIid, transaction); if (ovsdbTp.isPresent()) { return ovsdbTp.get(); } @@ -135,8 +137,8 @@ public class OvsdbHelper { return tunnelType.getTunnelPrefix() + bridge.getBridgeName().getValue(); } - public static OvsdbTerminationPointAugmentation buildOvsdbTerminationPointAugmentation(OvsdbBridgeAugmentation bridge, - List options, AbstractTunnelType tunnelType) { + public static OvsdbTerminationPointAugmentation buildOvsdbTerminationPointAugmentation( + OvsdbBridgeAugmentation bridge, List options, AbstractTunnelType tunnelType) { OvsdbTerminationPointAugmentationBuilder ovsdbTpBuilder = new OvsdbTerminationPointAugmentationBuilder(); ovsdbTpBuilder.setName(generateTpName(bridge, tunnelType)); ovsdbTpBuilder.setOptions(options); @@ -180,28 +182,28 @@ public class OvsdbHelper { } /** - * Get the manager node for this bridge node + * Get the manager node for this bridge node. * - * @param bridge - * @param dataBroker - * @return The {@link OvsdbBridgAugmentation} for the manager node, null + * @param bridge the bridge node + * @param dataBroker the {@link DataBroker} + * @return The {@link OvsdbBridgeAugmentation} for the manager node, null * if not found or if it already is the manager node */ public static OvsdbNodeAugmentation getManagerNode(OvsdbBridgeAugmentation bridge, DataBroker dataBroker) { OvsdbNodeRef bareIId = bridge.getManagedBy(); - if(bareIId != null) { - if(bareIId.getValue().getTargetType().equals(Node.class)) { + if (bareIId != null) { + if (bareIId.getValue().getTargetType().equals(Node.class)) { ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction(); InstanceIdentifier iid = (InstanceIdentifier) bareIId.getValue(); Optional nodeOptional = readFromDs(LogicalDatastoreType.OPERATIONAL, iid, transaction); - if(nodeOptional.isPresent() - && nodeOptional.get().getAugmentation(OvsdbNodeAugmentation.class) != null) { + if (nodeOptional.isPresent() + && nodeOptional.get().getAugmentation(OvsdbNodeAugmentation.class) != null) { return nodeOptional.get().getAugmentation(OvsdbNodeAugmentation.class); } else { - LOG.warn("Could not find ovsdb-node for connection for {}",bridge); + LOG.warn("Could not find ovsdb-node for connection for {}", bridge); } } else { - LOG.warn("Bridge 'managedBy' non-ovsdb-node. bridge {} getManagedBy() {}",bridge,bareIId.getValue()); + LOG.warn("Bridge 'managedBy' non-ovsdb-node. bridge {} getManagedBy() {}", bridge, bareIId.getValue()); } } else { LOG.debug("Bridge 'managedBy' is null. bridge {}",bridge); @@ -211,8 +213,7 @@ public class OvsdbHelper { public static Node getTopologyNode(InstanceIdentifier nodeIid, DataBroker dataBroker) { ReadTransaction transaction = dataBroker.newReadOnlyTransaction(); - Optional nodeOptional = - readFromDs(LogicalDatastoreType.OPERATIONAL, nodeIid, transaction ); + Optional nodeOptional = readFromDs(LogicalDatastoreType.OPERATIONAL, nodeIid, transaction); if (nodeOptional.isPresent()) { return nodeOptional.get(); } @@ -223,13 +224,13 @@ public class OvsdbHelper { * Use OVSDB CRUD to create any missing tunnels on a given * Inventory Node. * - * @param nodeIid - * @param node - * @param tunnelType + * @param nodeIid the node instance identifier + * @param node the inventory node + * @param tunnelType the tunnel type + * @param dataBroker the {@link DataBroker} */ public static void createTunnelPort(InstanceIdentifier nodeIid, Node node, AbstractTunnelType tunnelType, DataBroker dataBroker) { - ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction(); OvsdbBridgeAugmentation bridge = node.getAugmentation(OvsdbBridgeAugmentation.class); if (bridge == null) { LOG.warn("No OvsdbBridgeAugmentationfor Node {}", node); @@ -237,20 +238,19 @@ public class OvsdbHelper { } OvsdbNodeAugmentation managerNode = getManagerNode(bridge, dataBroker); - if(managerNode == null) { + if (managerNode == null) { LOG.warn("Couldn't create tunnel port for Node {}, no manager", node); return; } List options = tunnelType.getOptions(); - OvsdbTerminationPointAugmentation ovsdbTp = - buildOvsdbTerminationPointAugmentation(bridge,options, tunnelType); + OvsdbTerminationPointAugmentation ovsdbTp = buildOvsdbTerminationPointAugmentation(bridge, options, tunnelType); List tps = buildTerminationPoints(bridge,ovsdbTp, tunnelType); - OvsdbBridgeAugmentation ovsdbBridgeAugmentation = - buildOvsdbBridgeAugmentation(bridge,managerNode); + OvsdbBridgeAugmentation ovsdbBridgeAugmentation = buildOvsdbBridgeAugmentation(bridge,managerNode); Node configNode = getNode(node, tps,ovsdbBridgeAugmentation); LOG.info("About to write nodeId {} node {}",nodeIid,configNode); - transaction.put(LogicalDatastoreType.CONFIGURATION, nodeIid, configNode); - submitToDs(transaction); + ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction(); + rwTx.merge(LogicalDatastoreType.CONFIGURATION, nodeIid, configNode); + submitToDs(rwTx); }