14:01:27 #startmeeting neutron_upgrades 14:01:29 Meeting started Thu Nov 16 14:01:27 2017 UTC and is due to finish in 60 minutes. The chair is ihrachys. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:01:31 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:01:32 hi 14:01:33 The meeting name has been set to 'neutron_upgrades' 14:01:39 o/ 14:01:45 Hi everybody 14:01:56 hi annp TuanVu lujinluo 14:02:13 Hi guys 14:02:18 hungpv, hey! 14:02:20 Hi Ihar 14:02:39 let me start by saying I am very sorry the previous meeting didn't happen because I screwed up time zones (seems like there was summer time shift) 14:02:58 no problem, Ihar 14:03:07 So it is 6am for you now? ihrachys 14:03:23 Hi ỉhachys, that's fine 14:03:32 yeah. which is fine, but I didn't expect that the prev week and slept like a baby :) 14:03:36 no problem, 14:04:08 LOL, i see.. 14:04:41 afair summer time shift is in different times in different locations, not sure if you had yours (if you do), so be ware 14:05:10 we do not have time shifts in Japan. I am all safe, ;) 14:05:39 me too in vietnam :) 14:05:47 yeah, same here 14:05:49 that's cool. smart people are smart. 14:06:17 in my country, they didn't do it either. that's some 19th century bs :) 14:06:30 anyway :) 14:06:31 #topic OVO 14:06:48 before we dive in, I'd like to update about what happened with subnet ovo patch 14:07:00 we merged it but then it was reverted because it broke midonet 14:07:22 the breakage was https://launchpad.net/bugs/1731623 14:07:22 Launchpad bug 1731623 in networking-midonet "many UT cases are broken due to "AttributeError: type object 'Route' has no attribute 'foreign_keys'"" [Critical,New] 14:07:59 slaweq root caused it and found out that it happened because both neutron and os-vif register an object with the same name (Route) in OVO registry 14:08:35 and apparently then neutron makes an attempt to serialize a Subnet using os-vif Routes 14:08:38 which of course fails 14:09:06 slaweq reported this bug to fix that: https://bugs.launchpad.net/neutron/+bug/1731948 14:09:06 Launchpad bug 1731948 in neutron "Wrong OVO classes registered in some cases" [Medium,In progress] - Assigned to Slawek Kaplonski (slaweq) 14:09:18 and there is a patch already up for review: https://review.openstack.org/519622 14:09:34 the idea is creating a OVO registry just for neutron objects 14:09:57 this is the gist of the change: https://review.openstack.org/#/c/519622/4/neutron/objects/base.py 14:10:15 it's a bit hacky, and I would like to check with oslo folks whether there is a better way before merging 14:10:29 but nevertheless it seems that it fixes the issue for midonet 14:11:27 slaweq proposed a revert for subnet revert here: https://review.openstack.org/#/c/519762/2 that's on top of the patch introducing the new registry 14:12:29 sounds good? 14:12:42 yes 14:12:51 thanks for the summary, Ihar 14:12:56 i was slowly digesting all the info.. 14:13:29 cool! 14:13:47 now to other patches up for review 14:13:49 https://review.openstack.org/#/q/status:open+project:openstack/neutron+branch:master+topic:bp/adopt-oslo-versioned-objects-for-db 14:14:06 (btw we landed some l3 agent patches too) 14:15:00 first being https://review.openstack.org/#/c/407868/ "[DNR] Integration of (Distributed) Port Binding OVO" 14:15:19 i am slowly debugging this one 14:15:30 also i did not expect gary reviewed it, omg 14:15:42 i even put DNR there.. 14:16:18 DNR is probably not a common tag 14:16:30 we usually use WIP for work in progress and DNM for never merge 14:16:38 oops.. my bad 14:17:12 is it the patch where you needed to set up dvr env locally to debug it? 14:17:23 yes, exactly 14:17:41 also the devstack env breaks easily when running tempest 14:17:54 not sure why. but it does slow down my progress a bit 14:18:01 what do you mean 14:18:34 so i use $ testr run to run specific tempest test 14:18:55 but after some attempts, keystone breaks and i cannot get authentication 14:19:26 then i rebuilt another devstack.. 14:19:30 I see. I am not aware of that. 14:19:49 lujinluo, that sucks. do you use a VM? then maybe snapshots will help. 14:20:00 yes, i use VM 14:20:08 at least you save the time of ./stack.sh 14:20:13 i will snapshot the current working one tmr 14:20:43 just make sure that you evacuate work in progress code though before restoring a previous snapshot. :) 14:21:06 ah, right. thanks for the heads up 14:21:12 ok next patch is https://review.openstack.org/#/c/396351/ "Integration of Floating IP OVO" 14:22:10 Slawek commented whether we can use ovo methods directly in two places 14:22:52 https://review.openstack.org/#/c/396351/43/neutron/db/l3_db.py line 1448 and 1520 14:23:30 i think we can let 1448 go, but not 1520 14:24:15 agreed. though dragonflow shouldn't have used the method 14:24:45 then while i was deleting 1448, i met a problem 14:25:51 i also need to replace self.db._floating_ip_exists with ovo_exist() in https://review.openstack.org/#/c/396351/43/neutron/tests/unit/db/test_l3_db.py@210 14:26:25 but then other UTs are failing because l3_obj.FloatingIP.objects_exist() remains to be true 14:27:01 I am confused why l3_obj.FloatingIP.objects_exist() is not cleared at the end of line 212 14:28:08 failing UTs http://logs.openstack.org/51/396351/42/check/openstack-tox-py27/7a25632/testr_results.html.gz 14:28:16 lujinluo, you modify real class attribute (which is a method) 14:28:25 it won't restore back after execution 14:28:31 so instead you should use mock.patch 14:28:42 Shall I manually clear it at line 212? 14:28:48 or is there any better way 14:28:52 with mock.patch.object(self.db, '_floating_ip_exists'): 14:29:04 Thanks! 14:29:06 no, setting it is unsafe in the first place 14:29:20 because if your test case later fails you may not restore it 14:29:47 I see. 14:30:58 next is https://review.openstack.org/#/c/507772/ "Use Network OVO in db_base_plugin" 14:30:58 I will modify the codes accordingly. 14:31:16 this patch is still pending because of the bug mentioned by Slawek 14:31:26 we're still working on it 14:31:42 TuanVu, right. but you can already rebase the patch on top of slaweq's, that should unblock you 14:32:05 thank you Ihar, yes, I will 14:32:39 next is https://review.openstack.org/#/c/506037/ "Part II of Integrate Port OVO" 14:32:54 that one is rather red 14:33:02 and needs a rebase 14:33:16 yes, will rebase it 14:33:24 does it depend on bindings patch somehow? 14:34:19 No, I do not plan to touch plugin/ml2/plugin.py in this patch 14:34:31 then it does not depend on portbinding 14:35:07 ok 14:35:24 then we have https://review.openstack.org/#/c/516961/ "Router to OVO" 14:35:52 seems like I am slow to review that one. I'll make it a priority for today 14:36:11 Yes. Please have a look at it 14:36:34 In the meantime I'm developing patches for integration 14:36:47 yeah was about to ask :) 14:36:59 Hopefully can be ready for review next week 14:37:01 ok seems like router is in good hands 14:37:21 note that you can probably reuse a lot of code from https://review.openstack.org/421863 14:38:08 Thank you, I'll surely look at it 14:38:13 ;) help yourself 14:39:44 seems like we have fewer objects in the works right now, let's have a look at the list of direct imports of models 14:40:41 list of those imports in tree: https://da.gd/QXnD 14:41:29 there are some model definitions in the list, f.e. neutron/db/port_security/models.py 14:41:32 those are red herrings 14:41:43 (should probably eventually move under neutron/db/models 14:42:46 some of them may actually be needed / hard to remove either 14:43:08 yeah, need to take a closer look 14:43:22 f.e. I see cases where we use models to expunge objects from session; that you can't do with OVO (though maybe we should think about how to expose it without revealing models) 14:44:14 exactly. I tried .update() but seems to be problematic 14:44:14 I am going to prepare a full classified list of remaining imports for the next meeting, then we can assess what's really missing 14:44:43 i think we also lack of ways to deal with joins between multiple models 14:45:46 yeah that one is tough. so far we were just moving the code under neutron/objects/... since at least we isolate models code in a single place. but ideally we would have some generic mechanism. not sure what it could be. if you have ideas, please share. 14:47:31 yeah 14:48:12 i do not have a good idea for now though, let's just keep that in mind first 14:48:14 #action ihrachys to categorize remaining models imports 14:49:56 #topic Open discussion 14:50:00 anything else to cover? 14:50:11 none from me. 14:50:15 me either 14:51:38 nothing from me 14:51:44 cool, thanks for joining 14:51:52 thanks! 14:51:55 #endmeeting