-
Improvement
-
Resolution: Unresolved
-
Medium
-
None
The Neutron Northbound API currently (almost) always just returns an "OK" (HTTP 200) reply. Any errors that occur when the requested resource creation/update did not succeed, including missing dependency (but also other internal problems), is "lost" and not communicated to the caller (and only appears in the log).
The technical explanation for this is ODL general architecture based on decoupled asynchronous listening on a shared data model, and the lack of any "feedback loop" between Neutron and e.g. Netvirt (or, in theory, other listeners to the Neutron model).
The goal of this issue is to provide feedback to callers for a first set of missing dependencies. It will not include work to address the more general problem of error handling and feedback for other internal problems than some dependencies.
Events that are originally ordered in the OpenStack Journal can get out of order because (a) the clustered driver reading from the DB could read out of order; (b) the driver sending to clustered load balanced ODL could cause events to be stored out of order in the ODL data store. This will throw off applications such as netvirt which do not expect this.
In order to compensate for this, we will make the ODL Neutron project return an HTTP error other than 2xx range code if its dependencies are not, yet, available in the data store. For example, in the case of NEUTRON-149 a security rule which is written before a security group should be rejected. The validation happens, only, at the level of the Neutron model object data objects, not the internal netvirt or other models which eventually have created by the listeners in netvirt or other. The fact that e.g. a security rule requires a group with a certain ID (and all others like it), will be hard-coded in neutron.
The initial implementation will focus on doing above for Create events. If at all and how to apply this to Update and Delete will be considered later under future issues with refined requirements.
This work in ODL requires no changes to t the existing networking ODL driver code. Therefore we are not anticipating to make this a configurable optional feature via a switch, but just have this new behaviour active as the related changes will be merged.
- blocks
-
NEUTRON-149 Security group and security rule events are not synced
- Open