Avoid Bulk Topology Read During Reconciliation. 63/82563/11
authorChetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Wed, 19 Jun 2019 06:12:32 +0000 (11:42 +0530)
committerAnil Vishnoi <vishnoianil@gmail.com>
Mon, 8 Jul 2019 19:15:35 +0000 (19:15 +0000)
commit366d2194f13d7a28861aa481fc10de9797d90430
treeb2042252967b4b0e5d8f1d210dbfc925045abcea
parente8a224066efb626bf7ae9dc3aad3835bb1d4e58b
Avoid Bulk Topology Read During Reconciliation.

Description:
During Reconciliation, The full config network-topology DS is queried
which is not efficient. Currently, only br-int is managed in
network-toplogy config DS(by genius) which will only be resynced.

Changes are done to query only the list of bridges for a given connected
switch (configurable vi param - bridges-reconciliation-inclusion-list) from
topology config instead of querying the full topology from config DS and
filtering the bridges specific to connected Switch.Following
implementation been provided(to keep the existing behaviour)

(1) Both "bridge-reconciliation-inclusion-list" and "bridge-reconciliation-exclusion-list" are empty.
    it means it will keep the default behavior of reconciling on all bridges.
(2) Only "bridge-reconciliation-inclusion-list" has list of bridge.
    than plugin will only reconcile specified bridges.
(3) Only "bridge-reconciliation-exclusion-list" has list of bridge.
    than plugin will reconcile all the bridge, except excluding the specified bridges.
(4) Both bridge-reconciliation-inclusion-list and bridge-reconciliation-exclusion-list has bridges specified.
    this is invalid scenario, so it should log the warning saying this is not valid configuration,
    but plugin will give priority to "bridge-reconciliation-exclusion-list" and reconcile all the bridges
    except the one specified in the exclusion-list.

JIRA: OVSDB-459

Change-Id: Ife8055bcc10bcb6deb2fd8e0b5444bdf194f1460
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundConstants.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProviderConfigurator.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTask.java
southbound/southbound-impl/src/main/resources/OSGI-INF/blueprint/southbound.xml
southbound/southbound-impl/src/main/resources/initial/southbound.cfg
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/reconciliation/configuration/BridgeConfigReconciliationTaskTest.java