TSC-101: Fixup Augmentable and Identifiable methods change
[ovsdb.git] / southbound / southbound-impl / src / main / java / org / opendaylight / ovsdb / southbound / ovsdb / transact / TerminationPointCreateCommand.java
index 56eeed40b053e29d2b2038af35d390f23f95070d..de0758134941d5c12794189b70278f24cf75fabf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016 Brocade Communications Systems, Inc. and others.  All rights reserved.
+ * Copyright © 2015, 2017 Brocade Communications Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -10,6 +10,8 @@ package org.opendaylight.ovsdb.southbound.ovsdb.transact;
 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
 import static org.opendaylight.ovsdb.southbound.SouthboundUtil.schemaMismatchLog;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -17,12 +19,10 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.concurrent.ExecutionException;
 import java.util.Set;
-
+import java.util.concurrent.ExecutionException;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException;
@@ -34,6 +34,7 @@ import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils;
 import org.opendaylight.ovsdb.schema.openvswitch.Bridge;
 import org.opendaylight.ovsdb.schema.openvswitch.Interface;
 import org.opendaylight.ovsdb.schema.openvswitch.Port;
+import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec;
 import org.opendaylight.ovsdb.southbound.SouthboundConstants;
 import org.opendaylight.ovsdb.southbound.SouthboundMapper;
 import org.opendaylight.ovsdb.southbound.SouthboundProvider;
@@ -52,37 +53,33 @@ 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.ovsdb.port._interface.attributes.Trunks;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
-import org.opendaylight.yangtools.yang.binding.DataObject;
 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.Sets;
-import com.google.common.util.concurrent.CheckedFuture;
-
 public class TerminationPointCreateCommand implements TransactCommand {
 
     private static final Logger LOG = LoggerFactory.getLogger(TerminationPointCreateCommand.class);
 
     @Override
     public void execute(TransactionBuilder transaction, BridgeOperationalState state,
-                        AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> events) {
+            DataChangeEvent events, InstanceIdentifierCodec instanceIdentifierCodec) {
         execute(transaction, state, TransactUtils.extractCreated(events, OvsdbTerminationPointAugmentation.class),
-                TransactUtils.extractCreatedOrUpdated(events, Node.class));
+                TransactUtils.extractCreatedOrUpdated(events, Node.class), instanceIdentifierCodec);
     }
 
     @Override
     public void execute(TransactionBuilder transaction, BridgeOperationalState state,
-                        Collection<DataTreeModification<Node>> modifications) {
-        execute(transaction, state, TransactUtils.extractCreated(modifications, OvsdbTerminationPointAugmentation.class),
-                TransactUtils.extractCreatedOrUpdated(modifications, Node.class));
+            Collection<DataTreeModification<Node>> modifications, InstanceIdentifierCodec instanceIdentifierCodec) {
+        execute(transaction, state,
+                TransactUtils.extractCreated(modifications, OvsdbTerminationPointAugmentation.class),
+                TransactUtils.extractCreatedOrUpdated(modifications, Node.class), instanceIdentifierCodec);
     }
 
     private void execute(TransactionBuilder transaction, BridgeOperationalState state,
-                         Map<InstanceIdentifier<OvsdbTerminationPointAugmentation>,
-                                 OvsdbTerminationPointAugmentation>
-                                 createdTerminationPoints, Map<InstanceIdentifier<Node>, Node> nodes) {
+            Map<InstanceIdentifier<OvsdbTerminationPointAugmentation>, OvsdbTerminationPointAugmentation>
+                    createdTerminationPoints,
+            Map<InstanceIdentifier<Node>, Node> nodes, InstanceIdentifierCodec instanceIdentifierCodec) {
         for (Entry<InstanceIdentifier<OvsdbTerminationPointAugmentation>, OvsdbTerminationPointAugmentation> entry :
                 createdTerminationPoints.entrySet()) {
             OvsdbTerminationPointAugmentation terminationPoint = entry.getValue();
@@ -93,25 +90,26 @@ public class TerminationPointCreateCommand implements TransactCommand {
                     state.getBridgeTerminationPoint(terminationPointIid);
             if (!terminationPointOptional.isPresent()) {
                 // Configure interface
-                String interfaceUuid = "Interface_" + SouthboundMapper.getRandomUUID();
+                String interfaceUuid = "Interface_" + SouthboundMapper.getRandomUuid();
                 Interface ovsInterface =
                         TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Interface.class);
                 createInterface(terminationPoint, ovsInterface);
                 transaction.add(op.insert(ovsInterface).withId(interfaceUuid));
 
-                stampInstanceIdentifier(transaction, entry.getKey(), ovsInterface.getName());
+                stampInstanceIdentifier(transaction, entry.getKey(), ovsInterface.getName(), instanceIdentifierCodec);
 
                 // Configure port with the above interface details
-                String portUuid = "Port_" + SouthboundMapper.getRandomUUID();
+                String portUuid = "Port_" + SouthboundMapper.getRandomUuid();
                 Port port = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Port.class);
                 createPort(terminationPoint, port, interfaceUuid);
                 transaction.add(op.insert(port).withId(portUuid));
-
+                LOG.info("Created Termination Point : {} with Uuid : {}",
+                        terminationPoint.getName(),portUuid);
                 //Configure bridge with the above port details
                 Bridge bridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class);
                 if (getBridge(entry.getKey(), nodes) != null) {
                     bridge.setName(getBridge(entry.getKey(), nodes).getBridgeName().getValue());
-                    bridge.setPorts(Sets.newHashSet(new UUID(portUuid)));
+                    bridge.setPorts(Collections.singleton(new UUID(portUuid)));
 
                     transaction.add(op.mutate(bridge)
                             .addMutation(bridge.getPortsColumn().getSchema(),
@@ -153,7 +151,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
             final Port port, final String interfaceUuid) {
 
         port.setName(terminationPoint.getName());
-        port.setInterfaces(Sets.newHashSet(new UUID(interfaceUuid)));
+        port.setInterfaces(Collections.singleton(new UUID(interfaceUuid)));
         createPortOtherConfig(terminationPoint, port);
         createPortVlanTag(terminationPoint, port);
         createPortVlanTrunk(terminationPoint, port);
@@ -167,7 +165,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
 
         Long ofPort = terminationPoint.getOfport();
         if (ofPort != null) {
-            ovsInterface.setOpenFlowPort(Sets.newHashSet(ofPort));
+            ovsInterface.setOpenFlowPort(Collections.singleton(ofPort));
         }
     }
 
@@ -177,7 +175,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
 
         Integer ofPortRequest = terminationPoint.getOfportRequest();
         if (ofPortRequest != null) {
-            ovsInterface.setOpenFlowPortRequest(Sets.newHashSet(ofPortRequest.longValue()));
+            ovsInterface.setOpenFlowPortRequest(Collections.singleton(ofPortRequest.longValue()));
         }
     }
 
@@ -318,7 +316,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
         if (terminationPoint.getVlanMode() != null) {
             Set<String> portVlanMode = new HashSet<>();
             VlanMode modelVlanMode = terminationPoint.getVlanMode();
-            portVlanMode.add(SouthboundConstants.VLANMODES.values()[modelVlanMode.getIntValue() - 1].getMode());
+            portVlanMode.add(SouthboundConstants.VlanModes.values()[modelVlanMode.getIntValue() - 1].getMode());
             port.setVlanMode(portVlanMode);
         }
     }
@@ -343,7 +341,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
         InstanceIdentifier<Node> nodeIid = key.firstIdentifierOf(Node.class);
         if (nodes != null && nodes.get(nodeIid) != null) {
             Node node = nodes.get(nodeIid);
-            bridge = node.getAugmentation(OvsdbBridgeAugmentation.class);
+            bridge = node.augmentation(OvsdbBridgeAugmentation.class);
             if (bridge == null) {
                 ReadOnlyTransaction transaction = SouthboundProvider.getDb().newReadOnlyTransaction();
                 CheckedFuture<Optional<Node>, ReadFailedException> future =
@@ -351,7 +349,7 @@ public class TerminationPointCreateCommand implements TransactCommand {
                 try {
                     Optional<Node> nodeOptional = future.get();
                     if (nodeOptional.isPresent()) {
-                        bridge = nodeOptional.get().getAugmentation(OvsdbBridgeAugmentation.class);
+                        bridge = nodeOptional.get().augmentation(OvsdbBridgeAugmentation.class);
                     }
                 } catch (InterruptedException | ExecutionException e) {
                     LOG.warn("Error reading from datastore",e);
@@ -362,15 +360,14 @@ public class TerminationPointCreateCommand implements TransactCommand {
         return bridge;
     }
 
-    public static void stampInstanceIdentifier(TransactionBuilder transaction, InstanceIdentifier
-            <OvsdbTerminationPointAugmentation> iid, String interfaceName) {
+    public static void stampInstanceIdentifier(TransactionBuilder transaction,
+            InstanceIdentifier<OvsdbTerminationPointAugmentation> iid, String interfaceName,
+            InstanceIdentifierCodec instanceIdentifierCodec) {
         Port port = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Port.class);
         port.setName(interfaceName);
-        port.setExternalIds(Collections.<String,String>emptyMap());
-        Mutate mutate = TransactUtils.stampInstanceIdentifierMutation(transaction,
-                iid,
-                port.getSchema(),
-                port.getExternalIdsColumn().getSchema());
+        port.setExternalIds(Collections.emptyMap());
+        Mutate mutate = TransactUtils.stampInstanceIdentifierMutation(transaction, iid, port.getSchema(),
+                port.getExternalIdsColumn().getSchema(), instanceIdentifierCodec);
         transaction.add(mutate
                 .where(port.getNameColumn().getSchema().opEqual(interfaceName))
                 .build());