[OPNFLWPLUG-419] When a device is configured to to connect to a controller before the controller is started, the device may not show up in inventory Created: 27/Apr/15 Updated: 27/Sep/21 Resolved: 10/Mar/16 |
|
| Status: | Resolved |
| Project: | OpenFlowPlugin |
| Component/s: | General |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Moiz Raja | Assignee: | Kamal Rameshan |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| External issue ID: | 3064 |
| Priority: | Normal |
| Description |
|
This happens because the openflowplugin connects to the device and issues nodeUpdated notification before the InventoryManager is even started. Thus the inventory manager misses those notifications and does not add the node to inventory. This has been observed with Helium code and may no longer happen with the rewrite in Lithium. We should however add a test where we have the device pointed to the controller before it is started to ensure that this does not happen anymore. |
| Comments |
| Comment by Kamal Rameshan [ 03/Jun/15 ] |
|
This was happening in Helium as the clustered datastore was not the default. In Li, CDS was made the default and hence the odl-mdsal-broker points to odl-mdsal-clustering. OFP and other managers have a dependency on odl-mdsal-broker and hence they are not re-instantiated and re-wired. I tested installing odl-openflowplugin-all (He, and not odl-openflowplugin-all-li) and this issue was not seen. I can write an integration test, but i am lowering the priority for this one. |
| Comment by Kamal Rameshan [ 04/Jun/15 ] |
|
Had a discussion with Moiz. Seems the problem can arise in Li as well. The inventory-manager gets loaded as part of Southbound but is not guaranteed to load after openflowplugin. This seems to be a classic producer-consumer issue, where the consumer needs to be updated with the latest state if loaded later than the producer. This is true for any client apps which might be dependent on inv notifications and might get loaded (or reloaded) later than OFP. Moving this to Be. |
| Comment by Kamal Rameshan [ 10/Mar/16 ] |
|
As part of the Li design, the inventory manager does not exist. |