Hi neutrinos, The idea of this email is to summarize the effort that we're making during the implemetation of Rolling upgrades in Neutron, as well as sharing the upcoming changes.
Announcements ============ Neutron Newton RC1 has been created and this contains the following changes related to OVO: https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Fneutron%29%0Astatus%3Amerged+after%3A2016%2D04%2D04+before%3A2016%2D09%2D19&title=Neutron+Upgrades+%2D+Newton&Oslo%2DVersioned+Object+Creation+and+Integration=%28topic%3Abp%2Fadopt%2Doslo%2Dversioned%2Dobjects%2Dfor%2Ddb+OR+topic%3Aovo%29&Relocate+DB+model+classes=topic%3Abug%2F1597913 Here, let's just outline general plan: - Move DB model classes to avoid cyclic imports. https://review.openstack.org/#/q/status:open+topic:bug/1597913 - Land Oslo-Versioned Objects - Adopt them in plugin code, this means the replacement of the exisiting calls for corresponding OVO functions. Ocata release will last 4.5 months only. Though the cycle is short, the plan is to make it the first release that supports partial upgrade for neutron-servers. It means we will need to forbid contract alembic scripts during this cycle. Model Relocation ============= SubnetServiceType, FlatAllocation, GreAllocation and GreEndpoints models have been already moved into neutron/db/models folder. The plan is to move the DB model classes that share file with mixin class ( https://review.openstack.org/#/q/status:open+topic:bug/1597913 ) OVO Neutron Framework =================== There are some cases where the API receives filters which are not defined in the model.( e. g. for the query to filter Subnet model class is using 'admin_state_up' as filter). This behaviour is not allowed in the strict OVO implementation, so it was required to make optional this restriction. https://review.openstack.org/#/c/365659/ Subnet OVO has been created but its integration is in progress, so any feedback is welcome https://review.openstack.org/#/c/321001/ https://review.openstack.org/#/c/351740/ Regarding the way to replace inner and outer joins on the current way that models have been implemented is something that has not been defined yet. The initial approach to follow is trying to create a new classmethod in the most relevant OVO class and move that logic into the OVO class. Obviously, this varies case by case. It has been identified some cases where methods passes DB session as an argument instead of a Application Context. This has a direct impact on the way to replace code with OVO classes because they use context for doing DB changes internally. It was decided to consider changes on method signature whenever it's possible with the only exception to don't modify the any method that afects the API. OVO Implementation Dashboard -> https://docs.google.com/spreadsheets/d/1FeeQlQITsZSj_wpOXiLbS36dirb_arX0XEWBdFVPMB8 http://eavesdrop.openstack.org/meetings/neutron_upgrades/2016/neutron_upgrades.2016-09-12-15.01.log.html http://eavesdrop.openstack.org/meetings/neutron_upgrades/2016/neutron_upgrades.2016-09-19-15.00.log.html __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev