17:00:30 #startmeeting ironic 17:00:32 Meeting started Mon Aug 10 17:00:30 2015 UTC and is due to finish in 60 minutes. The chair is devananda. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:00:33 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:00:33 o/ 17:00:35 The meeting name has been set to 'ironic' 17:00:36 hi folks! 17:00:39 #chair NobodyCam 17:00:40 Current chairs: NobodyCam devananda 17:00:48 o/ 17:00:52 The agenda, as usual, is here: https://wiki.openstack.org/wiki/Meetings/Ironic 17:01:07 also - reminder - our midcycle is this week (starting in ~2 days) 17:01:11 * dtantsur put some stuff on agenda, so it's not empty today :) 17:01:15 so it's possible some folks are travelling today 17:01:17 \o 17:01:19 dtantsur: woot! 17:01:31 I'll give everyone a few minutes to join ... 17:01:34 o/ 17:01:35 o/ 17:01:46 o/ 17:02:01 also please note that the location has been updated for the mid-cycle 17:02:14 * krtaylor wishes he could go 17:03:18 #topic announcements 17:03:50 * devananda lost his link ... 17:04:14 reminder: midcycle new address: Renaissance Seattle Hotel, 515 Madison Street, Seattle, Washington 98104 17:04:32 anyone else have announcements? 17:04:34 Start time 9am on Wednesday? 17:04:37 yep 17:04:39 yep 17:04:59 meeting time -- is it official, we're going to hold it weekly at this day/time? 17:05:13 yep 17:05:14 rloo: oh yes, thanks! 17:05:21 great news 17:05:22 I'll send out hte email and get the openstack calendar updated 17:05:29 thx devananda 17:05:34 awesome TY 17:05:40 tx 17:05:54 ok, moving on 17:05:55 devananda: If you like I can do the openstack calendar patch. 17:05:58 #topic subteam status reports 17:06:18 jlvillal: that'd be great, ty 17:06:24 I will add you as reviewer 17:07:05 * jroll updates neutron subteam status 17:07:06 devananda: seems to have dropped 17:07:43 hey hey jroll here? 17:07:47 hi 17:08:00 #link https://etherpad.openstack.org/p/IronicWhiteBoard 17:08:00 jroll: wrt neutron. what does it mean to miss the nova boat? we get the rest of the code done anyway and wait? 17:08:03 for the status reports 17:08:14 aaand i'm back 17:08:16 hey hey happen to want to give a update on the ml2 17:08:18 rloo: yeah, missed feature freeze, so we'll get everything else done and land it in L 17:08:27 looks like we missed the nova timeline 17:08:28 NobodyCam: just updated the whiteboard :) 17:08:35 :) 17:08:42 * jroll finding link for patches 17:09:07 this updates the data model and APIs to add portgroups etc https://review.openstack.org/#/q/status:open+project:openstack/ironic+branch:master+topic:bp/ironic-ml2-integration,n,z 17:09:13 could use reviews 17:09:29 #link https://review.openstack.org/#/q/status:open+project:openstack/ironic+branch:master+topic:bp/ironic-ml2-integration,n,z 17:10:03 jroll: thanks 17:10:15 jlvillal: welcome back from vacation :) 17:10:18 jroll: no hurry on those patches though cuz we'll have to wait for M anyway? 17:10:25 devananda: Thanks :) 17:10:29 rloo: I'd like to land the ironic stuff in Liberty 17:10:36 and nova just won't support it yet 17:10:36 rloo: yea, the ironic side should be landable anyway 17:10:49 jroll: ok. (just want to understand Liberty priorities.) 17:11:04 TheJulia: any updates on bifrost? 17:11:28 dtantsur: do you have a dashboard showing hte history of gate-ironic-inspector-dsvm-nv ? 17:11:39 nope, which is pretty unfortunate 17:11:47 dtantsur: also, what project(s) is it running against at the moment? 17:12:01 non-voting on ironic, ironic-inspector, python-ironic-inspector-client 17:12:25 TheJulia: want to chat about the work around group-var refactoring for bifrost? 17:12:27 dtantsur: once you're comfortable with it, we should enable voting on ironic-inspector and python-ironic-inspector-client 17:12:42 devananda, yeah, I'm planning on it. I even have a patch with -1 from jenkins :) 17:12:52 (patch to project-config) 17:13:19 dtantsur: wdyt about having it vote on ironic? -- my sense is that's not necessary. Ironic changes should never break it, and if we do, we should revert that patch because we would have just broken other users too 17:13:49 yeah, definitely not a requirement for now 17:13:53 cool 17:14:36 I see only one update in the driver section 17:15:02 naohirot has proposed a spec for NMI / soft power off work that should be doable by most power/management drivers 17:15:17 #link https://review.openstack.org//#/c/186700 17:15:18 for that one 17:15:34 which needs some updates but is getting there 17:15:35 would like to get other driver maintainers to look at it ^^ 17:16:14 #info driver authors / maintainers, please review https://review.openstack.org//#/c/186700 -- "Enhance Power Interface for Soft Reboot and NMI" 17:16:25 any other updates from folks? 17:17:12 ok, thanks all, let's move on 17:17:18 #topic node tagging spec 17:17:22 #link https://review.openstack.org/#/c/192935/ 17:17:42 I'm not sure who put this on the agenda, but I'm happy to talk about it for 10 minutes 17:19:14 quite silent... 17:19:17 actually, i'm not sure why this is on the agenda ... 17:19:18 dtantsur: ? 17:19:34 what's the question (for the tagging spec)? 17:19:36 yeah, sorry 17:19:53 yea, I just reviewed the spec again and I dont see what ht equestion is ... 17:20:01 oh not, that one wasn't me, but I'm ready to chat on it :) 17:20:06 let's move on then. 17:20:13 ramki left a review comment "Still not clear why we are avoiding the FK constraint. May be rationale needs to be explained." 17:20:19 why drop from length from 255 to 64? 17:20:26 whoever added it to the agenda should have indicated why. 17:20:30 rloo: indeed 17:20:45 ok, let's move on 17:20:51 I'd chat on it, but we have more pressing questions IMO 17:21:07 let us start with ironic-lib? 17:21:15 sure 17:21:17 #topic ironic-lib 17:21:27 so, we've synced some code, and we need to release it 17:21:27 this seems to have stalled for a while ... 17:21:34 oh great! let's do a release 17:21:53 +1 for a release of ironic-lib 17:21:58 yeah, otherwise we'll be syncing code forever :) 17:21:59 devananda: no, sorry for the delay, basically just trying to clean things up so we can get ansible 2.0 working and post the roles 17:22:11 after the release we need to add a dsvm job for ironic-lib pretty quickly 17:22:12 * TheJulia is a call at the moment 17:22:17 we may even do it in advance IMO 17:22:33 also need to add to global requirements 17:22:46 yeah, good catch 17:23:11 and update ironic to use the lib quickly before things get out of sync again 17:23:16 yeah, my opinion would be dsvm -> release -> global-reqs -> update ironic 17:23:29 does this ironic-lib impact the drivers' code? 17:23:32 jroll ++ 17:23:48 gabriel-bezerra, it will impact iSCSI deploy implementation 17:23:53 jroll: ++ ... dsvm job should come before release 17:24:04 though it won't test anything :) 17:24:11 dtantsur: and thus could probably affect other drivers 17:24:13 but yeah, we should do it asap anyway 17:24:17 mmm, good point 17:24:33 Having noop dsvm sounds good to me 17:24:35 so do we care about backwards compat for out-of-tree drivers using this? 17:24:45 (because it's certainly possible) 17:24:52 jroll: oh 17:24:58 tbh we never cared when moving around code... 17:25:03 it's fairly easy to solve with just some dummy functions in the old place that copy to the new 17:25:18 jroll: I would say, yes, we care about that 17:25:37 dtantsur, jroll thanks. what kind of changes should happend in drivers to cope with the new library? 17:25:43 I tend to agree, especially with it being easy 17:25:49 gabriel-bezerra: we're figuring that out now :P 17:25:56 the libraries we currently include within ironic, eg. utils, etc, is something we encourage driver authors to use 17:26:12 devananda, it's an interesting observation because up to now we were just changing code without thinking about it 17:26:13 ie, we do have a responsibility to anyone consuming it 17:26:33 but dtantsur is correct in that we never cared before when we modified those functions w/i ironic. 17:26:48 let's approach this first by replacing the methods we're moving into ironic-lib with shims that call ironic-lib 17:26:55 so we don't need to make changes even to the in-tree driver 17:27:07 devananda: ++ 17:27:17 should we eventually define "the driver SDK"? 17:27:22 dtantsur: ++ 17:27:27 sounds good to me 17:27:32 good topic for M summit 17:27:33 devananda: will the shims be temporary? 17:27:38 mmm yes 17:27:47 rloo: i hope so 17:27:51 off hand, I would say the API defined in drivers/base as well as all the methods in drivers/utils 17:28:12 rloo: yes. we could add a deprecation warning in those shims during L 17:28:17 and remove them in M 17:28:30 devananda: +1 then 17:28:36 devananda: +1 17:28:41 ++ giving folks time to update any out of tree things 17:28:46 that will give out of tree driver authors clear notice (in the log files their drivers generate) that hey, this library is changing, here's what you need to do 17:28:52 and let us add versioning to these functions 17:28:54 * dtantsur hides 17:29:00 * jroll chases dtantsur 17:29:06 lol 17:29:07 sure, cuz dtantsur loves versioning! 17:29:13 :D 17:29:14 * devananda notices that conductor/utils also forms part of our driver API 17:29:29 dtantsur: wait. ironic-lib IS adding versioning :D 17:29:31 * BadCub is a tad bit more than "fashionably late" today 17:29:37 BadCub, o/ 17:29:44 relatedly, I think we should move node_power_action and node_set_boot_device from conductor/utils to driver/utils 17:29:44 heheh emornign BadCub :) 17:29:47 jroll, fair point 17:30:10 because those are effectively part of the driver api 17:30:17 devananda, what about explicitly calling it something like ironic.driver.sdk? so that people understand what they should and should not use? 17:30:30 I mean, call the module 17:30:37 dtantsur: "sdk" is the wrong term here IMO, but yes, i agree that a good name will hlep 17:30:51 ironic.drivers.base for the interfaces 17:30:59 so ironic-lib is only going to include stuff that drivers use? 17:31:07 ironic.drivers.utils for the utility methods 17:31:08 ^^ what we have now 17:31:16 ddk "Driver development kit" 17:31:29 rloo, we started it because we needed to share code between ironic and agent 17:31:30 lol 17:31:37 NobodyCam, LOL 17:31:53 dtantsur: oh. so maybe ironic-driver-lib? 17:32:05 NobodyCam: https://en.wikipedia.org/wiki/DDK 17:32:06 dtantsur: I would move several methods or modules from ironic.drivers.modules.* into ironic.drivers.utils 17:32:08 it's actually a thing 17:32:25 .b 60 17:32:28 oops 17:32:50 :) 17:33:05 ddk isn't a bad name, except usually one releases a ddk separately from the drivers themselves ... at least in my previous experience 17:33:15 devananda ++ for moving 17:33:19 ok, so we're going to shim the things, going to do the ironic-lib thing, sounds like we have a plan? 17:33:21 anyway, we coulan bikeshed on names another time :) 17:33:31 jroll: yep. sounds like a plan 17:33:54 there were 4 steps in your plan 17:33:55 cool 17:34:00 first was a dsvm job -- who's doing that? 17:34:04 do we want a # agreed on this? 17:35:35 * devananda drops a pin 17:35:42 wow, it's quiet in here :p 17:35:43 devananda, I can propose a job 17:35:44 (though I didn't saw anybody disagreeing) 17:35:59 dtantsur: thanks much 17:36:00 dtantsur: awesome TY 17:36:02 but we need to know the name(s) since it affects the library 17:36:15 rloo: name of? 17:36:19 the library already has a name... 17:36:35 the library and the ironic.drivers.modules stuff (or is that ok as is)? 17:36:56 the former is more or less settled, the latter can be decided later IMO :) 17:37:01 tangent - do oslo libs have dsvm jobs on them? 17:37:03 or maybe i wasn't paying attention. if the library is good to go then fine. 17:37:04 * devananda checks 17:37:16 :) 17:37:25 devananda, they do 17:37:33 (at least those I contributed to) 17:38:03 some do, some don't 17:38:13 fyi two topics and 22 minutes on the clock 17:38:28 so, my thinking is that this lib should not be in the global gate 17:38:35 so we shouldn't put it into the pipelines that ARE in the gate 17:38:45 we can give it a different name to block any chaining 17:38:50 it should, however, be in ironic's gate 17:38:52 jroll: exactly 17:39:14 not sure I get what your guys discuss... 17:39:21 * you 17:39:37 #agreed new devstack job for ironic-lib should be created and added to ironic's gate, but not any of the global gate pipelines 17:39:53 dtantsur: a change in nova should not trigger this test run 17:39:55 dtantsur: I'll show you outside of this meeting 17:40:10 ack thanks :) 17:40:30 once that's landed, pls poke me and I'll do a 0.1.0 release 17:40:35 then we can start with the refactoring / creating shims 17:40:37 in Ironic 17:40:39 :) 17:41:12 #note in the meantime - do not land any changes to iSCSI code, or other code that's going into ironic-lib. let's not have to sync it again 17:41:17 ack 17:41:18 moving on 17:41:27 #topic introducing retry-after header? 17:41:39 #link https://review.openstack.org/209207 17:41:47 so for caching in zapping, we might hit a point where we don't have all the data necessary 17:41:51 dtantsur: that's you 17:41:59 that's more JoshNang :) go ahead 17:42:05 oh, ok :) 17:42:33 JoshNang: could you clarify that? 17:42:37 and we need a way to indicate to the client that they need to wait X amount of time. we landed the spec saying we'd use the retry-after header, and the RFC says you should return a 503 17:42:48 devananda: sure 17:43:50 if you're using the agent for cleaning/zapping, it generates a list of steps when it boots. when a new node is added, it won't have the complete list of steps available until the agent starts and ironic queries it 17:43:59 in all other cases, ironic should cache the steps from the agent to avoid this 17:44:32 s/agent/IPA/ 17:45:03 that seems reasonable 17:45:18 re: 503, the service won't know exactly when it will know that, however 17:45:19 the main question is how do we indicate to the client 'try again in X seconds' while ironic boots IPA and gets the list of steps? 17:45:42 https://tools.ietf.org/html/rfc7231#section-6.6.4 17:45:56 indicates that the server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. 17:46:15 this header may be used by any proxy service between the client and server to rate limit traffic to that URL 17:46:26 ie, it may affect requests for the whole endpont 17:46:34 not just that node 17:46:46 right. so maybe we use a different header and a 406 as dtantsur suggested? 17:47:03 https://tools.ietf.org/html/rfc7231#section-6.5.6 17:47:36 that should be returned if a client asks for an XML representation of our JSON objects 17:47:40 it's not supported 17:47:45 ie, the request is not acceptable 17:48:00 I probably meant 409.. 17:48:08 * dtantsur always confuses these 2 17:48:21 409 CONFLICT is what we already use for NodeLocked (and agreed we need to reduce/change) 17:48:33 and thta's a client error 17:48:46 yeah, we're abusing it a lot 17:48:50 there's not a good error code because, well, it's not an error 17:48:55 actually it should be some kind of 3xx code... 17:48:56 "server does not yet have the info you want" 17:48:59 devananda: so, we've been through all of this before 17:49:02 isn't an error in the server or in the client 17:49:11 basically I think we've determined there's no good return code for this 17:49:17 and this agenda item is "wat do" 17:49:17 an empty body is what we actually have 17:49:43 jroll, ++ 17:49:54 so perhaps the problem is that we're avoiding the problem right now by trying to use an HTTP error code 17:50:16 instead of returning an empty BODY and a custom header 17:50:41 wrt retry-after, looks like it is OK to use for eg 3xx: https://tools.ietf.org/html/rfc7231#section-7.1.3 17:50:43 with an HTTP 200 code 17:51:05 or a 204 NO CONTENT 17:51:07 maybe 202 accepted? 17:51:10 or 204, yeah.. 17:51:38 though 204 is usually used for PUT requests ...https://tools.ietf.org/html/rfc7231#section-6.3.5 17:51:51 The 202 (Accepted) status code indicates that the request has been 17:51:53 accepted for processing, but the processing has not been completed. 17:51:56 does anyone have a problem with using 200 with an empty body? 17:52:13 I think 202 is the closest 17:52:14 gabriel-bezerra: right. both 202 and 204 are in relation to PUT or POST requests 17:52:25 but we're talking about a GET request here, right? 17:52:31 while it's weird to use 202 for get 17:52:38 I think using just 200 is even more confusing 17:52:54 idk, all I know comes from this meeting 17:53:06 at least "requested has been accepted for processing" sounds precise to me 17:53:21 ie, GET /v1/nodes/NNN/cleaning/all_steps 17:53:22 * jlvillal wonders if this is a good topic for further discussion at the mid-cycle 17:53:25 JoshNang: ^ ? 17:53:26 well 17:53:32 devananda: correct 17:53:34 agree with dtantsur, 202 seems to make most sense 17:53:43 so what do we do for POST /v1/nodes/NNN/start/some/clean/step 17:53:45 202 ACCEPTED doesn't make any sense for a GET request .... 17:53:49 why? 17:54:02 because GET doesn't indicate an action 17:54:10 jlvillal: good point ... it is in three days 17:54:13 then maybe it's NOT a GET actually? 17:54:15 devananda ++ 17:54:19 dtantsur: uh, it is ... 17:54:24 ok, let's back up 17:54:27 dtantsur: the client is trying to request (GET) some data which the server doesn' thave yet 17:54:32 is this ONLY a problem for "get list of steps" 17:54:37 yes 17:54:39 or is it also a problem for "run this step" 17:54:42 5 minutes 17:54:50 jroll: that is my understanding -- only a problem for 'get list of steps 17:54:56 nope, only get. the put to start a step is expected to take some time 17:55:00 because I assume "run this step" requires ironic to know the step exists 17:55:01 ok 17:55:08 the return then is Either DontHaveYet or List() 17:55:09 404 not found could also work 17:55:19 404 is usually not retriable 17:55:26 though maybe.. 17:55:27 ie, /v1/nodes/NNN exists but /v1/nodes/NNN/cleaning doe snot yet exist 17:55:38 because that resource is not known yet 17:55:47 404 does not imply that the resource will never exit 17:55:49 just that it doens't right now 17:56:03 anyway, we have 4 minutes left, so i'm tabling this for now 17:56:05 404 with retry-after header... well, maybe 17:56:08 #topic open discussion 17:56:15 gosh 503 seems to make sense for this 17:56:15 because we should have some time for open discussion :) 17:56:19 we had one more topic on schedule as well :) 17:56:24 * agenda 17:56:28 FYI: The doc job in the gate is no longer broken. 17:56:30 wfm. feel free to discuss on the spec: https://review.openstack.org/#/c/209207/ 17:56:41 wanna flame war about which API version to leave in client? ;) 17:56:45 dtantsur: lol if you think that topic can happen in 3 minutes 17:56:48 :) 17:57:02 no chance 17:57:50 honestly, i couldn't even figure out from the mailing list what we had decided, if anything 17:57:53 dtantsur: 2.0 :-P 17:58:05 rloo: neither could I 17:58:15 we didn't make a decision on the client afaik 17:58:23 that's a normal state of things with versioning in ironic :-P 17:58:24 in IRC last week we did reach a decision re: the server 17:58:29 I haven't seen any objections on the ML 17:58:53 jroll: want to do a release of the server today? or wait till wednesday when we can all go offline immediately afterwards and get a drink? ;) 17:59:07 devananda: oh, what was the decision in IRC wrt server? 17:59:16 lol 17:59:16 rloo: last week? ya 17:59:24 devananda: yeah, I like wednesday 17:59:25 LOL 17:59:30 jroll: cool 17:59:37 rloo, NOT to do anything about already landed ENROLL version 1.11 17:59:50 rloo: http://lists.openstack.org/pipermail/openstack-dev/2015-August/071361.html 17:59:51 and *beep* time 18:00:07 thanks, that was a productive meeting 18:00:12 dtantsur, jroll: ok 18:00:13 beeeeeep :) 18:00:13 thanks all 18:00:15 thanks all! 18:00:24 see (most of) you in a couple days! 18:00:26 thank you 18:00:27 Ciao! 18:00:30 #endmeeting