Networking configuration data and the methods that work with this data are spread throughout the existing code base. As a consequence there is some code duplication. This makes it harder to understand and extend this functionality than it should.
All database queries will be moved from NetworkManager to the appropriate objects.
No changes should be required. All changes are to the internal representation of network configuration objects.
Database calls will all be moved into the appropriate object classes.
The following objects (and their corresponding Collections) will be modified:
- NetworkGroup (objects/network_group.py)
- IPAddr (objects/ip_address.py)
- IPAddrRange (objects/ip_address.py)
- NIC (objects/interface.py)
- Bond (objects/bond.py)
- NIC and Bond network assignments (does not exist in current objects layer)
No changes to the REST API are required.
No changes should be required to Fuel Client. The APIs with which it interacts will remain unchanged.
This change will be transparent to Fuel Library. The network information will be serialized by Nailgun in the same format as it is now.
Leave it the same.
In NetworkManager developers must use object methods instead of direct database queries.
Developer documentation describing how the proxy interface works will need to be written.
- NetworkManager and its subclasses contains no database queries