Issue description root@cic-1:~# date Tue Aug 28 12:23:08 UTC 2018 root@cic-1:~# Update-1 root@cic-1:~# neutron bgpvpn-create --export-targets 100:1 --import-targets 100:11 -- --route-distinguishers list=true 100:21 100:22 100:23 100:24 --name VPN2 --type l3 Created a new bgpvpn: +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | 100:1 | | id | 20c216d0-455f-4c72-bd0e-18510b591afc | | import_targets | 100:11 | | name | VPN2 | | networks | | | route_distinguishers | 100:21 | | | 100:22 | | | 100:23 | | | 100:24 | | route_targets | | | routers | | | tenant_id | b0bb63eaae6b4a64980490b59a37a3d9 | | type | l3 | +----------------------+--------------------------------------+ root@cic-1:~# cli>display vpn-config Displaying VPN config for all VPNs To display VPN config for a particular VPN, use the following syntax Usage:display vpn-config [-vid/--vpnid ] VPN ID Tenant ID RD Import-RTs Export-RTs Subnet IDs ------------------------------------------------------------------------------------ 20c216d0-455f-4c72-bd0e-18510b591afc b0bb63ea-ae6b-4a64-9804-90b59a37a3d9 [100:24, 100:23, 100:22, 100:21] [100:11] [100:1] " " ---------------------------------------- cli> Update-2 root@cic-1:~# neutron bgpvpn-update VPN2 -- --route-distinguishers list=true 100:21 100:22 Updated bgpvpn: VPN2 root@cic-1:~# neutron bgpvpn-show VPN2 +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | 100:1 | | id | 20c216d0-455f-4c72-bd0e-18510b591afc | | import_targets | 100:11 | | name | VPN2 | | networks | | | route_distinguishers | 100:21 | | | 100:22 | | route_targets | | | routers | | | tenant_id | b0bb63eaae6b4a64980490b59a37a3d9 | | type | l3 | +----------------------+--------------------------------------+ root@cic-1:~# cli>display vpn-config Displaying VPN config for all VPNs To display VPN config for a particular VPN, use the following syntax Usage:display vpn-config [-vid/--vpnid ] VPN ID Tenant ID RD Import-RTs Export-RTs Subnet IDs ------------------------------------------------------------------------------------ 20c216d0-455f-4c72-bd0e-18510b591afc b0bb63ea-ae6b-4a64-9804-90b59a37a3d9 [100:24, 100:23, 100:22, 100:21] [100:11] [100:1] " " ---------------------------------------- cli> Update-3: root@cic-1:~# neutron bgpvpn-update VPN2 --route-distinguishers 100:21 Updated bgpvpn: VPN2 root@cic-1:~# neutron bgpvpn-show VPN2 +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | 100:1 | | id | 20c216d0-455f-4c72-bd0e-18510b591afc | | import_targets | 100:11 | | name | VPN2 | | networks | | | route_distinguishers | 100:21 | | route_targets | | | routers | | | tenant_id | b0bb63eaae6b4a64980490b59a37a3d9 | | type | l3 | +----------------------+--------------------------------------+ root@cic-1:~# cli>display vpn-config Displaying VPN config for all VPNs To display VPN config for a particular VPN, use the following syntax Usage:display vpn-config [-vid/--vpnid ] VPN ID Tenant ID RD Import-RTs Export-RTs Subnet IDs ------------------------------------------------------------------------------------ 20c216d0-455f-4c72-bd0e-18510b591afc b0bb63ea-ae6b-4a64-9804-90b59a37a3d9 [100:24, 100:23, 100:22, 100:21] [100:11] [100:1] " " ---------------------------------------- cli> Update-4: root@cic-1:~# neutron bgpvpn-update VPN2 --route-distinguishers 100:28 Updated bgpvpn: VPN2 root@cic-1:~# neutron bgpvpn-show VPN2 +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | 100:1 | | id | 20c216d0-455f-4c72-bd0e-18510b591afc | | import_targets | 100:11 | | name | VPN2 | | networks | | | route_distinguishers | 100:28 | | route_targets | | | routers | | | tenant_id | b0bb63eaae6b4a64980490b59a37a3d9 | | type | l3 | +----------------------+--------------------------------------+ root@cic-1:~# cli>display vpn-config Displaying VPN config for all VPNs To display VPN config for a particular VPN, use the following syntax Usage:display vpn-config [-vid/--vpnid ] VPN ID Tenant ID RD Import-RTs Export-RTs Subnet IDs ------------------------------------------------------------------------------------ 20c216d0-455f-4c72-bd0e-18510b591afc b0bb63ea-ae6b-4a64-9804-90b59a37a3d9 [100:24, 100:23, 100:22, 100:21] [100:11] [100:1] " " ---------------------------------------- root@cic-1:~# neutron bgpvpn-update VPN2 -- --route-distinguishers list=true 100:21 100:22 100:23 100:24 100:29 Updated bgpvpn: VPN2 root@cic-1:~# neutron bgpvpn-show VPN2 +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | export_targets | 100:1 | | id | 20c216d0-455f-4c72-bd0e-18510b591afc | | import_targets | 100:11 | | name | VPN2 | | networks | | | route_distinguishers | 100:21 | | | 100:22 | | | 100:23 | | | 100:24 | | | 100:29 | | route_targets | | | routers | | | tenant_id | b0bb63eaae6b4a64980490b59a37a3d9 | | type | l3 | +----------------------+--------------------------------------+ root@cic-1:~# cli>display vpn-config Displaying VPN config for all VPNs To display VPN config for a particular VPN, use the following syntax Usage:display vpn-config [-vid/--vpnid ] VPN ID Tenant ID RD Import-RTs Export-RTs Subnet IDs ------------------------------------------------------------------------------------ 20c216d0-455f-4c72-bd0e-18510b591afc b0bb63ea-ae6b-4a64-9804-90b59a37a3d9 [100:24, 100:23, 100:22, 100:21] [100:11] [100:1] " " ---------------------------------------- cli> 2018-08-28T11:39:35,667 | TRACE | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | Update Bgpvpn : key: KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.Bgpvpns, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn[key=BgpvpnKey [_uuid=Uuid [_value=56997562-4b15-4d24-914c-3bb4803b699a]]]]}, value=Bgpvpn{getExportTargets=[100:3], getImportTargets=[100:31], getName=VPN2, getNetworks=[], getRouteDistinguishers=[100:21], getRouteTargets=[], getRouters=[], getStatus=ACTIVE, getTenantId=Uuid [_value=b0bb63ea-ae6b-4a64-9804-90b59a37a3d9], getType=class org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.BgpvpnTypeL3, getUuid=Uuid [_value=56997562-4b15-4d24-914c-3bb4803b699a], isAdminStateUp=true, isAutoAggregate=false, augmentations={}} 2018-08-28T11:39:35,667 | ERROR | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | The existing RD 100:28 not present in the updatedRDsList:[100:21] 2018-08-28T11:39:35,667 | ERROR | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | Error while processing Update Bgpvpn. java.lang.UnsupportedOperationException: The existing RD not present in the updatedRDsList at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.handleVpnInstanceUpdate(NeutronBgpvpnChangeListener.java:211) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.update(NeutronBgpvpnChangeListener.java:181) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.update(NeutronBgpvpnChangeListener.java:44) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:178) [272:org.opendaylight.genius.mdsalutil-api:0.4.3.SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?] at java.lang.Thread.run(Thread.java:748) [?:?] 2018-08-28T11:27:28,156 | TRACE | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | Update Bgpvpn : key: KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.Bgpvpns, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn[key=BgpvpnKey [_uuid=Uuid [_value=56997562-4b15-4d24-914c-3bb4803b699a]]]]}, value=Bgpvpn{getExportTargets=[100:3], getImportTargets=[100:31], getName=VPN2, getNetworks=[], getRouteDistinguishers=[100:28, 100:27, 100:26, 100:25], getRouteTargets=[], getRouters=[], getStatus=ACTIVE, getTenantId=Uuid [_value=b0bb63ea-ae6b-4a64-9804-90b59a37a3d9], getType=class org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.BgpvpnTypeL3, getUuid=Uuid [_value=56997562-4b15-4d24-914c-3bb4803b699a], isAdminStateUp=true, isAutoAggregate=false, augmentations={}} 2018-08-28T12:33:11,709 | TRACE | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | Update Bgpvpn : key: KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.Bgpvpns, org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn[key=BgpvpnKey [_uuid=Uuid [_value=20c216d0-455f-4c72-bd0e-18510b591afc]]]]}, value=Bgpvpn{getExportTargets=[100:1], getImportTargets=[100:11], getName=VPN2, getNetworks=[], getRouteDistinguishers=[100:24, 100:23, 100:22, 100:21, 100:29], getRouteTargets=[], getRouters=[], getStatus=ACTIVE, getTenantId=Uuid [_value=b0bb63ea-ae6b-4a64-9804-90b59a37a3d9], getType=class org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.BgpvpnTypeL3, getUuid=Uuid [_value=20c216d0-455f-4c72-bd0e-18510b591afc], isAdminStateUp=true, isAutoAggregate=false, augmentations={}} 2018-08-28T12:33:11,710 | ERROR | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | The existing RD 100:28 not present in the updatedRDsList:[100:24, 100:23, 100:22, 100:21, 100:29] 2018-08-28T12:33:11,710 | ERROR | org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.bgpvpns.rev150903.bgpvpns.attributes.bgpvpns.Bgpvpn_AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0 | NeutronBgpvpnChangeListener | 373 - org.opendaylight.netvirt.neutronvpn-impl - 0.6.3.SNAPSHOT | Error while processing Update Bgpvpn. java.lang.UnsupportedOperationException: The existing RD not present in the updatedRDsList at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.handleVpnInstanceUpdate(NeutronBgpvpnChangeListener.java:211) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.update(NeutronBgpvpnChangeListener.java:181) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.netvirt.neutronvpn.NeutronBgpvpnChangeListener.update(NeutronBgpvpnChangeListener.java:44) [373:org.opendaylight.netvirt.neutronvpn-impl:0.6.3.SNAPSHOT] at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:178) [272:org.opendaylight.genius.mdsalutil-api:0.4.3.SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?] at java.lang.Thread.run(Thread.java:748) [?:?]