Fix so that operational store correctly removes controller entries 52/18152/6
authorEd Warnicke <eaw@cisco.com>
Sat, 11 Apr 2015 22:13:25 +0000 (15:13 -0700)
committerEd Warnicke <eaw@cisco.com>
Mon, 13 Apr 2015 17:37:32 +0000 (10:37 -0700)
commitf9cb8d810537e2a757fde1d1a8d1f39a526e5bd5
tree3f13cacfb39c066142544036cd55f4b65fecdf69
parent6df933d950815da77377dc128f03f43897a8adfc
Fix so that operational store correctly removes controller entries

Before, if a controller entry was removed on ovsdb, we didn't
remove it from the operational store.

This is an artifact of using *merge* rather than *put*.
Using merge is *still* a good idea for us, but what was happening
was basically this.

Say we got a report in the operational store of

[controller1, controller2]

which we dutifully merged.

Then we got a report of
[controller2]

when that is *merged*... the controller1 entry is left dangling,
because its a *merge*.  To compensate, we have to be *very*
specific about wanting to remove controller1.

This is accomplished by factoring out an OvsdbControllerUpdateCommand
and OvsdbControllerRemoveCommand.

Change-Id: I2e38e0e175cef5f848f28501cfaeecc1cb162151
Signed-off-by: Ed Warnicke <eaw@cisco.com>
library/src/main/java/org/opendaylight/ovsdb/lib/schema/typed/TyperUtils.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommand.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerRemovedCommand.java [new file with mode: 0644]
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbControllerUpdateCommand.java [new file with mode: 0644]
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbOperationalCommandAggregator.java