Fix so that operational store correctly removes controller entries
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)
commit91ca0c945326a28195d7c26a87b7f7065fc3224a
treed3d977e27ee39a177e3ae36efcd219602748dc89
parent680ddefbd862a197b2506a7cad64ea066d7f058a
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>