14:00:10 #startmeeting neutron_upgrades 14:00:11 Meeting started Thu Dec 7 14:00:10 2017 UTC and is due to finish in 60 minutes. The chair is ihrachys. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:14 The meeting name has been set to 'neutron_upgrades' 14:00:21 o/ 14:00:24 hi 14:00:40 Hi Ihar, Luo, An-san 14:00:53 hi all 14:01:11 I just woke up so bear with me :) 14:01:12 #topic Action items from prev meeting 14:01:27 "ihrachys to categorize remaining models imports" 14:01:36 I have something here 14:01:43 I will post to etherpad, sec 14:03:06 https://etherpad.openstack.org/p/neutron-remaining-ovo 14:03:21 nice! 14:03:45 I tried to classify them by type though it's sometimes not easy 14:04:06 some classifications are not complete / not detailed 14:04:13 but I think we can work with it and refine later 14:04:41 yes, seems we still have some work here 14:04:45 I also posted some simple conversion patches for tests where it seemed easy enough not to take too much time 14:05:28 thank you, Ihar 14:05:40 a lot of those occurrences are not hard to convert. some would require additional work in framework (we should get back to thinking about what to do with joins) 14:05:46 ack. Will try to pick up one or two from next week 14:06:14 ^ those simple tests 14:06:24 ok 14:06:36 we can look at the list later when looking for more work :) 14:06:54 that's the only explicit action item we had 14:06:58 #topic OVO patches 14:07:14 https://review.openstack.org/#/q/status:open+project:openstack/neutron+branch:master+topic:bp/adopt-oslo-versioned-objects-for-db 14:08:01 I won't go through those patches with +W, they are primitive and already on their way 14:08:14 I will just need to rebase / shephard them into merge queue 14:08:49 ok 14:09:04 I see we landed floating ip conversion here: https://review.openstack.org/396351 14:09:06 good 14:09:24 ;) 14:09:53 it's interesting that https://review.openstack.org/#/c/525254/ could merge with it without any issue, hm 14:10:00 I expected a conflict / failure to occur 14:10:09 I guess it worked just fine... 14:10:32 ok as for other patches... 14:10:40 https://review.openstack.org/#/c/521797/ "Use Router OVO in external_net_db" 14:11:34 hi 14:12:03 hm. if I read it correctly, I think the conversion is not reflecting the logic of current code 14:12:18 see, when .filter() is chain-called on sqlalchemy query, filters are added 14:12:50 eh, sorry folks I have a small emergency here, I will be back in 3 mins... :) 14:12:59 no problem 14:13:02 ok 14:13:03 ok 14:15:04 ok I am back :) 14:15:38 exactly 3 min, lol 14:15:48 so yeah. in case of objects, one would need to pre-populate a filter dict with all parameters, then call get_objects with all of them 14:16:36 see in old code, line 203, we apply gw_port_id filter; then later in line 232, we apply tenant_id filter 14:16:55 then finally in line 238 when calling .count, we apply both filters, executing the query 14:18:01 but I see the patch fails in unit tests 14:18:09 so I guess it has some coverage, which is good 14:18:48 hungpv, do you follow what's wrong there? 14:19:08 yes, i see 14:19:10 ah well, let me leave some comments there and let's follow through them off band 14:19:40 can you give me some similar case, i'm trying to learn from them 14:20:43 hungpv, yeah looking, sec 14:22:44 ok I have it 14:22:50 https://review.openstack.org/#/c/501925/17/neutron/db/l3_agentschedulers_db.py@375 14:23:05 see how we build up agent_filters dict there 14:23:24 if active is not None: ... 14:23:38 so we collect all parameters to search for, then finally call get_objects 14:23:56 but we don't call get_objects on each step because results don't chain 14:24:43 gotcha? if you need some more clarification, we may discuss it off band. ping me in irc. 14:25:02 in neutron channel after the meeting if you need more details 14:25:56 ok next patch is https://review.openstack.org/#/c/407868/ "Integration of (Distributed) Port Binding OVO" 14:26:21 ok thank 14:26:21 lujinluo, I finally got to it yesterday and left some comments. I see you are already on them. 14:26:38 Yes, and I am preparing for a local patch. Need some time to see if any of the changes break anything 14:28:13 as for model relationship strategy, we may need someone else to assess whether it makes sense to switch from subquery 14:28:24 we previously switched to it for a reason 14:28:47 so let's have an updated patch and then reach out with it to Armando / Anna 14:28:56 and maybe Kevin, if we can catch him :) 14:29:14 ack! 14:29:22 will push latest version tmr 14:30:29 https://review.openstack.org/#/c/507772/ "Use Network OVO in db_base_plugin" 14:30:37 all red, probably not ready for prime time 14:30:45 We’re working on this particular test 14:30:54 neutron.tests.unit.db.test_db_base_plugin_v2.TestNetworksV2. test_update_network_set_not_shared_multi_tenants_returns_409 14:31:07 there’s problem with _create_port function 14:31:22 when debugging the code, we compared value of “tenant_id” between branch “master” and this WIP branch. Somehow, with current branch, “tenant_id” is None, this is root cause of the issue. 14:31:47 And, we haven’t been able to figure out why it is None yet. 14:32:21 So ... it would be great if we could have some suggestions from you guys. 14:32:43 create_port? I don't see where you touch it. 14:32:49 could you push that version to gerrit first? 14:32:57 the current one is pretty red 14:33:16 Hi Luo, yes, this is the latest version 14:33:40 Hi Ihar, let me specify more 14:33:42 maybe something with csnat port 14:34:02 i encountered this in port ovo too 14:34:17 csnat port's tenant_id is intentionally left as None 14:35:13 https://review.openstack.org/#/c/507772/9/neutron/tests/unit/db/test_db_base_plugin_v2.py 14:35:22 line 2691 14:35:59 it's where the issue is raised 14:36:34 thank you, Luo 14:36:55 hmm, seems not to relate to csnat port 14:36:56 so it's create_network then not create_port? 14:37:01 I'll have a look at port OVO patch 14:37:23 yes, create_network, Ihar 14:37:25 there is one failure in unit tests that is more explict about what happens: 14:37:27 req = self.new_delete_request('networks', net['network']['id']) 14:37:27 KeyError: 'network' 14:37:36 which suggests that net is None 14:38:48 I now recollect that I was planning to look at the patch but forgot about it 14:38:56 let me try to get to it today 14:40:37 I think it should be something trivial, like create_network not returning anything. I will check. 14:41:03 those are all the code that we have up for review in reviewable state 14:41:41 #topic Planning remaining work 14:41:54 so, we have the list of remaining places where models are used 14:42:18 some objects like Router need a more systematic targeting since we haven't landed a patch to switch them to VOO 14:42:20 *OVO 14:42:39 but other places just need small refinements - lots of those in test code but some in plugins too 14:43:27 how do we want to target the list? voluntarily taking entry by entry when we have spare cycles, putting a name in etherpad to claim it's reserved? 14:45:09 I guess everyone is cool with that approach 14:45:31 if you have spare cycles and don't know where to start in the list, I am here to help pick the right one for you :) 14:47:25 #topic Open discussion 14:47:36 if you have a topic to discuss, it's the time 14:49:04 ok now I see people split off me :) 14:49:25 I will wait a bit before closing the meeting in case someone will be back and has a topic to discuss 14:51:59 ok I guess freenode has a bad day 14:52:15 I a lonely tea pot in space 14:52:24 to whoever reads it, thanks 14:52:26 #endmeeting