Bug 1550699

Summary: [Netvirt] OpenDaylight should validate resource dependencies
Product: Red Hat OpenStack Reporter: Tim Rozet <trozet>
Component: opendaylightAssignee: Vishal Thapar <vthapar>
Status: CLOSED WONTFIX QA Contact: Itzik Brown <itbrown>
Severity: high Docs Contact:
Priority: medium    
Version: 13.0 (Queens)CC: aadam, mkolesni, vorburger, vthapar
Target Milestone: Upstream M2Keywords: Triaged
Target Release: 15.0 (Stein)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: Netvirt
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1550704    

Description Tim Rozet 2018-03-01 19:46:41 UTC
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.

Comment 6 Michael Vorburger 2018-06-07 18:02:19 UTC
Just FTR: I'm making progress with this upstream (NEUTRON-158, c/72372) - this is happening.

Comment 7 Michael Vorburger 2018-07-31 13:22:46 UTC
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.

Comment 14 Franck Baudin 2019-03-06 16:17:09 UTC
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

Comment 15 Franck Baudin 2019-03-06 16:17:55 UTC
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