Hi Neutrinos, I would like to start the first bi-weekly upgrades work report.
TLDR: In order to inform community what is going on in upgrades field, we would like to start bi-weekly reporting. We would like to show progress in database resource transition to Oslo VersionedObjects. Also list of code refactoring places will be provided. Community members can take a look at the list and see if their work is not conflicting with upgrades effort. General approach: During Mitaka release cycle, we have started the journey to port database resources to Oslo VersionedObject (OVO). As first, we have chosen the Port, Subnet and Network resources. As the process is very complicated, we have divided the work to first define interface object, and then work on integration patches in core Neutron code. The NeutronDbObject base class is still evolving, and we have spent the Mitaka release cycle on working on solid base, in order to reuse the code for all derived classes. We are still working on basic OVO integration, so any help in getting the work done would be appreciated. For detailed info, please take a look at below list. We would like to finish already started patches, priority has the Port, Subnet and Network objects. If you want to contribute and port new objects to OVO, please prepare object implementation and some usage in core Neutron code. In order to see which object is already covered, please take a look at below list of existing patches. I would like to remind that agreed approach at Design Summit in Austin was, that every new resource added to neutron should have OVO implemented. Please comply, and core reviewers please take care of this requirements in patches you review. The effort to move all database resources to Oslo VersionedObject will contribute to block offline contracting migration in Ocata release. In Newton cycle we would like to have our last offline data migration. Objects merged: Subnetpool https://review.openstack.org/275789 Subnet https://review.openstack.org/264273 Port extension: Allowed address pairs https://review.openstack.org/268274/ Port extension: Extra DHCP opt https://review.openstack.org/273072/ Port extension: Port allowed address pairs https://review.openstack.org/268274 Port extension: Port security https://review.openstack.org/292178 OVO for VLAN aware VMs: https://review.openstack.org/310410 Objects under review: Network https://review.openstack.org/269658 Port https://review.openstack.org/253641 Port extension: security groups https://review.openstack.org/284738 Agent https://review.openstack.org/297887 Route, RoutePort and RouterRoute https://review.openstack.org/307964 DistributedVirtualRouter mac address https://review.openstack.org/304873/ Service Type: https://review.openstack.org/304322 Flavor and Service Profile https://review.openstack.org/306685 Integration patches merged: Integrate the port allowed address pairs VersionedObject in Neutron https://review.openstack.org/287756 Integrate the Extra Dhcp Opt VersionedObject in Neutron https://review.openstack.org/285397 Integration patches Under development: Subnet OVO https://review.openstack.org/321001 Identified usages of Subnet: * main integration with db_base_plugin and ml2 plugin * DHCP RPC usage * IPAM usage * dvr_mac_db.py * l3_db.py * extraroute_db.py Subnetpool usage: https://review.openstack.org/300056 Replace plugin class for address scope ovo https://review.openstack.org/308005 Testing: The API tests for sorting/pagination has been added for port and network https://review.openstack.org/306272 https://review.openstack.org/320980 More tests are needed for resources that use sorting/pagination on API level. Testing in gate has been covered in multinode Grenade jobs, one for legacy scenario, and the other DVR. Improvements for NeutronDbObject: * Merged: objects: support advanced criteria for get_objects: https://review.openstack.org/300055 * Merged: Standard attributes are automagically added to all relevant neutron resources in object's base class * objects: stop using internal _context attribute https://review.openstack.org/283616 * Allow unique keys to be used with get_object https://review.openstack.org/322024 * qos: support advanced sorting/pagination criteria https://review.openstack.org/318251/ TODOs: 1. Help in review and code development for already existing patches. 2. Add integration patches for objects: network, port, router, agent, service type... 3. Add more API tests for resources: subnets, routers, all the resource supporting sorting/pagination on API level 4. Add usages of SQLAlchemy decorator classes (MAC Address, IP Address, CIDR) in SQL schema. 5. Improve Grenade coverage for DHCP, L3 and DVR upgrade tests. 6. Add objects for not yet covered database resources. Upgrades Subteam has the weekly meetings on Mondays, 2PM UTC, wiki page: https://wiki.openstack.org/wiki/Meetings/Neutron-Upgrades-Subteam The patches for upgrades can be tracked in gerrit by: https://review.openstack.org/#/q/topic:ovo https://review.openstack.org/#/q/topic:bug/1566514 https://review.openstack.org/#/q/topic:bp/adopt-oslo-versioned-objects-for-db Thanks for your attention, Artur IRC: korzen
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
