X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=southbound%2Fsouthbound-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fsouthbound%2Ftransactions%2Fmd%2FOvsdbQueueUpdateCommand.java;h=04fe90bebacb8331cf1bb07c24f25b6edafb136e;hb=50e7f939993fa9da3c80a1c8d166629a4868af9c;hp=f45c251a4f878872da7f2c71ca4520d91c8f2d8f;hpb=3993b5bcc79f28d73a7cfbc7b32e9c976a68b450;p=ovsdb.git diff --git a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java index f45c251a4..04fe90beb 100644 --- a/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java +++ b/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbQueueUpdateCommand.java @@ -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 { *

* * @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 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 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 queueIid = + (InstanceIdentifier) 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,