ovsdb enable checkstyle on error
[ovsdb.git] / southbound / southbound-impl / src / main / java / org / opendaylight / ovsdb / southbound / transactions / md / OvsdbQueueUpdateCommand.java
index f45c251a4f878872da7f2c71ca4520d91c8f2d8f..04fe90bebacb8331cf1bb07c24f25b6edafb136e 100644 (file)
@@ -8,13 +8,13 @@
 
 package org.opendaylight.ovsdb.southbound.transactions.md;
 
+import com.google.common.base.Optional;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Map.Entry;
-
+import java.util.Set;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
@@ -30,6 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.Queues;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QueuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.QueuesKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesExternalIds;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesExternalIdsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.queues.QueuesExternalIdsKey;
@@ -42,8 +43,6 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
 public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand {
     private static final Logger LOG = LoggerFactory.getLogger(OvsdbQueueUpdateCommand.class);
 
@@ -75,8 +74,6 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand {
      * </p>
      *
      * @param transaction the {@link ReadWriteTransaction}
-     * @param updatedQueueRows updated {@link Queue} rows
-
      */
     private void updateQueue(ReadWriteTransaction transaction) {
 
@@ -85,18 +82,14 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand {
         if (ovsdbNode.isPresent()) {
             for (Entry<UUID, Queue> entry : updatedQueueRows.entrySet()) {
                 Queue queue = entry.getValue();
-                Queue oldQueue = oldQueueRows.get(entry.getKey());
                 QueuesBuilder queuesBuilder = new QueuesBuilder();
                 queuesBuilder.setQueueId(new Uri(getQueueId(queue)));
                 queuesBuilder.setQueueUuid(new Uuid(entry.getKey().toString()));
                 Collection<Long> dscp = queue.getDscpColumn().getData();
                 if (!dscp.isEmpty()) {
-                    try {
-                        queuesBuilder.setDscp(new Short(dscp.iterator().next().toString()));
-                    } catch (NumberFormatException e) {
-                        queuesBuilder.setDscp(new Short("0"));
-                    }
+                    queuesBuilder.setDscp(dscp.iterator().next().shortValue());
                 }
+                Queue oldQueue = oldQueueRows.get(entry.getKey());
                 setOtherConfig(transaction, queuesBuilder, oldQueue, queue, nodeIId);
                 setExternalIds(transaction, queuesBuilder, oldQueue, queue, nodeIId);
 
@@ -111,14 +104,22 @@ public class OvsdbQueueUpdateCommand extends AbstractTransactionCommand {
         }
     }
 
+    @SuppressWarnings("unchecked")
     private String getQueueId(Queue queue) {
         if (queue.getExternalIdsColumn() != null
                 && queue.getExternalIdsColumn().getData() != null
-                && queue.getExternalIdsColumn().getData().containsKey(SouthboundConstants.QUEUE_ID_EXTERNAL_ID_KEY)) {
-            return queue.getExternalIdsColumn().getData().get(SouthboundConstants.QUEUE_ID_EXTERNAL_ID_KEY);
-        } else {
-            return SouthboundConstants.QUEUE_URI_PREFIX + "://" + queue.getUuid().toString();
+                && queue.getExternalIdsColumn().getData().containsKey(SouthboundConstants.IID_EXTERNAL_ID_KEY)) {
+            InstanceIdentifier<Queues> queueIid =
+                    (InstanceIdentifier<Queues>) SouthboundUtil.deserializeInstanceIdentifier(
+                            queue.getExternalIdsColumn().getData().get(SouthboundConstants.IID_EXTERNAL_ID_KEY));
+            if (queueIid != null) {
+                QueuesKey queuesKey = queueIid.firstKeyOf(Queues.class);
+                if (queuesKey != null) {
+                    return queuesKey.getQueueId().getValue();
+                }
+            }
         }
+        return SouthboundConstants.QUEUE_URI_PREFIX + "://" + queue.getUuid().toString();
     }
 
     private void setOtherConfig(ReadWriteTransaction transaction,