19:01:10 <devananda> #startmeeting ironic 19:01:11 <openstack> Meeting started Mon Jul 29 19:01:10 2013 UTC and is due to finish in 60 minutes. The chair is devananda. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:01:12 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:01:14 <openstack> The meeting name has been set to 'ironic' 19:01:24 <devananda> #chair NobodyCam 19:01:25 <openstack> Current chairs: NobodyCam devananda 19:01:37 <devananda> adding nobodycam to chair as I'm in Redding, tethered on my cell... 19:01:38 <NobodyCam> big aganda today 19:01:44 <jog0> o/ 19:01:49 <devananda> ~600ms ping, so i might drop 19:01:51 <lucasagomes> hey 19:02:02 <anteaya> o/ 19:02:12 <devananda> #link https://wiki.openstack.org/wiki/Meetings/Ironic 19:02:14 <devananda> agenda ^^ 19:02:59 <devananda> so, let's run down the agenda :) 19:03:10 <devananda> #topic testing 19:03:21 <romcheg> Oh, that's for me 19:03:25 <devananda> romcheg: i think ... yep :) 19:03:28 <NobodyCam> some really nice patches around this this week 19:04:15 <romcheg> So I basically did some research and have some code that is powered by a set of dirty hacks but it deploys ironic to devstack 19:04:58 <devananda> romcheg: sweet! think it'll be ready for a review soon? 19:05:09 <romcheg> I'm going to vanish it a little bit and publish in a day or two 19:05:10 <devananda> (or even a draft so others can start to poke at it) 19:05:20 <romcheg> Yes, that will be a WIP 19:05:27 <devananda> cool :) 19:05:34 <NobodyCam> awsome 19:05:45 <devananda> also FYI for folks, yuriy add some more db tests 19:05:52 <romcheg> Currently it works exclusively on my VM so I cannot publish it :) 19:06:16 <devananda> so migrations are now tested and any new db change must have tests added 19:06:26 <lucasagomes> great 19:07:06 <devananda> NobodyCam: want to talk about your dib element now? it's related to testing ;) 19:07:21 <romcheg> I spoke to him today and he said he was going to add some opportunistic tests as well 19:07:31 <NobodyCam> I can 19:07:35 <romcheg> *to port those tests from nova 19:08:01 <devananda> romcheg: i saw the pg/mysql opportunistic tests and merged it already :) 19:08:09 <NobodyCam> I have been using my ironic dib element to look into the stevedore issue 19:08:15 <romcheg> devananda: ah, great! 19:08:47 <NobodyCam> for those that don't know we get a error "IronicException: Failed to load driver fake." 19:09:02 <JoeHazzers> how ironic 19:09:09 <NobodyCam> :-p 19:09:21 <NobodyCam> seems to be a stevedore issue 19:09:34 <NobodyCam> in testing we mox the object so it passes 19:10:29 <devananda> so, romcheg, you may get the same error in devstack if you attempt to PATCH a node, since that will cause the conductor to load the node driver 19:10:57 <NobodyCam> here is the latest dump I have: http://paste.openstack.org/show/36uYgU0f5MhvbThAdmud/ 19:11:18 <NobodyCam> but the good news it rpc is working 19:11:23 <romcheg> devananda: I will keep that in mind thanks 19:12:05 <devananda> #action NobodyCam to file a bug in ironic rconductor not able to load drivers 19:12:14 * devananda delegates :) 19:12:21 * NobodyCam will do 19:12:32 <devananda> any other questions/concerns about testing? 19:12:55 <devananda> k, moving on 19:12:59 <devananda> #topic keystone 19:13:07 <devananda> this was left open from last meeting 19:13:18 <devananda> anyone have further insight into the question 19:13:19 <romcheg> There are some bad news 19:13:28 <devananda> ? 19:13:31 <romcheg> Or at least not so good ones 19:14:03 <romcheg> I'm working on supporting keystone domains in ironic 19:14:30 <romcheg> However, I was not able to log in to keystone under a domain administrator to test the things. 19:15:06 <romcheg> I spoke to some guys who are familiar to keystone, but the problem is not solved yet. 19:15:16 <devananda> romcheg: have you been in touch witht he keystone devs? 19:15:21 <devananda> ah, ok 19:15:29 <romcheg> So the most of the code in ironic is ready. 19:15:55 <devananda> when we have cross project dependencies like that 19:16:01 <romcheg> I will try to re-configure my setup tomorrow and try it again. 19:16:51 <devananda> er, maybe i misread. are you waiting on keystone changes? 19:17:24 <romcheg> It's either a bug in keystone or misconfiguration of keystone in devstack 19:17:35 <NobodyCam> is there a keystone bug for the domian admin issue already 19:17:40 <jog0> romcheg: are we the frist project to try using domains? 19:18:00 <romcheg> I still have not found that out yet 19:18:15 <romcheg> jog0: nova seems to use V3 api 19:18:23 <romcheg> do not know about domains 19:18:50 <jog0> romcheg: so that may be the issue, we are first to use domains 19:19:28 <NobodyCam> romcheg: can you check for existing bug and if not file one? 19:19:44 <romcheg> NobodyCam: will do that. 19:20:12 <NobodyCam> :) 19:20:17 <devananda> #action romcheg to file bug & investigate keystone domains 19:20:18 <NobodyCam> want a action line 19:20:21 <NobodyCam> oh 19:20:21 <devananda> :p 19:20:22 <NobodyCam> :-p 19:20:38 <devananda> moving on 19:20:41 <devananda> #topic PXE drivr 19:20:42 <romcheg> ok 19:20:49 <devananda> #topic PXE driver 19:21:05 <devananda> GheRivero: hi! it looked like it was about to be merged, and then ... ? 19:21:14 <devananda> it == the oslo image utils patch 19:21:25 <NobodyCam> link? 19:21:29 <devananda> sec 19:21:46 <devananda> s/oslo/python-g;aceclient 19:22:09 <devananda> #link https://review.openstack.org/33327 19:22:38 <devananda> flaper87 +2'd it and then someone else -1'd 19:23:49 <devananda> also, I haven't gotten around to testing GheRivero's branch in a tripleo env yet 19:24:01 <NobodyCam> eddie does bring up some good points 19:24:29 <devananda> that'll probably be the first thing i do when NobodyCam has the dib element all squared away (and i'm back from trips) 19:25:03 <devananda> it seems like GheRivero isn't here, so unless anyone else has comments on either his glancecleint or pxe driver patches... let's move on 19:25:19 * devananda gives the room a minute 19:25:44 * NobodyCam notes that element sould work now for testing 19:26:16 <NobodyCam> https://github.com/NoBodyCam/ironic-element 19:26:36 <devananda> NobodyCam: # link it pls :) 19:26:49 <NobodyCam> #link https://github.com/NoBodyCam/ironic-element 19:26:55 <NobodyCam> :-p 19:26:57 <devananda> :) 19:27:00 <devananda> k, moving on 19:27:03 <devananda> #topic API 19:27:16 <devananda> the big topic! and we still have 30 minutes left, hehe 19:27:38 <devananda> lucasagomes: hi! you've been doing a lot on the api -- thanks! 19:27:46 <lucasagomes> :) 19:27:47 <lucasagomes> np 19:28:12 <devananda> want to give an update of what's landed, what needs review, what's blocking you? 19:28:47 <lucasagomes> right 19:28:56 <lucasagomes> so self links to the resources landed last week 19:29:16 <lucasagomes> now I'm working in adding pagination to the collections 19:29:29 <lucasagomes> we still need patches to expose the nested resources 19:29:42 <lucasagomes> no blockers in the moment 19:29:53 <lucasagomes> but some decisions still needs to be made 19:30:01 <lucasagomes> for e.g the PATCH vs PUT thing 19:30:35 <lucasagomes> should we stick and use only one method to make updates at least for the first review? (using only PUT for e.g) 19:30:46 <lucasagomes> stick to one method to do update only* 19:31:11 <devananda> was the argument against PATCH that the metalanguage would be complex to implement? 19:31:20 <NobodyCam> we have patch in who 19:31:20 <NobodyCam> *now 19:31:31 <lucasagomes> devananda, yea, and also we need to decide de format 19:31:34 <devananda> NobodyCam: yes, but apparently I implemented it not according to spec 19:32:00 <NobodyCam> ahh 19:32:26 <lucasagomes> NobodyCam, http://tools.ietf.org/html/draft-ietf-appsawg-json-patch-10 19:33:05 <devananda> I think it's reasonable for our API to be consistent with other service APIs, at least in terms of how we implement basic commands 19:33:49 <devananda> this is probably worth a mailing list thread to sort out 19:34:12 <devananda> i can probably do taht tonight, unless someone else wants to 19:35:03 <devananda> k 19:35:23 <devananda> #action devananda to pose API PUT vs PATCh question on -dev ML 19:35:35 <lucasagomes> also, our spec is not aligned with the implementation 19:35:44 <lucasagomes> I will write a patch to update it soon 19:35:50 <devananda> great, thanks! 19:36:13 <devananda> what about parameter name rewrite / mapping? 19:36:20 <devananda> eg, internal id == external uuid 19:36:31 <devananda> do we really care about that? 19:36:47 <devananda> or should we just updte the spec and expose uuid 19:37:32 <devananda> woops, i typo'd -- spec says internal uuid == external id. I'm suggesting we just use uuid all the way through. 19:38:05 <lucasagomes> yea, nowadays you can use both, but the returns will always use uuids 19:38:19 <NobodyCam> devananda: +1 for consisteny 19:38:22 <lucasagomes> I'm happy changing it to use uuid only 19:38:56 <devananda> ack. might as well work that in the spec change when you do it :) 19:39:08 <lucasagomes> cool 19:39:19 <devananda> i have no update on the wsme version bump // status return codes issue 19:39:51 <devananda> anyone have more API questions/comments? 19:40:00 <lucasagomes> yea it's a problem... we should talk to dhellman and see when will be the next wsme realease 19:40:16 * dhellmann is lurking 19:40:23 <devananda> hi! 19:40:25 <lucasagomes> :D 19:40:25 <dhellmann> hi! 19:40:26 <NobodyCam> hey 19:40:27 <dhellmann> so, wsme 19:40:36 <dhellmann> there are 2 things going on 19:41:04 <dhellmann> first, some of the fixes that are included in trunk now only work with pecan, and Christophe wants some level of feature parity before doing a release 19:41:19 <dhellmann> second, we are working out the details of moving wsme to stackforge (although that doesn't hold up the release) 19:41:44 <devananda> stackforge++ 19:42:07 <dhellmann> #link https://groups.google.com/forum/#!topic/python-wsme/TRLfq-GQBhg 19:42:15 <dhellmann> that's the discussion about moving ahead with another release 19:43:16 <devananda> hmm 19:43:33 <dhellmann> does that link work for you guys, or is it somehow encoded for me? 19:43:37 <dhellmann> looks weird 19:43:37 <devananda> proper handling of status codes, both for errors and non-error-but-non-default is going to be important 19:43:41 <devananda> link worked for me 19:43:43 <dhellmann> cool 19:44:08 <devananda> most of nova->ironic interaction will be in updating certain fields 19:44:17 * NobodyCam work for me 19:44:21 <devananda> some will be immediate ERROR/SUCCESS responses 19:44:23 <NobodyCam> *works 19:44:27 <devananda> some will yield 202 INPROGRESS 19:44:41 <dhellmann> makes sense 19:45:04 <dhellmann> and that doesn't sound like an exception 19:45:08 <NobodyCam> 15 minutes 19:45:10 <devananda> right 19:45:13 <dhellmann> ok 19:45:27 <dhellmann> christophe is looking for input on an API for that, so maybe you have some? 19:45:40 * dhellmann hasn't given that any special thought, yet 19:45:59 <devananda> i hadn't either -- beyond playing with the Response obj enough to realize it didn't work :( 19:46:09 <devananda> it seemed like a reasonable approach though 19:46:20 <dhellmann> yeah, it seems like it ought to 19:46:21 <devananda> response.obj = thing 19:46:26 <devananda> response.status = int 19:46:31 <devananda> return response 19:46:43 * dhellmann nods 19:47:01 <dhellmann> I don't want to take up the whole meeting with debugging that. Maybe post to the WSME list and we can work it out there? 19:47:05 <devananda> k, i'll reply to that thread (tonight) 19:47:10 <dhellmann> :-) 19:47:17 <devananda> #action devananda to post to WSME list re: Response objects 19:47:26 <devananda> #topic open discussion 19:47:31 <dhellmann> and for now, go ahead and send pull requests to the wsme hg repo 19:47:41 <lucasagomes> :) 19:47:44 <dhellmann> there are some tricky bits to moving it that may make it take a little while 19:47:57 <devananda> gotcha 19:48:09 <dhellmann> mostly around the test configurations, so I don't want to just break them 19:48:17 <devananda> if anyone wants to dig into fixing wsme's response object ... ^ :) 19:48:40 <dhellmann> is it wsme's object, or working with the combination of pecan/wsme? 19:48:43 <devananda> dhellmann: link? i actally haven't looked for wsme's upstream before 19:48:52 <devananda> dunno - haven't dug into it 19:48:57 <dhellmann> #link https://bitbucket.org/cdevienne/wsme/ 19:49:03 <devananda> thanks 19:49:55 <dhellmann> np 19:50:47 <NobodyCam> so how about some stevedore talk 19:51:35 <devananda> ah! another question for dhellmann then ;) 19:51:44 <NobodyCam> from my poking we have a issue here https://github.com/openstack/ironic/blob/master/ironic/openstack/common/rpc/dispatcher.py#L129-178 19:52:01 <dhellmann> oh? 19:52:22 <devananda> so we've found that, outside of unit tests, stevedore has been failing to load our drivers for a little while 19:52:34 <dhellmann> :-/ 19:52:49 <dhellmann> what are the symptoms? 19:52:56 <NobodyCam> here is a really bad log 19:52:57 <dhellmann> tracebacks? 19:52:57 <NobodyCam> http://paste.openstack.org/show/36uYgU0f5MhvbThAdmud/ 19:53:22 <NobodyCam> note any thing with cjk was hacked in by /me 19:54:07 <dhellmann> stevedore should be logging an exception if it tries to import something and fails 19:54:14 <devananda> NobodyCam: I think you'll find this also in the traceack 19:54:16 <NobodyCam> where 19:54:19 <devananda> https://github.com/openstack/ironic/blob/master/ironic/conductor/resource_manager.py#L64 19:54:27 <devananda> dhellmann: it's raising an exception, yes 19:54:35 <dhellmann> ah, ok, so at least it's not eating the error 19:55:04 <dhellmann> well, no, the error in that log is a key error from trying to use the driver after it should be loaded 19:55:07 <devananda> NobodyCam: yea, that paste matches the resource_manager link i just pasted 19:55:13 <dhellmann> so there should be a traceback earlier in the log based on https://github.com/dreamhost/stevedore/blob/master/stevedore/extension.py#L96 19:55:18 <devananda> oooh 19:55:22 <dhellmann> if you're not seeing that, then there's something wrong with the logging setup 19:55:30 <devananda> or it's not even trying to load it 19:55:34 <dhellmann> true 19:55:40 <devananda> dhellmann: i (was?) doing on-demand loading 19:55:55 <NobodyCam> that the full conductor log 19:55:57 <devananda> or thought i was :) 19:56:09 <NobodyCam> there is a api log 19:56:19 <dhellmann> devananda: you may be 19:56:24 * dhellmann reads a bit 19:56:28 <NobodyCam> show the request sent and error racieved back 19:56:50 <NobodyCam> *shows 19:56:52 <devananda> it's a https://github.com/dreamhost/stevedore/blob/master/stevedore/dispatch.py#L77 19:57:00 <devananda> NameDispatchExtensionManager 19:57:03 <dhellmann> devananda: what keys does the _driver_factory have? did it find anything? 19:57:08 <GheRivero> o/ 19:57:28 <NobodyCam> hey GheRivero 19:57:55 <NobodyCam> dhellmann: I'm not sure its finding anything at all 19:58:02 <devananda> dhellmann: i dont have a test in front of me... 19:58:13 <dhellmann> devananda: to be clear, the manager is going to import the code when it is instantiated and invoke_on_load means it is going to "call" the thing it gets from load() at the same time 19:58:27 <dhellmann> so the "on demand" bit is really just getting something out of a dictionary 19:58:55 <GheRivero> jit... image tools almos merged. some positive core reviews +1 and a couple of small bits missing. To be done in the next hours. meanwhile, i'll update the image-tools ironic branch just in case 19:59:00 <dhellmann> it will log what it finds at debug level (https://github.com/dreamhost/stevedore/blob/master/stevedore/extension.py#L84) 19:59:04 <devananda> sounds like we need to dump NodeManager._driver_factory inside that try: block 19:59:07 <dhellmann> yep 19:59:18 <devananda> dhellmann: NodeManager is instantiated on demand :) 19:59:29 <devananda> let's move to #openstack-ironic, our time here is up 19:59:35 <devananda> thanks everyone!! 19:59:37 <NobodyCam> 1 minute 19:59:39 <NobodyCam> :) 19:59:40 <dhellmann> but the extension manager is a class attribute according to https://github.com/openstack/ironic/blob/master/ironic/conductor/resource_manager.py 19:59:49 <dhellmann> which means it is instantiated when the class is read, on import 19:59:58 <devananda> #endmeeting