Do not send bridge name in update 36/18236/1
authorEd Warnicke <eaw@cisco.com>
Tue, 14 Apr 2015 05:00:32 +0000 (22:00 -0700)
committerEd Warnicke <eaw@cisco.com>
Tue, 14 Apr 2015 05:00:32 +0000 (22:00 -0700)
It turns out...bridge name is immutable and OVSDB really doesn't
like it when you send it.

Change-Id: I8d8b16fe728ea4a386ca481624643dc260d01f29
Signed-off-by: Ed Warnicke <eaw@cisco.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/ovsdb/transact/BridgeUpdateCommand.java

index c37cfc54f79a9ad9de6ea61b75a56ad932275638..bfc4143af946543bc62501d039bd667331053fee 100644 (file)
@@ -67,16 +67,19 @@ public class BridgeUpdateCommand extends AbstractTransactCommand {
         Optional<OvsdbBridgeAugmentation> operationalBridgeOptional =
                 getOperationalState().getOvsdbBridgeAugmentation(iid);
         Bridge bridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class);
-        setName(bridge, ovsdbManagedNode,operationalBridgeOptional);
         setFailMode(bridge, ovsdbManagedNode);
         setDataPathType(bridge, ovsdbManagedNode);
         setOpenDaylightIidExternalId(bridge, iid);
         if (!operationalBridgeOptional.isPresent()) {
+            setName(bridge, ovsdbManagedNode,operationalBridgeOptional);
             setPort(transaction, bridge, ovsdbManagedNode);
             transaction.add(op.insert(bridge));
         } else if (bridge.getName() != null) {
+            // Name is immutable, and so we *can't* update it.  So we use extraBridge for the schema stuff
+            Bridge extraBridge = TyperUtils.getTypedRowWrapper(transaction.getDatabaseSchema(), Bridge.class);
+            extraBridge.setName("");
             transaction.add(op.update(bridge)
-                    .where(bridge.getNameColumn().getSchema().opEqual(bridge.getName()))
+                    .where(extraBridge.getNameColumn().getSchema().opEqual(bridge.getName()))
                     .build());
         }
     }