15:01:20 #startmeeting neutron_drivers 15:01:21 Meeting started Tue Dec 15 15:01:20 2015 UTC and is due to finish in 60 minutes. The chair is armax. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:01:23 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:01:25 The meeting name has been set to 'neutron_drivers' 15:01:33 pong 15:01:35 I am sometimes tempted to start with neutron_divers 15:01:43 o/ 15:01:47 anyhow 15:02:01 o/ 15:02:02 i'd laugh if i was more awake 15:02:05 * carl_baldwin goes to get his diving gear 15:02:16 :) 15:02:18 ok 15:02:25 we have 10 triaged, 18 confirmed and 0 new 15:02:34 let’s squash the triaged list 15:02:48 we’ll continue to squash the confirmed list offline 15:03:10 #link https://bugs.launchpad.net/neutron/+bugs?field.status%3Alist=Triaged&field.tag=rfe&orderby=datecreated&start=0 15:03:15 in the order they have been submitted 15:03:25 #bug 1335640 15:03:25 bug 1335640 in neutron "[RFE] Neutron support for OSprofiler" [Wishlist,Triaged] https://launchpad.net/bugs/1335640 - Assigned to Ryan Moats (rmoats) 15:04:07 +1 to this 15:04:10 I think this is a no brainer and regXboi has volunteered 15:04:21 no brainer indeed 15:04:22 however I would like to see how the nova integration pans out 15:04:23 ++ 15:04:25 * regXboi wanders in 15:04:27 agree 15:04:34 so - I'd rather *not* wait entirely for nova 15:04:50 because if nova derails, I still really want this 15:05:04 +1 on this 15:05:04 regXboi: if nova derails for good reasons, what’s the point? 15:05:08 * mlavalle I little confused..... is this neutron drivers or weekly neutron meeting? 15:05:16 mlavalle: drivers 15:05:16 armax: nova can derail for all sorts of things 15:05:32 regXboi: that’s not the point 15:05:53 armax: it depends on the definition of "good reasons" 15:06:19 armax: and since I'm putting my name down to spend time on this, does it really matter until I ask for reviews? 15:06:52 regXboi: no, I am only thinking: I don’t want to have a broken osprofiler integration i ntree 15:07:15 regXboi: I’d rather wait than have yet another broken thing in the tree 15:07:21 that’s all 15:07:26 armax: ok, that one made me laugh 15:07:43 let’s approve this one, and gauge when it’s appropriate to start work on it 15:07:49 regXboi: I am glad I entartained you 15:07:51 next one 15:08:02 bug #1405077 15:08:02 bug 1405077 in neutron "Provide API to manage segmentation ranges" [Wishlist,Triaged] https://launchpad.net/bugs/1405077 15:08:42 for that one, I will note that oslo.config and nova folks were discussing general oslo.config mechanism to reread config values and trigger some actions without service restart on the last summit. 15:08:50 ihrachys: that’s right 15:09:00 ihrachys: actually I looked at the code 15:09:09 and apparently we can only reload logging options for the ovs agent 15:09:12 the use case is general, with a very specific api. i'd rather not piecemeal as the bug suggests. 15:09:18 dougwig: right 15:09:40 armax: you mean existing code? they planned for something general 15:09:44 there’s definitely a class of configs that make sense to be driven from the api 15:09:52 ihrachys: I did see code 15:09:54 in tree 15:10:07 that would allow to register reload hooks for options, and allow them to get triggered on a HUP 15:10:10 ihrachys: it doesn’t seem we process HUP server side to reload configuration 15:10:19 armax: yeah, so that's limited to logging now, and there is plan to make it general 15:10:38 armax: have you checked oslo.service code? I think it should be there. but I need to check. 15:10:47 i'm not even sure that i like live config reload, personally. means i can't calmly change all the files i want, and then choose when it takes effect in total. 15:10:50 ihrachys: nothing being tracked right now, because clearly we have configs that are parsed everytime and configs that are cached at initi 15:10:51 init 15:11:05 ihrachys: no, I checked the neutron ovs agent code 15:11:06 dougwig: you still trigger a signal or smth to reload 15:11:12 ihrachys: gotcha. 15:11:29 armax: I talk about other, oslo.config, mechanism 15:11:31 hup versus restart, seems really low priority to me? 15:11:44 dougwig: not for agents I guess? ;) 15:11:53 dougwig: the reload is something that every service should undetstand in 2015 15:11:55 but meh 15:11:58 agent restart can take hours. 15:12:28 so I think this bug has sparked a more interesting conversation 15:12:36 so for RFE, I would suggest the assignee to work with oslo.config folks on general mechanism, and then come back with neutron integration for stuff they care about. 15:12:44 armax: 5 seconds of api downtime is worth the bugs that kind of conversion always brings? maybe, but i'm not seeing it. 15:12:56 as to what config is deemed worthy of being driven from the api and what can stay statically defined, but reloaded on the fly 15:13:03 ihrachys: !!! which agent restart takes hours? 15:13:15 uh oh, you've made him angry. 15:13:17 kevinbenton: well, I speak mostly about resync process 15:13:36 ihrachys: that assumed that the config option is worth keeping it in a static file 15:14:12 ihrachys: if we have one that takes hours i want to know so i can start work on optimizing (not really related to this discussion though) 15:14:31 kevinbenton does optmize all the things, yes, but not in this meeting 15:14:48 kevinbenton: i think ihrachys’ comment is mostly based on anectodal past evidence 15:14:50 kevinbenton: relax 15:14:52 I agree to explore the way with config reload to satisfy the request in the bug. 15:15:04 let’s elaborate a bit more on this one 15:15:08 huh. some folks still run OSP5, let me check my premises. 15:15:23 taking hours(?) when restarting is a differrent topic.. though related. 15:15:30 someone else commented on that bug though that even a hitless restart or config reload is upsetting because they have to update each server 15:15:34 IIR 15:15:36 IIRC* 15:15:45 bug #1495440 15:15:45 bug 1495440 in python-neutronclient "bulk delete improvements" [Wishlist,Triaged] https://launchpad.net/bugs/1495440 - Assigned to Reedip (reedip-banerjee) 15:16:08 kevinbenton: yes, tehre’s a management pain of touching each replica of the server 15:16:23 kevinbenton: but that can handled via sys management tools 15:16:24 anyhow 15:16:31 new bug to discuss 15:16:36 bulky deletes 15:16:52 so this is interesting because apparently we always had bulk support in the API 15:16:58 but I am not 100% sure what’s the latest status of it 15:17:00 really? 15:17:10 dougwig: really! 15:17:24 TIL 15:17:38 dougwig: https://github.com/openstack/neutron/blob/master/neutron/api/v2/base.py#L70 15:17:43 now the question is: 15:18:18 armax: it's used in create and update only 15:18:32 ihrachys: right, that is what I suspected 15:18:58 so i vote just update the client to iterate 15:19:02 and delete 1 by 1 15:19:12 i like my "no, in use" errors in batches, yo. 15:19:14 parity with nova and an isolated change 15:19:51 kevinbenton: nova cli supports bulk create? 15:19:57 amotoki: yes 15:19:58 no, bulk delete 15:20:00 amotoki: but it’s fake 15:20:05 amotoki: it iterates over 15:20:45 dougwig: you mean that the client will collect all error status and give an aggregte one? 15:21:04 when we support bulk operation in CLI (not library) I first suggest to discuss it among all CLIs , especially openstackclient. 15:21:18 armax: i was being snarky, since delete never really deletes the first time. 15:21:21 ignore me, it's early 15:21:26 dougwig: ok 15:21:28 * armax ignores dougwig 15:21:53 amotoki: I wonder if this is a marginal improvement that can help the usability while we transition to the OSC 15:22:14 amotoki: when I looked around the landscape was fragmented as usual 15:22:25 some clients did (provide bulky ops) some others didn't 15:22:44 amotoki: I’d say, if the change is small enough and we can iterate quickly 15:22:56 let’s have it in the client side 15:23:00 armax: we can do it in neutornclient only 15:23:04 amotoki: ya 15:23:20 ok 15:23:22 but we have many neutronclient-speicific command line syntax..... 15:23:43 not sure I grasp the implication of your ..... 15:24:21 bug #1498987 15:24:21 bug 1498987 in neutron "DHCP agent should provide ipv6 RAs for isolated networks with ipv6 subnets" [Wishlist,Triaged] https://launchpad.net/bugs/1498987 15:24:34 ihrachys: this sounds like a no-brainer to me 15:24:34 armax: will comment later 15:24:38 amotoki: sounds good 15:24:40 amotoki: thanks 15:25:17 ihrachys: care to elaborate a little 15:25:18 ? 15:25:33 looking.. 15:25:44 this almost feels like no rfe at all 15:26:01 but a bug 15:26:17 I think it is similar to a case of metadata-agent. RA is advertised from a router. 15:26:21 * armax unignores dougwig 15:26:21 well, it's change in behaviour. some may claim it's fine that you don't get RAs without routers 15:26:24 dougwig: yes, a bug 15:26:29 since R in RA is router :) 15:26:47 I am happy to have it handled as a bug though. 15:27:21 provider nets don't have a router, right? 15:27:23 ihrachys: I see…did you get sc68cal’s opinion in private? 15:27:38 or in some other media? 15:27:39 armax: I think we discussed it with him before I reported it, in irc 15:27:45 but i guess the ra comes from elsewhere in that case. 15:27:45 and he said it's a legit thing to request 15:27:57 I am afraid it would take some time to find a link to logs though 15:28:40 carl_baldwin: what’s your opinion on the matter? 15:28:42 dougwig: they have an external one, where we probably don't want to advert RAs. 15:29:08 * carl_baldwin catching up, being pulled in too many directions this morning... 15:29:18 ihrachys: can we not use dnsmasq for the RA instead of spinning-up radvd? It might already be running. I'll put that in the bug 15:29:19 ihrachys: but in that case I’d argue the sanity of running the agent too 15:29:27 the dhcp agent I mean 15:29:53 haleyb: huh. that would require some specific coding in dhcp agent though. 15:30:13 haleyb: I would avoid special casing if possible. 15:30:22 timebox 15:30:23 ihrachys: how pressing of a use case this is? 15:30:37 ihrachys: I wonder if the benefit is worth the pain 15:30:40 ihrachys: right, but it might just be another command-line option. Just thinking out loud 15:30:44 dougwig: thanks dougwig 15:31:02 armax: it was not pressing much, I was just wondering whether we can help folks that start on ipv6 and always ask the wtf question on 'why my addresses don't work on my network' 15:31:09 can we deploy radvd with active/active mode? IIRC it needs to be active/passive, but dhcp-agent is active/active. we need more investigation. 15:31:25 but I might be wrong. 15:31:41 i would agree this seems like a bug fwiw 15:31:57 amotoki: I guess sending RAs from each node is fine since they should be identical 15:31:59 ok, let’s capture the discussion on the bug report 15:32:22 * carl_baldwin will watch bug report 15:32:25 and we’ll figure out over time what to do depending whether this becomes a pressing need 15:32:30 aye 15:32:36 bug #1500365 15:32:36 bug 1500365 in neutron "neutron port API does not support atomicity" [Wishlist,Triaged] https://launchpad.net/bugs/1500365 15:33:53 I wonder if we need an ‘update on unset’ field 15:33:55 naive question: why is this not a straight up api bug, with a transaction around the field updates? 15:34:13 it can’t be 15:34:41 dougwig: the transaction needs to be between the GET and the PUT! 15:35:05 the bug reads more like I want a transactional REST model 15:35:19 where I do a GET and a PUT in an atomic fashion 15:35:54 usually you do a get/put/get when you want something like that. if the put was borking the two field updates in parallel, that'd be a bug. the get/put maybe not being consistent? that's just rest. 15:36:01 we should simply acknowledge the fact that none of the OpenStack API’s work like this 15:36:22 dougwig: right 15:36:48 this was sparked by a bug where someone was booting two distinct vm’s with the same port 15:36:54 not sure how much of a use case this is 15:37:05 I wonder if we need some constraints on update of device_id and device_owner. 15:37:09 it is odd that we have port claiming being something so... unprotected. 15:37:20 so I’d say this is borderline between invalid and won’t fix 15:37:24 amotoki: that’s what I though 15:37:25 t 15:37:28 dougwig: well the HTTP if-match header is one way to solve this with REST 15:37:36 here's a shotgun. you can only aim it at your foot. have a nice day! 15:37:59 lol 15:38:01 if-match can then make the db update a compare and swap 15:38:16 kevinbenton: not sure I’d implement that with if-match 15:38:22 but that was my suggestion 15:38:23 we marked similar bug on device_id/owner update as won't fix several weeks ago, but we have another one now... 15:38:32 amotoki: link 15:38:33 ? 15:38:41 as this may end up meet the same faith 15:38:42 I haven't found it yet... 15:38:52 kevinbenton: race still exists, unless that compare is inside the update transaction. 15:38:56 amotoki: ok, no worries, when you do, perhaps you can mark it duplicated of this one 15:39:08 dougwig: yeah 15:39:11 dougwig: that's why i said "make the db update a compare and swap" 15:39:14 that would need to happen in a transaction 15:39:20 armax: yeah.. or it may be a signal we need to investigate more. 15:39:39 amotoki: I think for the specific need the issue reported 15:39:49 it’s doable to update on a clear field 15:39:57 i'd be more inclined to introduce a port-claim type api than to try to fix rest. 15:39:58 and prevent update on a prepolated field 15:40:12 dougwig: that’s exactly my point 15:40:17 armax: yes exactly. 15:40:23 this is what the if-match header is for! 15:40:31 conditional updates 15:41:53 * dougwig yells at the new-fangled headers to get off his lawn. 15:42:03 bug #1511574 15:42:03 bug 1511574 in neutron "[RFE] Support cleanup of all resources associated with a given tenant with a single API call" [Wishlist,Triaged] https://launchpad.net/bugs/1511574 - Assigned to John Davidge (john-davidge) 15:42:13 we approved this a while back 15:42:17 however... 15:42:30 https://www.ietf.org/rfc/rfc2616.txt (june 1999) :) 15:43:12 so it's been hated for 16 years. :) 15:43:15 the effort was predicated on the fact that we wanted to have a universal api that would allow the purging across the various projects 15:43:33 kevinbenton, dougwig: please let’s take this religious row elsewhere 15:43:47 * dougwig behaves. 15:43:59 now, the problem is: nova is not ever going to provide a purge(project-id) api 15:44:09 so we have an exception right there 15:44:21 amuller was a huge fan of the cross-project initiative 15:44:22 what was their reasoning? 15:44:29 dougwig: read the bug :) 15:44:42 dougwig: in a nutshell they don’t want to do orchestration anymore 15:44:49 IMHO, if this isn't cross project, it almost seems half-assed 15:45:05 Because if resources in other projects are left dangling then it's less useful 15:45:05 mestery: that’s one way to put it 15:45:19 i disagree. 15:45:27 mestery: that’s not what I meant 15:45:57 os-purge does exactly that across all projects 15:46:04 There you go 15:46:06 but it does so by leveraging the existing API 15:46:09 we have several projects that leave you dangling in certain cases and all you can do is go to SQL to clean up the mess (let's go look at the nova instances and cinder volumes that I can NEVER remove, right now.). even a neutron only purge would have its use. 15:46:32 dougwig: I don't disagree 15:46:45 ospurge should fix that for you 15:46:49 But I'm saying that this is a classic case of something which really needs to be solved at a cross-project level 15:47:02 So we can alleviate the pain for operators across the projects 15:47:12 that’s what os-purge is for 15:47:16 guys 15:47:17 There you go 15:47:21 Thanks armax :) 15:47:22 armax: not if ospurge is just driving the existing api's. an internal purge can be a little more... brutal. 15:47:34 the sticking point is not so much that 15:47:40 dougwig: that's what we should be discussing 15:47:51 but whatever, i've given up on openstack deletes ever being sane. 15:47:57 what would be the diff of using the neutron API to drive tenant deletion vs. doing it internally 15:48:06 it’s wether the the underlying API that implements the purging is a collection of many REST calls or a simpler call that takes care of it all 15:48:32 if there's technical benefit to having a single call and using internals to drive the deletion, that's worth talking about 15:48:35 unless the neutron purge API does things that we don't allow with normal deletes, i don't see the point 15:48:39 amuller: ++ 15:48:47 kevinbenton: so that's the question... 15:49:27 and if we don't allow something in a normal delete, wouldn't it be for a good reason? 15:49:28 some neutron resources like default sg cannot be deleted in normal operations. 15:49:36 amotoki: ah 15:49:38 good point 15:50:08 the question is: 15:50:26 do we want to proceed to provide a purge operation (whichever it may be implemented) regardless of what other projects do? 15:50:46 or do we want to stay aligned (which means no action for us?) 15:51:07 votes? 15:51:11 I say we should do it to get some love from operators 15:51:29 HenryG: they might still love os-purge 15:51:56 even if there is some order of projects to be cleanup, purging can be done project by project. I like to have it even if other projects does not support it. 15:51:57 amuller: you were the one pushing harder for consistency 15:51:59 that's fine if we can make os-purge work well for neutron 15:52:01 what’s your take? 15:52:21 amotoki: again, that’s what os-purge does 15:52:50 in other words, do we want to take over os-purge code and maintain it ourselves? 15:52:53 I'm against adding an API for it, unless someone shows me a compelling technical reason. We can explore owning the code that ospurge would invoke instead of having it in ospurge repo and if that make sense, pushing other projects doing the same. That still means not exposing a new API for it. 15:53:02 amotoki: why not working on os-purge side with existing API, then consider optimizations if really requested? not sure folks care about multiple calls vs. single one that much. 15:53:03 and have os-purge simply calling the neutron client? 15:53:10 os-purge sounds like a maintenance nightmare, if it does every project, out-of-tree. 15:53:21 will it keep up, i wonder? 15:53:22 dougwig: they use the clients 15:53:44 dougwig: it can make sense for each project to maintain code that ospurge would call 15:53:53 armax: i have a purge script for neutron, using the client. it is gross. it is maintenance prone. you have to track api changes, and do things in the right order, and sometimes repeat. 15:53:56 so when new API resources are added it's up to the project to update its tenant deletion code 15:54:04 ok 15:54:30 so the latest consensus is: let’s take over os-purge code ourselves, let’s do client-side orchestration 15:54:57 and ask os-purge to replace their code with ‘neutron ’ 15:55:06 that’s it 15:55:25 no cross-project consensus effort ever 15:55:28 not from us anyway 15:55:50 what about server-side stuff like default sg that isn't deleted via API? 15:55:59 armax: need some coffee? 15:56:13 kevinbenton: I'd argue that's a Neutron bug, same as HA networks weren't being deleted when the last HA for a tenant is deleted 15:56:28 kevinbenton: can we allow to delete them? 15:56:35 kevinbenton: if a resource creation creates another resource implicitly, it should also delete that resource 15:56:41 amuller: i agree 15:56:47 kevinbenton: you can still delete that via the api 15:56:54 kevinbenton: can you not? 15:57:01 i think we're pointing out that deletion is gross, client or no, and os-purge's goal of doing it all via native api is... ambitious. if that's the route folks want to go, i salute those folks. i would not want that job. 15:57:22 dougwig: you need a sugar pill instead 15:57:33 dougwig: here, eat a candy bar 15:57:56 bug #1516195 15:57:56 bug 1516195 in neutron "Push all object information in AMQP notifications" [Wishlist,Triaged] https://launchpad.net/bugs/1516195 15:57:56 i'll go sit in a corner and continue using unstack.sh as my bulk delete, since nothing else is reliable. 15:58:13 last time we talked we said we were going to review the spec to gather more info on the proposal 15:58:17 anyone willing to share? 15:58:28 dougwig: ah, so there’s something reliable then! 15:58:38 i think this discussion is happening via gerrit. (amqp) 15:59:01 ()()()()()()()()()() 15:59:10 next topic :) 15:59:18 we’re at time 15:59:19 nearly 15:59:22 sigh. 15:59:25 what a morning. 15:59:37 and it’s just started 15:59:45 I’ll capture the discussion on the bugs 15:59:49 move some bugs around etc 15:59:52 thanks folks 16:00:03 keep reviewing bugs offline, it’s your duty as driver 16:00:10 #endmeeting