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