Description of problem: Currently any REST call to OpenDaylight Neutron Northbound to create/update/delete a resource does not invoke any check or validation that dependent resources already exist. For example, a port create call depends on a network to exist for that port to be placed on. Without any check, that network could be missing and the port create call would return 200 OK. In the past we have relied on the networking-odl v2 driver to handle these dependency checks, and handle out of order create operations with the journaling mechanism. However, the validation is better served in Neutron NB which then allows for errors to be raised with the validation being done synchronously to the REST API call.
Just FTR: I'm making progress with this upstream (NEUTRON-158, c/72372) - this is happening.
The "technical ground work" for this is meanwhile fully completed; I have created a sort of "framework" which makes it easy to add areAllDependenciesAvailable() methods to the INeutronCRUD implementations in the transcriber. As of right now this is done (only) for SecurityRule, which needs SecurityGroup from rule’s securityRuleGroupID and securityRemoteGroupID. To "finish" this feature just requires implementing this new areAllDependenciesAvailable() for all Neutron entities. I'm not familiar enough with the full details of the Neutron data model to have a precise idea of all relationships which need to be dependency checked, and have failed to get anyone to help with writing a (mini) "spec" fully detailing the requirement here. Therefore now re-assigning this issue to Vishal who internally kindly offered to help.
As per depreciation notice [1], closing this bug. Please reopen if relevant for RHOSP13, as this is the only version shipping ODL. [1] https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/14/html-single/release_notes/index#deprecated_functionality