*** tlam__ has quit IRC | 00:00 | |
*** sshank has quit IRC | 00:05 | |
*** felipemonteiro has joined #openstack-meeting-5 | 00:18 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 00:19 | |
*** felipemonteiro has quit IRC | 00:23 | |
*** felipemonteiro_ has quit IRC | 00:26 | |
*** kei-ichi has quit IRC | 01:27 | |
*** kei-ichi has joined #openstack-meeting-5 | 01:28 | |
*** amotoki has quit IRC | 02:32 | |
*** korzen_ has quit IRC | 02:32 | |
*** amrith has quit IRC | 02:32 | |
*** ChanServ has quit IRC | 02:32 | |
*** ChanServ has joined #openstack-meeting-5 | 02:34 | |
*** barjavel.freenode.net sets mode: +o ChanServ | 02:34 | |
*** amotoki has joined #openstack-meeting-5 | 02:36 | |
*** korzen_ has joined #openstack-meeting-5 | 02:36 | |
*** amrith has joined #openstack-meeting-5 | 02:36 | |
*** benj_ has quit IRC | 02:40 | |
*** benj_ has joined #openstack-meeting-5 | 02:41 | |
*** TuanLA has joined #openstack-meeting-5 | 02:55 | |
*** markvoelker_ has quit IRC | 03:24 | |
*** ricolin has joined #openstack-meeting-5 | 04:00 | |
*** yamamoto has joined #openstack-meeting-5 | 04:18 | |
*** TuanLA has quit IRC | 04:36 | |
*** TuanLA has joined #openstack-meeting-5 | 04:36 | |
*** lamt has quit IRC | 05:05 | |
*** lamt has joined #openstack-meeting-5 | 05:05 | |
*** lamt is now known as Guest62992 | 05:05 | |
*** ricolin has quit IRC | 05:10 | |
*** markvoelker has joined #openstack-meeting-5 | 05:25 | |
*** markvoelker has quit IRC | 05:58 | |
*** MarkBaker has joined #openstack-meeting-5 | 06:36 | |
*** MarkBaker has quit IRC | 06:41 | |
*** TuanLA_ has joined #openstack-meeting-5 | 06:48 | |
*** TuanLA has quit IRC | 06:50 | |
*** markvoelker has joined #openstack-meeting-5 | 06:55 | |
*** markvoelker has quit IRC | 07:30 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 07:31 | |
*** ricolin has joined #openstack-meeting-5 | 07:35 | |
*** makowals has joined #openstack-meeting-5 | 07:37 | |
*** ricolin has quit IRC | 07:58 | |
*** ricolin has joined #openstack-meeting-5 | 08:00 | |
*** felipemonteiro__ has joined #openstack-meeting-5 | 08:03 | |
*** felipemonteiro_ has quit IRC | 08:06 | |
*** TuanLA__ has joined #openstack-meeting-5 | 08:26 | |
*** markvoelker has joined #openstack-meeting-5 | 08:26 | |
*** TuanLA_ has quit IRC | 08:28 | |
*** markvoelker has quit IRC | 09:00 | |
*** MarkBaker has joined #openstack-meeting-5 | 09:08 | |
*** felipemonteiro__ has quit IRC | 09:16 | |
*** MarkBaker has quit IRC | 09:20 | |
*** derekh has joined #openstack-meeting-5 | 09:42 | |
*** markvoelker has joined #openstack-meeting-5 | 09:57 | |
*** TuanLA__ has quit IRC | 10:05 | |
*** markvoelker has quit IRC | 10:29 | |
*** MarkBaker has joined #openstack-meeting-5 | 10:33 | |
*** MarkBaker has quit IRC | 10:46 | |
*** yamamoto has quit IRC | 11:12 | |
*** markvoelker has joined #openstack-meeting-5 | 11:26 | |
*** yamamoto has joined #openstack-meeting-5 | 11:53 | |
*** yamamoto has quit IRC | 11:54 | |
*** yamamoto has joined #openstack-meeting-5 | 11:55 | |
*** markvoelker has quit IRC | 12:00 | |
*** yamamoto has quit IRC | 12:19 | |
*** markvoelker has joined #openstack-meeting-5 | 12:57 | |
*** yamamoto has joined #openstack-meeting-5 | 13:07 | |
*** markvoelker has quit IRC | 13:28 | |
*** markvoelker has joined #openstack-meeting-5 | 13:28 | |
*** MarkBaker has joined #openstack-meeting-5 | 13:38 | |
*** yamamoto has quit IRC | 13:41 | |
*** yamamoto has joined #openstack-meeting-5 | 13:50 | |
*** yamamoto has quit IRC | 13:54 | |
*** TuanVu has joined #openstack-meeting-5 | 13:55 | |
*** kiennt26 has joined #openstack-meeting-5 | 13:55 | |
*** annp has joined #openstack-meeting-5 | 13:56 | |
*** lujinluo has joined #openstack-meeting-5 | 13:57 | |
*** ihrachys has joined #openstack-meeting-5 | 14:00 | |
*** hoangcx_ has joined #openstack-meeting-5 | 14:01 | |
ihrachys | #startmeeting neutron_upgrades | 14:02 |
---|---|---|
openstack | Meeting started Thu Dec 14 14:02:16 2017 UTC and is due to finish in 60 minutes. The chair is ihrachys. Information about MeetBot at http://wiki.debian.org/MeetBot. | 14:02 |
openstack | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | 14:02 |
*** openstack changes topic to " (Meeting topic: neutron_upgrades)" | 14:02 | |
openstack | The meeting name has been set to 'neutron_upgrades' | 14:02 |
annp | hi | 14:02 |
lujinluo | o/ | 14:02 |
TuanVu | Hi guys | 14:02 |
*** ihrachys_ has joined #openstack-meeting-5 | 14:02 | |
*** hungpv has joined #openstack-meeting-5 | 14:02 | |
ihrachys_ | #startmeeting neutron_upgrades | 14:03 |
openstack | ihrachys_: Error: Can't start another meeting, one is in progress. Use #endmeeting first. | 14:03 |
ihrachys_ | sorry I was dropped | 14:03 |
TuanVu | no problem | 14:03 |
ihrachys_ | I presume bot still considers the meeting started :) | 14:03 |
lujinluo | yes | 14:03 |
ihrachys_ | there are no AIs | 14:04 |
ihrachys_ | #topic OVO | 14:04 |
ihrachys_ | https://review.openstack.org/#/q/status:open+project:openstack/neutron+branch:master+topic:bp/adopt-oslo-versioned-objects-for-db | 14:04 |
ihrachys_ | going top to botton | 14:04 |
ihrachys_ | *bottom | 14:04 |
ihrachys_ | https://review.openstack.org/#/c/521797/ "Use Router OVO in external_net_db" | 14:04 |
ihrachys_ | https://review.openstack.org/#/c/521797/10/neutron/db/external_net_db.py | 14:05 |
ihrachys_ | hungpv, I don't follow what you try to achieve there | 14:05 |
hungpv | Hi | 14:06 |
ihrachys_ | you shouldn't need any of that. just build filter dict and pass it to get_objects | 14:06 |
*** ihrachys has quit IRC | 14:06 | |
hungpv | I was trying that way | 14:06 |
hungpv | But it does | 14:07 |
ihrachys_ | the only complexity there is that filter dict is built in several gos | 14:07 |
hungpv | It didn't pass the UT | 14:08 |
hungpv | So I come up with that so solution | 14:08 |
ihrachys_ | hungpv, well, then unit test may need a refinement. do you have a link to the failure? | 14:08 |
ihrachys_ | hungpv, we shouldn't routinely add new methods to objects. only when it's absolutely needed. and we should not routinely return sqlalchemy queries from those methods. | 14:09 |
ihrachys_ | I think get_objects is fine for the job | 14:09 |
ihrachys_ | and you just build the dict and pass it | 14:09 |
ihrachys_ | I would need to see the failure to judge more | 14:09 |
ihrachys_ | but it seems like the path forward there | 14:10 |
*** ihrachys_ is now known as ihrachys | 14:10 | |
ihrachys | lujinluo, hungpv do I make sense there? | 14:10 |
lujinluo | yes, i think get_objects() would do the work | 14:10 |
lujinluo | also we need to use LIKE statement | 14:11 |
hungpv | Hum I p'm | 14:13 |
hungpv | Thinking about that | 14:13 |
ihrachys | lujinluo, LIKE for what exactly? | 14:13 |
hungpv | But I'm kinda stuck for that way. Trying to build filter dict, and somehow it didn't work | 14:14 |
*** yamamoto has joined #openstack-meeting-5 | 14:14 | |
ihrachys | I see there is some more complexity there for rbac | 14:14 |
lujinluo | i took a glance at Line 235 in old codes "l3_models.Router.tenant_id.in_(tenants_with_entries)" | 14:15 |
lujinluo | tenants_with_entries comes from RBAC | 14:15 |
ihrachys | yeah | 14:15 |
ihrachys | it's SELECT ... WHERE tenant_id IN (SELECT ...) | 14:15 |
ihrachys | this can't be easily modeled directly in OVO | 14:16 |
ihrachys | and there is also NOT there | 14:17 |
ihrachys | ~tenant_id.in_(...) | 14:17 |
ihrachys | that's another thing not available in OVO | 14:17 |
lujinluo | how about we manipulate with queried router ovo objects to find all router whose tenant does not belong to tenants_with_entries | 14:17 |
*** tlam__ has joined #openstack-meeting-5 | 14:19 | |
ihrachys | thinking | 14:19 |
*** yamamoto has quit IRC | 14:19 | |
lujinluo | line 206 and 207 is easier | 14:20 |
lujinluo | we use get_objects(), then iterate every one of them to find gw_port_id in ports | 14:21 |
ihrachys | for rbac subquery, we could just split it out | 14:21 |
ihrachys | it shouldn't affect scalability | 14:21 |
ihrachys | because it's O(1) | 14:21 |
ihrachys | as for NOT, I think we may need to add it to OVO layer first | 14:21 |
lujinluo | hmm, is router the only object we used NOT? | 14:23 |
ihrachys | lujinluo, yes, ports calculation can be split too | 14:23 |
ihrachys | lujinluo, apparently. we didn't have a need it seems before. | 14:23 |
lujinluo | ok, then maybe we should add NOT first | 14:24 |
ihrachys | another 'solution' is to actually have a specialized method for that matter (count_by_tenant?) to accommodate for lines 234-240 | 14:25 |
ihrachys | and leave NOT for later | 14:26 |
ihrachys | but I am confident that the != '*' case doesn't need any of that, so we could simplify it there | 14:26 |
lujinluo | i would prefer we get things done first, and leave some follow-ups to revisit | 14:27 |
ihrachys | ok let's go this route. | 14:27 |
hoangcx_ | +1 | 14:27 |
ihrachys | ok next is https://review.openstack.org/#/c/527570/ "Remove _get_subnets_by_cidr from neutron/db/extraroute_db.py" | 14:31 |
ihrachys | I see it's +2, checking if I can nudge right away | 14:31 |
TuanVu | thank you, Ihar | 14:31 |
ihrachys | ok merging | 14:31 |
lujinluo | \o/ | 14:31 |
ihrachys | https://review.openstack.org/#/c/506037/ "Part II of Integrate Port OVO" | 14:31 |
ihrachys | this seems not ready for prime time | 14:32 |
TuanVu | awesome! thanks a lot! | 14:32 |
ihrachys | lujinluo, correct? | 14:32 |
annp | thanks Ihar and Tuanvu :) | 14:32 |
lujinluo | i am pissed off by all the mac_address modification | 14:32 |
lujinluo | it comes back and forth | 14:32 |
lujinluo | anyway, i will try to fix (hopefully) the remaining missing parts | 14:33 |
ihrachys | ok. | 14:33 |
ihrachys | https://review.openstack.org/#/c/407868/ "Integration of (Distributed) Port Binding OVO" was quite close to ready the last time I checked | 14:34 |
lujinluo | slawek pointed a potential race condition | 14:34 |
lujinluo | would you mind have a look? i was thinking making all the delete() + some modifications + create() in one transaction? | 14:34 |
ihrachys | https://review.openstack.org/#/c/407868/80/neutron/objects/ports.py@53 ? | 14:35 |
lujinluo | yes | 14:35 |
ihrachys | ok. I think what slaweq suggests is to have a subtransaction opened for the whole body of update | 14:36 |
ihrachys | like we do here https://github.com/openstack/neutron/blob/master/neutron/objects/base.py#L541 | 14:37 |
lujinluo | yes, this is what i was thinking too | 14:37 |
ihrachys | so _load_object is called in scope of the same transaction | 14:37 |
ihrachys | making sure we can load all attributes | 14:38 |
lujinluo | do we also want a test for it? i was not able to come up with one | 14:39 |
ihrachys | I don't think so. it's one of those cases where it just makes sense to have the code to avoid a potential for a race | 14:39 |
ihrachys | also, I think we have a test somewhere that validates a single commit() | 14:40 |
lujinluo | good. i will only add the subtransaction then | 14:40 |
ihrachys | https://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_base.py#L1652-L1665 | 14:40 |
ihrachys | though it doesn't seem like it failed anywhere here: http://logs.openstack.org/37/506037/9/check/openstack-tox-py27/ea53df0/testr_results.html.gz | 14:41 |
ihrachys | it's actually surprising | 14:42 |
ihrachys | ah no, it's ot | 14:43 |
ihrachys | *not | 14:43 |
lujinluo | ^ bad link I guess? | 14:43 |
ihrachys | you have some 'new_host' there | 14:43 |
ihrachys | what's that? | 14:43 |
ihrachys | why not reusing 'host'? | 14:43 |
ihrachys | lujinluo, eh, yeah this is correct one: http://logs.openstack.org/68/407868/81/check/openstack-tox-py27/3520ebb/testr_results.html.gz | 14:43 |
ihrachys | but it's still passing | 14:44 |
ihrachys | I think it's because in the test case, we set all fields | 14:44 |
lujinluo | cause then we cannot do self.delete() | 14:44 |
ihrachys | but since new_host is not a field, it's not set and so super().update() is called | 14:44 |
lujinluo | cause the binding with updated host does not exist yet | 14:44 |
ihrachys | lujinluo, what we could do is store the original host in e.g. _load_object | 14:44 |
ihrachys | lujinluo, and then reuse it whenever we update the field | 14:45 |
ihrachys | to delete | 14:45 |
ihrachys | and then use the new field value when creating | 14:45 |
ihrachys | so in that way, you have both values available | 14:45 |
ihrachys | it's actually surprising that we don't have a way to get old values of fields | 14:45 |
ihrachys | in oslo.versionedobjects | 14:45 |
lujinluo | yes | 14:46 |
ihrachys | we can only get a list of field *names* that were touched | 14:46 |
lujinluo | exactly | 14:46 |
ihrachys | so, I think we can make an exception for host attribute and cache it on _load_object | 14:46 |
ihrachys | does it make sense? | 14:46 |
ihrachys | of course, that would belong to the object implementation not base _load_object | 14:47 |
lujinluo | it does, but i also need to double check maybe tmr | 14:47 |
ihrachys | so you would _load_object and then also setattr(obj, '_cached_host', obj.host) | 14:47 |
lujinluo | i am having difficulty understanding '_cached_host' here | 14:49 |
lujinluo | do you still suggest i add it as an attribute? | 14:49 |
ihrachys | as an attribute, yes | 14:49 |
ihrachys | but it would store the original host not the new one | 14:49 |
ihrachys | new one would still be using the host field of the object | 14:50 |
lujinluo | ah, i see your point | 14:50 |
ihrachys | then in update(), when you first need to .delete() you would construct a new object using the cached host value, then call .delete() on it. | 14:50 |
ihrachys | after that, you can move forward with .create() | 14:50 |
lujinluo | it saves the clearance of 'new_host' | 14:50 |
ihrachys | it should also make the UT fail | 14:51 |
ihrachys | I would suggest to do the changes without subtransaction, then validate the test fails, then add subtransaction to check it now passes | 14:51 |
lujinluo | ack! | 14:52 |
ihrachys | cool! | 14:52 |
ihrachys | https://review.openstack.org/#/c/527330/ "l3_agentschedulers_db: convert from Agent model to OVO" | 14:52 |
ihrachys | I had a comment there | 14:52 |
TuanVu | yes, Ihar. Could you please also check comment from An-san | 14:53 |
TuanVu | ? | 14:53 |
ihrachys | basically, since now we fetch using OVO interface, we should check that OVO class has a field, not that it has an attribute with the name | 14:53 |
TuanVu | hmm ... | 14:55 |
ihrachys | TuanVu, is it for [None] value? | 14:55 |
ihrachys | I think value there is expected as None not [None]? | 14:55 |
ihrachys | [None] would actually be true in boolean context | 14:56 |
annp | ihrachys, yes, you're right. | 14:57 |
annp | ihrachys, sorry i misunderstood here. | 14:57 |
ihrachys | np | 14:57 |
TuanVu | ok, I got it | 14:57 |
ihrachys | I am honestly not entirely sure why this code is there but I would be hesitant to touch it | 14:57 |
ihrachys | ok I think we are out of time. anything quick to discuss before we wrap up? | 14:59 |
TuanVu | so we should abandon this patch? | 15:00 |
ihrachys | no why? | 15:00 |
TuanVu | as you mentioned, I guess we don't need to touch that snippet anymore | 15:00 |
lujinluo | no, you just do not use getattr() | 15:00 |
ihrachys | I think it's good. we still should move to OVO object. it just has different way to express presence of a field | 15:01 |
ihrachys | right. | 15:01 |
annp | ihrachys, ok, got it. | 15:01 |
ihrachys | use Agent.fields.get(...) | 15:01 |
TuanVu | thank you, Ihar and Luo | 15:01 |
ihrachys | ok we need to wrap up | 15:01 |
*** marst has joined #openstack-meeting-5 | 15:01 | |
ihrachys | thanks for all the work you do folks! | 15:01 |
ihrachys | #endmeeting | 15:01 |
*** openstack changes topic to "OVO patches (Meeting topic: neutron_upgrades)" | 15:01 | |
openstack | Meeting ended Thu Dec 14 15:01:52 2017 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4) | 15:01 |
lujinluo | thank you guys | 15:01 |
openstack | Minutes: http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.html | 15:01 |
openstack | Minutes (text): http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.txt | 15:01 |
openstack | Log: http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.log.html | 15:01 |
TuanVu | awesome, thank you very much, Ihar | 15:02 |
annp | thank you | 15:02 |
annp | see you | 15:02 |
TuanVu | see you guys later :) | 15:02 |
hungpv | See you guys | 15:03 |
TuanVu | thanks for a meeting with really high quality | 15:03 |
*** hoangcx_ has quit IRC | 15:03 | |
*** hungpv has left #openstack-meeting-5 | 15:04 | |
*** lujinluo has quit IRC | 15:06 | |
*** TuanVu has quit IRC | 15:06 | |
*** annp has quit IRC | 15:07 | |
*** felipemonteiro__ has joined #openstack-meeting-5 | 15:13 | |
*** felipemonteiro__ has quit IRC | 15:17 | |
*** mjturek has joined #openstack-meeting-5 | 15:17 | |
*** amotoki has quit IRC | 15:22 | |
*** felipemonteiro__ has joined #openstack-meeting-5 | 15:25 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 15:26 | |
*** kiennt26 has quit IRC | 15:26 | |
*** ChanServ changes topic to "OpenStack Meetings || https://wiki.openstack.org/wiki/Meetings/" | 15:30 | |
*** felipemonteiro__ has quit IRC | 15:30 | |
*** dtantsur has joined #openstack-meeting-5 | 15:50 | |
*** MarkBaker has quit IRC | 15:58 | |
*** kp_ has joined #openstack-meeting-5 | 16:28 | |
kp_ | help | 16:28 |
kp_ | HELP | 16:28 |
kp_ | HELP | 16:29 |
kp_ | status | 16:34 |
*** dtantsur has left #openstack-meeting-5 | 16:43 | |
*** yamahata has joined #openstack-meeting-5 | 16:45 | |
*** yamamoto has joined #openstack-meeting-5 | 16:46 | |
*** yamamoto has quit IRC | 16:54 | |
*** derekh has quit IRC | 16:58 | |
*** felipemonteiro_ has quit IRC | 17:43 | |
*** yamamoto has joined #openstack-meeting-5 | 18:05 | |
*** yamahata has quit IRC | 18:06 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 18:56 | |
*** felipemonteiro__ has joined #openstack-meeting-5 | 18:58 | |
*** felipemonteiro_ has quit IRC | 19:02 | |
*** openstack has joined #openstack-meeting-5 | 20:32 | |
*** ChanServ sets mode: +o openstack | 20:32 | |
*** pabelanger has quit IRC | 20:39 | |
*** pabelanger has joined #openstack-meeting-5 | 20:39 | |
*** yamamoto has joined #openstack-meeting-5 | 21:07 | |
*** yamahata has joined #openstack-meeting-5 | 21:09 | |
*** openstack has joined #openstack-meeting-5 | 21:12 | |
*** ChanServ sets mode: +o openstack | 21:12 | |
*** yamamoto has quit IRC | 21:15 | |
*** sshank has joined #openstack-meeting-5 | 21:48 | |
*** yamamoto has joined #openstack-meeting-5 | 21:51 | |
*** ChanServ has quit IRC | 22:17 | |
*** ChanServ has joined #openstack-meeting-5 | 22:24 | |
*** barjavel.freenode.net sets mode: +o ChanServ | 22:24 | |
*** ChanServ has quit IRC | 22:28 | |
*** ChanServ has joined #openstack-meeting-5 | 22:31 | |
*** barjavel.freenode.net sets mode: +o ChanServ | 22:31 | |
*** sshank has quit IRC | 22:35 | |
*** sshank has joined #openstack-meeting-5 | 22:50 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 22:50 | |
*** felipemonteiro__ has quit IRC | 22:53 | |
*** felipemonteiro_ has quit IRC | 22:56 | |
*** ihrachys has quit IRC | 22:58 | |
*** tlam__ has quit IRC | 23:05 | |
*** felipemonteiro_ has joined #openstack-meeting-5 | 23:14 | |
*** felipemonteiro_ has quit IRC | 23:35 | |
*** mjturek has quit IRC | 23:48 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!