As discussed at our nova meetings, reorganize the juno specs into three directories: - proposed: things proposed which weren't approved - approved: things we approved but didn't implement - implemented: things approved and implemented The first I suspect is the most controversial. I've done this because I worry about the case where a future developer wants to pick up something dropped by a previous developer, but has trouble finding previous proposed specifications on the topic. Note that the actual proposed specs for Juno are adding in a later commit. Change-Id: Idcf55ca37a83d7098dcb7c2971240c4e8fd23dc8
2.0 KiB
Refactor network API
https://blueprints.launchpad.net/nova/+spec/refactor-network-api
To have a common API network base with all required methods so neutron / nova network api can inherit from.
Problem description
Right now network api's do not inherit from a common base, and if the functionality is not implemented developers may forget to add the method. The situation is that every time that functionality want to be accessed from the API an exception is thrown due to missing methods and not clear error is returned.
Proposed change
The idea is to create a network_base API that define all the possible methods and just throw NotImplementedError, so next time the user will see the proper error message.
Also fields like sentinel object could be directly inherited in the base api.
Alternatives
The current way to do this is to manually add the missing methods to neutronv2 api for instance. Every time someone add a new method to one api has to do the same for the others and raise NotImplementedError if not supported.
Data model impact
None
REST API impact
None
Security impact
None
Notifications impact
None
Other end user impact
None
Performance Impact
None
Other deployer impact
None
Developer impact
If developers add new methods to neutronv2 or nova-network api, they must define it first on the new network base api.
Implementation
Assignee(s)
- Primary assignee:
-
leandro-i-costantino
Work Items
- Create a base network api files that has all the public methods from current network api
Dependencies
None
Testing
None
Documentation Impact
None
References
None