Thursday, 2017-12-14

*** tlam__ has quit IRC00:00
*** sshank has quit IRC00:05
*** felipemonteiro has joined #openstack-meeting-500:18
*** felipemonteiro_ has joined #openstack-meeting-500:19
*** felipemonteiro has quit IRC00:23
*** felipemonteiro_ has quit IRC00:26
*** kei-ichi has quit IRC01:27
*** kei-ichi has joined #openstack-meeting-501:28
*** amotoki has quit IRC02:32
*** korzen_ has quit IRC02:32
*** amrith has quit IRC02:32
*** ChanServ has quit IRC02:32
*** ChanServ has joined #openstack-meeting-502:34
*** barjavel.freenode.net sets mode: +o ChanServ02:34
*** amotoki has joined #openstack-meeting-502:36
*** korzen_ has joined #openstack-meeting-502:36
*** amrith has joined #openstack-meeting-502:36
*** benj_ has quit IRC02:40
*** benj_ has joined #openstack-meeting-502:41
*** TuanLA has joined #openstack-meeting-502:55
*** markvoelker_ has quit IRC03:24
*** ricolin has joined #openstack-meeting-504:00
*** yamamoto has joined #openstack-meeting-504:18
*** TuanLA has quit IRC04:36
*** TuanLA has joined #openstack-meeting-504:36
*** lamt has quit IRC05:05
*** lamt has joined #openstack-meeting-505:05
*** lamt is now known as Guest6299205:05
*** ricolin has quit IRC05:10
*** markvoelker has joined #openstack-meeting-505:25
*** markvoelker has quit IRC05:58
*** MarkBaker has joined #openstack-meeting-506:36
*** MarkBaker has quit IRC06:41
*** TuanLA_ has joined #openstack-meeting-506:48
*** TuanLA has quit IRC06:50
*** markvoelker has joined #openstack-meeting-506:55
*** markvoelker has quit IRC07:30
*** felipemonteiro_ has joined #openstack-meeting-507:31
*** ricolin has joined #openstack-meeting-507:35
*** makowals has joined #openstack-meeting-507:37
*** ricolin has quit IRC07:58
*** ricolin has joined #openstack-meeting-508:00
*** felipemonteiro__ has joined #openstack-meeting-508:03
*** felipemonteiro_ has quit IRC08:06
*** TuanLA__ has joined #openstack-meeting-508:26
*** markvoelker has joined #openstack-meeting-508:26
*** TuanLA_ has quit IRC08:28
*** markvoelker has quit IRC09:00
*** MarkBaker has joined #openstack-meeting-509:08
*** felipemonteiro__ has quit IRC09:16
*** MarkBaker has quit IRC09:20
*** derekh has joined #openstack-meeting-509:42
*** markvoelker has joined #openstack-meeting-509:57
*** TuanLA__ has quit IRC10:05
*** markvoelker has quit IRC10:29
*** MarkBaker has joined #openstack-meeting-510:33
*** MarkBaker has quit IRC10:46
*** yamamoto has quit IRC11:12
*** markvoelker has joined #openstack-meeting-511:26
*** yamamoto has joined #openstack-meeting-511:53
*** yamamoto has quit IRC11:54
*** yamamoto has joined #openstack-meeting-511:55
*** markvoelker has quit IRC12:00
*** yamamoto has quit IRC12:19
*** markvoelker has joined #openstack-meeting-512:57
*** yamamoto has joined #openstack-meeting-513:07
*** markvoelker has quit IRC13:28
*** markvoelker has joined #openstack-meeting-513:28
*** MarkBaker has joined #openstack-meeting-513:38
*** yamamoto has quit IRC13:41
*** yamamoto has joined #openstack-meeting-513:50
*** yamamoto has quit IRC13:54
*** TuanVu has joined #openstack-meeting-513:55
*** kiennt26 has joined #openstack-meeting-513:55
*** annp has joined #openstack-meeting-513:56
*** lujinluo has joined #openstack-meeting-513:57
*** ihrachys has joined #openstack-meeting-514:00
*** hoangcx_ has joined #openstack-meeting-514:01
ihrachys#startmeeting neutron_upgrades14:02
openstackMeeting 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
openstackUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.14:02
*** openstack changes topic to " (Meeting topic: neutron_upgrades)"14:02
openstackThe meeting name has been set to 'neutron_upgrades'14:02
annphi14:02
lujinluoo/14:02
TuanVuHi guys14:02
*** ihrachys_ has joined #openstack-meeting-514:02
*** hungpv has joined #openstack-meeting-514:02
ihrachys_#startmeeting neutron_upgrades14:03
openstackihrachys_: Error: Can't start another meeting, one is in progress.  Use #endmeeting first.14:03
ihrachys_sorry I was dropped14:03
TuanVuno problem14:03
ihrachys_I presume bot still considers the meeting started :)14:03
lujinluoyes14:03
ihrachys_there are no AIs14:04
ihrachys_#topic OVO14:04
ihrachys_https://review.openstack.org/#/q/status:open+project:openstack/neutron+branch:master+topic:bp/adopt-oslo-versioned-objects-for-db14:04
ihrachys_going top to botton14:04
ihrachys_*bottom14: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.py14:05
ihrachys_hungpv, I don't follow what you try to achieve there14:05
hungpvHi14:06
ihrachys_you shouldn't need any of that. just build filter dict and pass it to get_objects14:06
*** ihrachys has quit IRC14:06
hungpvI was trying that way14:06
hungpvBut it does14:07
ihrachys_the only complexity there is that filter dict is built in several gos14:07
hungpvIt didn't pass the UT14:08
hungpvSo I come up with that so solution14: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 job14:09
ihrachys_and you just build the dict and pass it14:09
ihrachys_I would need to see the failure to judge more14:09
ihrachys_but it seems like the path forward there14:10
*** ihrachys_ is now known as ihrachys14:10
ihrachyslujinluo, hungpv do I make sense there?14:10
lujinluoyes, i think get_objects() would do the work14:10
lujinluoalso we need to use LIKE statement14:11
hungpvHum I p'm14:13
hungpvThinking about that14:13
ihrachyslujinluo, LIKE for what exactly?14:13
hungpvBut I'm kinda stuck for that way. Trying to build filter dict, and somehow it didn't work14:14
*** yamamoto has joined #openstack-meeting-514:14
ihrachysI see there is some more complexity there for rbac14:14
lujinluoi took a glance at Line 235 in old codes "l3_models.Router.tenant_id.in_(tenants_with_entries)"14:15
lujinluotenants_with_entries comes from RBAC14:15
ihrachysyeah14:15
ihrachysit's SELECT ... WHERE tenant_id IN (SELECT ...)14:15
ihrachysthis can't be easily modeled directly in OVO14:16
ihrachysand there is also NOT there14:17
ihrachys~tenant_id.in_(...)14:17
ihrachysthat's another thing not available in OVO14:17
lujinluohow about we manipulate with queried router ovo objects to find all router whose tenant does not belong to tenants_with_entries14:17
*** tlam__ has joined #openstack-meeting-514:19
ihrachysthinking14:19
*** yamamoto has quit IRC14:19
lujinluoline 206 and 207 is easier14:20
lujinluowe use get_objects(), then iterate every one of them to find gw_port_id in ports14:21
ihrachysfor rbac subquery, we could just split it out14:21
ihrachysit shouldn't affect scalability14:21
ihrachysbecause it's O(1)14:21
ihrachysas for NOT, I think we may need to add it to OVO layer first14:21
lujinluohmm, is router the only object we used NOT?14:23
ihrachyslujinluo, yes, ports calculation can be split too14:23
ihrachyslujinluo, apparently. we didn't have a need it seems before.14:23
lujinluook, then maybe we should add NOT first14:24
ihrachysanother 'solution' is to actually have a specialized method for that matter (count_by_tenant?) to accommodate for lines 234-24014:25
ihrachysand leave NOT for later14:26
ihrachysbut I am confident that the != '*' case doesn't need any of that, so we could simplify it there14:26
lujinluoi would prefer we get things done first, and leave some follow-ups to revisit14:27
ihrachysok let's go this route.14:27
hoangcx_+114:27
ihrachysok next is https://review.openstack.org/#/c/527570/ "Remove _get_subnets_by_cidr from neutron/db/extraroute_db.py"14:31
ihrachysI see it's +2, checking if I can nudge right away14:31
TuanVuthank you, Ihar14:31
ihrachysok merging14:31
lujinluo\o/14:31
ihrachyshttps://review.openstack.org/#/c/506037/ "Part II of Integrate Port OVO"14:31
ihrachysthis seems not ready for prime time14:32
TuanVuawesome! thanks a lot!14:32
ihrachyslujinluo, correct?14:32
annpthanks Ihar and Tuanvu :)14:32
lujinluoi am pissed off by all the mac_address modification14:32
lujinluoit comes back and forth14:32
lujinluoanyway, i will try to fix (hopefully) the remaining missing parts14:33
ihrachysok.14:33
ihrachyshttps://review.openstack.org/#/c/407868/ "Integration of (Distributed) Port Binding OVO" was quite close to ready the last time I checked14:34
lujinluoslawek pointed a potential race condition14:34
lujinluowould you mind have a look? i was thinking making all the delete() + some modifications + create() in one transaction?14:34
ihrachyshttps://review.openstack.org/#/c/407868/80/neutron/objects/ports.py@53 ?14:35
lujinluoyes14:35
ihrachysok. I think what slaweq suggests is to have a subtransaction opened for the whole body of update14:36
ihrachyslike we do here https://github.com/openstack/neutron/blob/master/neutron/objects/base.py#L54114:37
lujinluoyes, this is what i was thinking too14:37
ihrachysso _load_object is called in scope of the same transaction14:37
ihrachysmaking sure we can load all attributes14:38
lujinluodo we also want a test for it? i was not able to come up with one14:39
ihrachysI 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 race14:39
ihrachysalso, I think we have a test somewhere that validates a single commit()14:40
lujinluogood. i will only add the subtransaction then14:40
ihrachyshttps://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_base.py#L1652-L166514:40
ihrachysthough it doesn't seem like it failed anywhere here: http://logs.openstack.org/37/506037/9/check/openstack-tox-py27/ea53df0/testr_results.html.gz14:41
ihrachysit's actually surprising14:42
ihrachysah no, it's ot14:43
ihrachys*not14:43
lujinluo^ bad link I guess?14:43
ihrachysyou have some 'new_host' there14:43
ihrachyswhat's that?14:43
ihrachyswhy not reusing 'host'?14:43
ihrachyslujinluo, eh, yeah this is correct one: http://logs.openstack.org/68/407868/81/check/openstack-tox-py27/3520ebb/testr_results.html.gz14:43
ihrachysbut it's still passing14:44
ihrachysI think it's because in the test case, we set all fields14:44
lujinluocause then we cannot do self.delete()14:44
ihrachysbut since new_host is not a field, it's not set and so super().update() is called14:44
lujinluocause the binding with updated host does not exist yet14:44
ihrachyslujinluo, what we could do is store the original host in e.g. _load_object14:44
ihrachyslujinluo, and then reuse it whenever we update the field14:45
ihrachysto delete14:45
ihrachysand then use the new field value when creating14:45
ihrachysso in that way, you have both values available14:45
ihrachysit's actually surprising that we don't have a way to get old values of fields14:45
ihrachysin oslo.versionedobjects14:45
lujinluoyes14:46
ihrachyswe can only get a list of field *names* that were touched14:46
lujinluoexactly14:46
ihrachysso, I think we can make an exception for host attribute and cache it on _load_object14:46
ihrachysdoes it make sense?14:46
ihrachysof course, that would belong to the object implementation not base _load_object14:47
lujinluoit does, but i also need to double check maybe tmr14:47
ihrachysso you would _load_object and then also setattr(obj, '_cached_host', obj.host)14:47
lujinluoi am having difficulty understanding '_cached_host' here14:49
lujinluodo you still suggest i add it as an attribute?14:49
ihrachysas an attribute, yes14:49
ihrachysbut it would store the original host not the new one14:49
ihrachysnew one would still be using the host field of the object14:50
lujinluoah, i see your point14:50
ihrachysthen 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
ihrachysafter that, you can move forward with .create()14:50
lujinluoit saves the clearance of 'new_host'14:50
ihrachysit should also make the UT fail14:51
ihrachysI would suggest to do the changes without subtransaction, then validate the test fails, then add subtransaction to check it now passes14:51
lujinluoack!14:52
ihrachyscool!14:52
ihrachyshttps://review.openstack.org/#/c/527330/ "l3_agentschedulers_db: convert from Agent model to OVO"14:52
ihrachysI had a comment there14:52
TuanVuyes, Ihar. Could you please also check comment from An-san14:53
TuanVu?14:53
ihrachysbasically, since now we fetch using OVO interface, we should check that OVO class has a field, not that it has an attribute with the name14:53
TuanVuhmm ...14:55
ihrachysTuanVu, is it for [None] value?14:55
ihrachysI think value there is expected as None not [None]?14:55
ihrachys[None] would actually be true in boolean context14:56
annpihrachys, yes, you're right.14:57
annpihrachys, sorry i misunderstood here.14:57
ihrachysnp14:57
TuanVuok, I got it14:57
ihrachysI am honestly not entirely sure why this code is there but I would be hesitant to touch it14:57
ihrachysok I think we are out of time. anything quick to discuss before we wrap up?14:59
TuanVuso we should abandon this patch?15:00
ihrachysno why?15:00
TuanVuas you mentioned, I guess we don't need to touch that snippet anymore15:00
lujinluono, you just do not use getattr()15:00
ihrachysI think it's good. we still should move to OVO object. it just has different way to express presence of a field15:01
ihrachysright.15:01
annpihrachys, ok, got it.15:01
ihrachysuse Agent.fields.get(...)15:01
TuanVuthank you, Ihar and Luo15:01
ihrachysok we need to wrap up15:01
*** marst has joined #openstack-meeting-515:01
ihrachysthanks for all the work you do folks!15:01
ihrachys#endmeeting15:01
*** openstack changes topic to "OVO patches (Meeting topic: neutron_upgrades)"15:01
openstackMeeting ended Thu Dec 14 15:01:52 2017 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)15:01
lujinluothank you guys15:01
openstackMinutes:        http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.html15:01
openstackMinutes (text): http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.txt15:01
openstackLog:            http://eavesdrop.openstack.org/meetings/neutron_upgrades/2017/neutron_upgrades.2017-12-14-14.02.log.html15:01
TuanVuawesome, thank you very much, Ihar15:02
annpthank you15:02
annpsee you15:02
TuanVusee you guys later :)15:02
hungpvSee you guys15:03
TuanVuthanks for a meeting with really high quality15:03
*** hoangcx_ has quit IRC15:03
*** hungpv has left #openstack-meeting-515:04
*** lujinluo has quit IRC15:06
*** TuanVu has quit IRC15:06
*** annp has quit IRC15:07
*** felipemonteiro__ has joined #openstack-meeting-515:13
*** felipemonteiro__ has quit IRC15:17
*** mjturek has joined #openstack-meeting-515:17
*** amotoki has quit IRC15:22
*** felipemonteiro__ has joined #openstack-meeting-515:25
*** felipemonteiro_ has joined #openstack-meeting-515:26
*** kiennt26 has quit IRC15:26
*** ChanServ changes topic to "OpenStack Meetings || https://wiki.openstack.org/wiki/Meetings/"15:30
*** felipemonteiro__ has quit IRC15:30
*** dtantsur has joined #openstack-meeting-515:50
*** MarkBaker has quit IRC15:58
*** kp_ has joined #openstack-meeting-516:28
kp_help16:28
kp_HELP16:28
kp_HELP16:29
kp_status16:34
*** dtantsur has left #openstack-meeting-516:43
*** yamahata has joined #openstack-meeting-516:45
*** yamamoto has joined #openstack-meeting-516:46
*** yamamoto has quit IRC16:54
*** derekh has quit IRC16:58
*** felipemonteiro_ has quit IRC17:43
*** yamamoto has joined #openstack-meeting-518:05
*** yamahata has quit IRC18:06
*** felipemonteiro_ has joined #openstack-meeting-518:56
*** felipemonteiro__ has joined #openstack-meeting-518:58
*** felipemonteiro_ has quit IRC19:02
*** openstack has joined #openstack-meeting-520:32
*** ChanServ sets mode: +o openstack20:32
*** pabelanger has quit IRC20:39
*** pabelanger has joined #openstack-meeting-520:39
*** yamamoto has joined #openstack-meeting-521:07
*** yamahata has joined #openstack-meeting-521:09
*** openstack has joined #openstack-meeting-521:12
*** ChanServ sets mode: +o openstack21:12
*** yamamoto has quit IRC21:15
*** sshank has joined #openstack-meeting-521:48
*** yamamoto has joined #openstack-meeting-521:51
*** ChanServ has quit IRC22:17
*** ChanServ has joined #openstack-meeting-522:24
*** barjavel.freenode.net sets mode: +o ChanServ22:24
*** ChanServ has quit IRC22:28
*** ChanServ has joined #openstack-meeting-522:31
*** barjavel.freenode.net sets mode: +o ChanServ22:31
*** sshank has quit IRC22:35
*** sshank has joined #openstack-meeting-522:50
*** felipemonteiro_ has joined #openstack-meeting-522:50
*** felipemonteiro__ has quit IRC22:53
*** felipemonteiro_ has quit IRC22:56
*** ihrachys has quit IRC22:58
*** tlam__ has quit IRC23:05
*** felipemonteiro_ has joined #openstack-meeting-523:14
*** felipemonteiro_ has quit IRC23:35
*** mjturek has quit IRC23:48

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!