19:00:14 #startmeeting ironic 19:00:15 Meeting started Mon Aug 19 19:00:14 2013 UTC and is due to finish in 60 minutes. The chair is NobodyCam. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:16 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:00:18 The meeting name has been set to 'ironic' 19:00:30 who's here for the iRonic meeting 19:00:34 \o 19:00:37 :) 19:00:43 me 19:00:51 :) 19:01:00 welcome all 19:01:16 o/ 19:01:34 ok first up. I've tried to keep the agenda a little more up to date. 19:01:44 Agenda can be found at: https://wiki.openstack.org/wiki/Meetings/Ironic#Agenda_for_next_meeting 19:02:14 first up: 19:02:15 #topic testing env 19:03:02 # link https://review.openstack.org/#/c/41053/ 19:03:07 for devstack 19:03:28 looks like its getting a bit closer 19:03:58 is Roman around? 19:04:05 he's on vacations no? 19:04:12 oh thats right 19:04:46 that brings us to the Dib element 19:05:16 I've got a couple of -1 (which I expected) that I have yet to address in the reviews 19:06:00 I have addressed most of the issues in my (/nobodycam/) repo but have not pushed up the changed for review 19:06:10 I will get to that this week 19:06:32 any questions or comments? 19:06:45 the link for the repo u've the changes 19:06:47 is this one? https://github.com/NoBodyCam/ironic-element/ 19:07:06 yep thats the one 19:07:15 #link https://github.com/NoBodyCam/ironic-element/ 19:07:42 I will add that link to my notes on the agenda 19:07:58 #topic in-progress tasks 19:08:05 so moving on 19:08:19 un less there are more questions 19:08:46 Keystone authentication. 19:08:59 *admin-only done. v3 domains not working yet 19:09:08 any updates here? 19:09:44 romcheg was working on that, iirc 19:10:11 ya so I think we're on hold till he get back :) 19:10:22 next up a biggie: PXE driver 19:10:30 image services patch LANDED! 35272 19:10:33 * GheRivero yes yes yes! 19:10:50 not where we like it, but it's there 19:10:54 #link https://review.openstack.org/#/c/35272/ 19:11:08 Ghe awesome job getting that thru 19:11:15 several false starts 19:11:29 but great patch 19:12:05 # link https://review.openstack.org/#/c/33616/ 19:12:12 #link https://review.openstack.org/#/c/33616/ 19:12:34 I've got a -1 on the last version but really for minor doc string stuff 19:13:14 any questions / comments for Ghe? 19:13:30 i'll review that right after the meeting 19:13:36 I've to review that patch, will try to find a time to do it tomorrow 19:13:49 :) Thnk you !!! 19:14:03 cool, waiting for it 19:14:06 landing and testing the PXE driver patch is going to be a really big step closer to ironic being usable 19:14:18 devananda: ++++ 19:14:22 indeed 19:14:35 o next up: IPMI name conflict with python-ipmi 19:15:03 name conflict is almost resolved. the -infra team has been renaming a few repos over the last week 19:15:07 jbjohnso and mordred have been working on this onw 19:15:13 :) 19:15:28 #link https://review.openstack.org/#/c/41086/ 19:15:45 #link https://review.openstack.org/#/c/42503/ 19:16:36 ok with out questions we'll move on. 19:16:47 recursive-driver-import problem! (FIXED) 19:17:12 #link https://review.openstack.org/#/c/39617/ 19:17:13 Awesome fix devananda 19:18:17 any questions / comments for devananda (while he's still here, if only in body) 19:18:27 LOL 19:18:30 :p 19:18:48 ok then moving on. 19:18:50 #topic API 19:19:10 nested objects 19:19:18 and 19:19:26 sub resources 19:19:42 do we have any q/c on these 19:19:53 it was about having a subresource of the subresource? something like nodes/state/power ? 19:19:55 (do we need to keep them on hte agenda?) 19:20:03 if so I found a way to do it with wsme/pecan 19:20:06 nested objects - i think that's done 19:20:13 eg, chassis/123/nodes 19:20:16 it's on the 40844 19:20:18 #link https://review.openstack.org/#/c/40844/ 19:20:38 :) 19:20:39 ok yea it's done :) 19:20:53 ok I'll revove for next meeting 19:21:02 now! 19:21:14 our epic: PUT vs PATCH in the API 19:21:21 yea epic saga 19:21:22 soooo 19:21:33 tl;dr PUT is really confusing 19:21:45 it says you have to update the whole document but I couldn't figure out if that includes the server-generated stuff like the links 19:21:46 looks like another rev of 40844 is up, i need to review that today too :) 19:22:02 #link https://review.openstack.org/#/c/42690/ 19:22:04 So I entered the grey zone of the unclear usage of PUT, idk if it is or not allowed by the HTTP specification to do this full-but-yet-partial-update using PUT. 19:22:17 For what I read some ppl say yes and some ppl say no 19:22:34 NobodyCam: what did I do? 19:22:36 and as what we want to have is partial updates I'm suggesting us to use use PATCH instead, which is not a lot of extra work since there's available libs to work with json-patch and it that was created to solve the problem of the partial update. 19:22:54 lol mordred help with the python-ipmi rename! 19:22:59 TY mordred 19:23:00 yay! that's done 19:23:08 so there's a patch in the gerrit now, implementing patch for the chassis and nodes resources 19:23:38 any thoughts? 19:23:52 mordred: was getting ppl to +1 your patch on same 19:24:06 lucasagomes: was that the link I just posted? 19:24:13 hmm 19:24:17 yea 42690 19:24:20 that's the one 19:24:23 :) 19:24:56 ++ to PATCH 19:25:20 I was just about to say we really NEED both 19:25:21 put and patch 19:25:46 we will do PUT to update states for example... only when it makes sense to update the whole document 19:25:51 at the moment, my addled brain thinks we need both, but for different things 19:26:15 so we'll need to clearly lay out (in the API doc) which things should be updatd wqith PATCH and which with PUT 19:26:26 and i feel like there is actually a good reason for the difference 19:27:37 just a note 19:27:43 glance uses patch to update the images 19:27:43 devananda: would you be able to add any thought you have to the ethier pad before you go? 19:27:43 http://docs.openstack.org/api/openstack-image-service/2.0/content/update-an-image.html 19:28:05 #link https://etherpad.openstack.org/IronicWhiteBoard 19:28:15 for those who don't have that link 19:28:22 lucasagomes: exactly! POST = create an image. PATCH = update the image. PUT = create a tag on the image. 19:29:02 so for us, POST might create a chassis, node, or port. PATCH would update the properties or driver properties of that thing. PUT would set specific things (states, for example) 19:29:18 :) +1 19:29:37 devananda: does lucasagomes example of do PUT to update states fit that model 19:30:27 i need to re-review https://review.openstack.org/#/c/40844/8 after his last change 19:30:39 :) 19:30:59 iirc, it modelled PUT well, but there was some feedback on the state's internal representations that looks like it has been incorporated 19:31:23 yea, there's many things yet to be done about the states 19:31:28 yea 19:31:33 that review is more to expose it on the API 19:31:36 i dont want us to nitpick the states too much in this patch 19:31:47 devananda: :) 19:31:56 the internals, how it will actually works, conditions etc still need to be coded 19:31:56 because they /will/ evolve as we find edge cases, things we didn't think about, etc 19:32:02 right 19:32:20 :) 19:32:44 yea, many corner cases, states will be something like 19:32:44 code first, document later 19:32:59 not to much later I hope 19:33:31 :D yea no, but we need to actually code and test in order to find all the conditionals, flaws etc 19:33:36 with out a working product doc are mainly what I reffer (myself and oters) to 19:34:22 :) 19:34:32 the doc can come in the same review as the commit if that's the case :) 19:34:53 what I mean is... it's hard to have the states in the specification before coding 19:34:58 that's an interesting question, actually 19:35:06 lol .. U completely understand 19:35:15 should the reviewers reject patches that change behavior (eg, API) if a doc change isn't included? 19:35:29 (and with that, watch me derail the meeting :) ) 19:35:36 lol 19:35:42 I usually do 2 commits, one for the doc and then one for the doc that depends on the code 19:35:49 I did it for the filtering 19:35:58 I actually planed for the put vs patch to be our longest section 19:36:01 but I don't mind in squashing it into 1 commit if that's the case 19:36:18 and then one for the code* 19:36:21 * lucasagomes tired 19:36:24 :) 19:36:51 for inline docs, please do that in the same patch 19:37:06 devananda: ++ 19:37:11 oh yea +1 on that 19:37:25 for the sphinx docs, i can go either way, BUT, it's harder to enforce 19:37:32 if it comes in a second patch 19:37:41 and harder to review to ensure the doc change matches the code change 19:37:46 and takes more time to review 19:37:50 :) 19:38:06 since we currently have developer docs in the same repo, i really don't see a good reason to do two patches 19:38:26 at some point, we'll have to create deployer docs -- in the official openstack-docs repo(s). so that will have to be sseparate patch sets 19:38:51 I have no problem in doing in the same commit... I never got me thinking about it and the reasons posted here 19:38:55 sounds fair enough 19:39:00 great, thanks! 19:39:15 so I think we can start -1 patches that changes things like the API and has no documentation 19:39:16 :) 19:39:39 devananda: want a #(action) for that :-p 19:39:52 NobodyCam: nah. that's more of an informal vote 19:39:56 :) 19:40:07 there is actually a formal vote mechanism, but i dont think we need to kick one off ... 19:40:13 ya 19:40:25 ok so we decided here 19:40:43 to go with PATCH and PUT 19:40:45 :) any thing else on this topic 19:40:55 and -1 reviews that changes things like API without docs 19:40:56 yes! 19:41:02 cool :) 19:41:10 #agreed reviewers to start -1'ing patches that do not include doc updates 19:41:38 ok then moving on #topic FFT / open discussion 19:41:53 * NobodyCam notes fft = Food For Thought 19:42:04 just sometihng to keep in mind 19:42:31 where the vendor_passthru should actually live? 19:42:33 #agreed use PUT and PATCH for the appropriate things. PUT = state changes, tags, etc. PATCH = change item(s) in a larger document (eg, driver properties) 19:42:39 /drivers/ or /nodes/ 19:42:46 I dind't think much about it yet 19:42:59 anyone has something to say about it? is Yuri here? 19:43:15 oh, just realized - NobodyCam - you didn't chair me, so my #agreed things propbably didnt count :) 19:43:23 ieek 19:43:28 #chair devananda 19:43:29 Current chairs: NobodyCam devananda 19:43:36 #agreed reviewers to start -1'ing patches that do not include doc updates 19:43:39 #agreed use PUT and PATCH for the appropriate things. PUT = state changes, tags, etc. PATCH = change item(s) in a larger document (eg, driver properties) 19:43:42 ty :) 19:43:47 :-p doh 19:44:04 #topic open discussion 19:44:47 lucasagomes: the first level of the path is specifying the type of thing being affected, ya? 19:45:00 yea 19:45:25 lucasagomes: so i think that, when the pxe deploy ramdisk is sending data back, it should be sent to /nodes/123/vendor_passthru 19:45:36 since it is first and foremost dealing with the deploy of a specific node 19:45:39 so I'm inclined to do it in the /nodes ... since it's says the "node" is deployed and things like that 19:45:43 :) 19:45:55 yea... like that :) 19:46:12 where i think we may eventually want /drivers/foo/vendor_passthru is for things like 19:46:54 PUT {'action': 'discover', 'range': '192.168.100.0/24'} /drivers/ipmi/vendor_passthru 19:47:19 devananda: ++ 19:47:36 indeed 19:48:02 also the format... I think you suggested 2 things before 19:48:30 POST {'method': 'noop', 'data': ... } /nodes/1/vendor_passthru 19:48:32 or 19:48:49 POST {'data': ... } /nodes/1/vendor_passthru/noop 19:48:55 yea 19:49:10 lucasagomes: I like #2 19:49:14 where in the second case the /noop actually does not exists in the api code 19:49:23 i dont have enough familiarity with other APIs to have an opinion on the interface 19:49:28 well I'd say #1 is easier 19:49:40 idk how to expose something that doesnt exist in the api 19:49:43 i think we can implement #2 using Pecan's default handler 19:49:50 I can try to make a prototype 19:50:01 right 19:50:05 #link https://pecan.readthedocs.org/en/latest/routing.html#falling-back-with-default 19:50:18 but you have read the data blob to see whats being requested #1 19:50:29 s#1/with #1/ 19:50:45 what i like about #2 is that the driver's method is required by the URI, not by the message body 19:50:57 yea it's looks more clear indeed 19:51:07 much better said then my words 19:51:23 10 minutes left 19:51:33 ok so... we are inclined to use the #2 model 19:51:41 I will reasearch it, see if I can find some examples 19:51:44 +1 from /me 19:51:44 and do a prototype 19:51:53 awesome TY lucasagomes :) 19:51:57 also, it lends itself much better to the approach of "we dont introspect the body for vendor_passhthru" 19:52:05 linggao: you still here 19:52:10 ? 19:52:15 the goal really being that ironic just blindly passes what ever data it gets to the driver 19:52:19 yes, I am here 19:52:34 lucasagomes: so the routing (ie, the driver.method) being in the URI, not the body, is really best, IMO, if we can do that 19:52:53 :) linggao do you have anyquestions we can help with? 19:52:57 will try that when I get a time to a prototype 19:53:05 ty 19:53:16 I'm still working on some internal things and upstream half-time each 19:53:21 but I will try to do it this week 19:53:27 :) 19:54:05 linggao: was looking at doing power on / off 19:54:29 NobodyCam, I will ask after meeting. It's more like how to setup the client-server connection for ironic conductor 19:54:34 was just seeing if you got an answer to your questions in channel 19:54:50 NobodyCam, power on power off? virtualdriver (sshdriver)? 19:55:17 I got some idears from danvananda and you and lucas, trying them now. 19:55:31 :) ok 19:55:34 w00t, 19:55:59 lucasagomes: more the frame work for start_power_state_change 19:56:23 lucasagomes: I am trying to see if I can help on the function in conductor manager. 19:56:28 one quick announcement, just in case anyone hasn't heard 19:56:35 * NobodyCam still unsure about start_ prefix 19:56:37 linggao, ahh sweet! 19:56:50 lol 19:57:02 I'll be GONE for the next 2 weeks. No email, no phone, etc... so. NobodyCam will be running the show :) 19:57:09 ieek 19:57:19 lucasagomes: have to make sure to get connected from your client side. 19:57:26 NobodyCam, hehe I couldn't think about anything better as well, I just renamed form start_state_change to start_power_state_change since we now have power and provision states 19:57:38 ya 19:57:42 :-p 19:57:52 I'm in the same boat I think 19:57:55 lol :) 19:58:00 lucasagomes: ++. provisioning will be a challenge to do driver-independently 19:58:11 yea 19:58:30 devananda, a note to ur note... enjoy the burning man :) 19:58:39 saw some videos, looks awesome 19:58:44 lucasagomes: thanks! 19:58:50 Awesome meeting everyone! 19:59:10 devananda: Enjoy the brun... We will be thinking abut you 19:59:16 thanks, everyone! ya'll are doing awesome things ~~ I look forward to seeing all the great changes when I get back :) 19:59:30 devananda: enjoy the vacation. 19:59:38 any last words? 19:59:58 and with that: 20:00:01 #endmeeting