19:00:46 <NobodyCam> #startmeeting Ironic
19:00:47 <openstack> Meeting started Mon Oct 21 19:00:46 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:48 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
19:00:50 <openstack> The meeting name has been set to 'ironic'
19:00:55 <NobodyCam> #chair devananda
19:00:56 <openstack> Current chairs: NobodyCam devananda
19:00:59 <NobodyCam> #toplic Greetings, roll-call and announcements
19:01:03 <NobodyCam> Who's here for the Ironic Meeting?
19:01:07 <NobodyCam> hi devananda
19:01:12 <lucasagomes> o/
19:01:14 <rloo> hi
19:01:17 <romcheg> o/
19:01:25 <NobodyCam> welcome all
19:01:26 <devananda> hi!
19:01:54 <NobodyCam> ok ready to start the show
19:01:56 <GheRivero> o/
19:02:10 <NobodyCam> #topic Hong Kong design summit paper talks
19:02:11 <NobodyCam> #link http://summit.openstack.org/cfp/details/57
19:02:11 <NobodyCam> #link http://summit.openstack.org/cfp/details/97
19:02:11 <NobodyCam> #link http://summit.openstack.org/cfp/details/108
19:02:11 <NobodyCam> #link http://summit.openstack.org/cfp/details/112
19:02:13 <NobodyCam> #link http://summit.openstack.org/cfp/details/139
19:02:15 <NobodyCam> #link http://summit.openstack.org/cfp/details/183
19:02:18 <NobodyCam> (sorry of the bulk paste)
19:02:52 <NobodyCam> devananda: I have not looked over the papers yet today (or over the weekend)
19:02:52 <romcheg> devananda: I'm going to update my proposal tomorrow
19:02:59 <romcheg> Sorry for the delay
19:03:02 <devananda> romcheg: thanks
19:03:12 <devananda> so I replied  / marked incomplete a few last week
19:03:25 <devananda> i need to finalize the schedule by end of this week
19:03:48 <NobodyCam> do we have out time slots yet?
19:04:01 <NobodyCam> or is this so we can get them?
19:04:05 <devananda> as far as what day? yes.
19:04:11 <GheRivero> with incomplete state I can reedit it, so will do it tomorrow, also adding Don blueplrint
19:04:27 <NobodyCam> yea saw that :)
19:04:27 <devananda> 2013-11-07 13:50 - 18:00
19:05:01 <NobodyCam> :)
19:05:13 <devananda> GheRivero: great, thanks. I just replied to dkehn's email.lots of overlap with your proposal
19:06:05 <devananda> other than that, any questions on the summit track?
19:06:34 <NobodyCam> ok then moving on
19:06:54 <NobodyCam> 10 lines comming up. sorry:-p
19:06:57 <NobodyCam> #topic Outstanding, in-progress or Action Item updates
19:06:57 <NobodyCam> lucasagomes map somethings that needs to be done in the API
19:06:57 <NobodyCam> devananda to update ironic wiki tripleo walkthrough to include "how to update code in the undercloud"
19:07:00 <NobodyCam> lucasagomes to remove validation from API update method
19:07:02 <NobodyCam> devananda to write framework for noav-ironic driver
19:07:05 <NobodyCam> lucasagomes to add CLI docs to ironic developer doc pages
19:07:07 <NobodyCam> romcheg to propose a non-gating job to -infra
19:07:10 <NobodyCam> romcheg to add python-ironicclient to devstack install scripts
19:07:12 <NobodyCam> devananda to think about a Transifex project for Ironic
19:07:15 <NobodyCam> romcheg looking at Ukrainian and Russian transifex translations
19:07:15 <dkehn> hi, loss late
19:07:17 <NobodyCam> romcheg Check how i18n conplient we are
19:07:20 <NobodyCam> (again sorry for bulk past)
19:07:22 <NobodyCam> any updates
19:07:37 <NobodyCam> hey dkehn all good
19:07:48 <lucasagomes> the validation was removed
19:07:58 <romcheg> About me: we have this #link https://review.openstack.org/#/c/51845/
19:07:58 <romcheg> #link https://review.openstack.org/#/c/51853/
19:07:58 <romcheg> #link https://review.openstack.org/#/c/48109/
19:07:59 <lucasagomes> the CLI, well I started writing a manpage for it
19:08:06 <NobodyCam> just saying your BP and GheRivero's ironic paper are ver close to one another
19:08:16 <lucasagomes> and the work needed on the API I added a section in the https://etherpad.openstack.org/p/IronicWhiteBoard
19:08:31 <dkehn> NobodyCam, haven't seen GheRivero yet, GheRivero send me a link
19:08:34 <devananda> there's a skeleton of a nova driver up, which needs a lot of work still :)
19:08:37 <devananda> #link https://review.openstack.org/#/c/51328/
19:08:41 <romcheg> I already have +2s on devstack patches, which are required for everything to work
19:08:51 <GheRivero> dkehn: http://summit.openstack.org/cfp/details/183
19:08:59 <GheRivero> dkehn: https://etherpad.openstack.org/p/IcehouseIronicDeploymentScaling
19:09:00 <NobodyCam> TY GheRivero
19:09:08 <dkehn> thx
19:09:27 <NobodyCam> awesome progress !
19:09:37 <devananda> also, several of the patches up on ironic right now spun out of me starting the nova driver, so those could be considered blockers
19:09:53 <devananda> eg, the API changes to expose "find node by instance-uuid"
19:10:00 <NobodyCam> #action update open action items on agenda
19:10:19 <NobodyCam> #action NobodyCam update open action items on agenda
19:10:22 <devananda> and "list [un]provisioned nodes". and the state change issues in bug https://bugs.launchpad.net/ironic/+bug/1237688
19:10:25 <uvirtbot> Launchpad bug 1237688 in ironic "a failed power_state change wedges the power_state" [High,Triaged]
19:10:39 <romcheg> devananda: what's the status of the localisation project
19:11:14 <devananda> romcheg: same as last week. which is to say, clarkb said he did his part, and i'm not sure what the next step is any more ...
19:11:29 <lucasagomes> devananda, I put those on the whiteboard etherpad
19:11:43 <NobodyCam> lucasagomes: TY
19:11:44 <clarkb> devananda: there is one additional bit I can do for you which is to put the jenkins jobs in place
19:11:57 <clarkb> devananda: or you can do that, propose a change that adds the translation jobs to ironic
19:11:57 <NobodyCam> hey clarkb
19:12:10 <romcheg> Thank you clarkb
19:12:54 <NobodyCam> clarkb: I'll have a question for you in a little bit
19:12:59 <clarkb> NobodyCam: ok
19:13:20 <devananda> clarkb: if you could, that'd be awesomely helpful
19:13:23 <NobodyCam> great updates! (still reading)
19:13:36 <devananda> romcheg: i see that https://www.transifex.com/projects/p/ironic/ is there, now.
19:13:56 <NobodyCam> good to move on?
19:14:04 * NobodyCam waits
19:14:56 <NobodyCam> good to go forward?
19:15:16 <devananda> ++
19:15:20 <NobodyCam> #topic Integration and testing
19:15:33 <NobodyCam> ok I'm back on the ironic dib element
19:16:17 <NobodyCam> I upgraded to saucy and now seem to have a keystone issue in my undercloud
19:16:51 <NobodyCam> I am working thru that and will have new rav of the ironic dib patches up this week
19:17:13 <NobodyCam> I saw we have a +2 on the dev stack patches
19:17:18 <NobodyCam> :) woo hoo
19:17:36 <NobodyCam> any q/c?
19:17:55 <romcheg> I have a comment
19:18:01 <NobodyCam> shot
19:18:46 <romcheg> I won't upload the new patch set for Ironic tests in tempest until those 2 devstack patches landed
19:19:18 <romcheg> This is because there are tests for authentiction and policies which are disables in devstack now
19:19:47 <NobodyCam> :) could you put it up as WIP?
19:20:18 <romcheg> it's already a WIP
19:20:18 <NobodyCam> jusr so we can look it over :-p
19:20:25 <romcheg> ah, ok then
19:20:34 <romcheg> I will also split it into two patches
19:20:42 <romcheg> one for the client and one for the actual tests
19:20:54 <romcheg> otherwise it's going to be quite hard to review
19:21:08 <NobodyCam> :) ya that sounds like a good split
19:21:25 <devananda> romcheg: have you checked with devstack -core or PTL re that split?
19:22:07 <devananda> romcheg: it might be good to make sure they are OK with adding the client by itself, and tests in a separate patch
19:22:30 <romcheg> devananda: no, I haven't but I will do that after your suggestion
19:22:51 <NobodyCam> :) yes
19:23:04 <devananda> dtroyer: hi! if you're around, quick question for you ^^
19:23:07 <romcheg> %s/devstack/tempest/g
19:24:39 <NobodyCam> ok to move on we can come back if dtroyer jumps in
19:24:48 <devananda> yea
19:24:53 <NobodyCam> #topic Python-IronicClient
19:25:14 <NobodyCam> I saw the doc patches this morning but hve yet to look over them
19:25:19 <NobodyCam> :)
19:26:00 <lucasagomes> :)
19:26:05 <NobodyCam> lucasagomes: any Client-y things
19:26:14 <NobodyCam> you wanted to bring up?
19:26:36 <NobodyCam> I was going thru the cli last week
19:27:15 <lucasagomes> hmm one thing I didn't looked/find yet is how to install the manpage using the setuptools
19:27:19 <lucasagomes> gotta look at it
19:27:42 <lucasagomes> and we need to document how to use the python library as well
19:27:45 <lucasagomes> not only the CLI commands
19:28:01 <NobodyCam> I am un sure how we can test for bad input in the [chassis|node|port]-shell files with our current test fixtures
19:28:58 <lucasagomes> yea, we don't have any tests for the shell commands
19:29:24 <lucasagomes> I didn't take a deep look at it tho :/
19:29:25 <devananda> what do other openstack python libs cover as fara s testing?
19:29:45 <NobodyCam> I have to look into that
19:29:59 <lucasagomes> devananda, looking at the ceilometer cli which I based on to do ironic
19:30:04 <lucasagomes> they also have no tests for the shell
19:30:07 <devananda> lucasagomes: the python lib should be self-documenting
19:30:09 <lucasagomes> afaik, nova does
19:30:31 <NobodyCam> we have fixtures that mock (pun intended) the api replys
19:30:49 <lucasagomes> devananda, yea that would be great
19:30:53 <lucasagomes> also
19:31:16 <devananda> lucasagomes: eg, file/class/method doc strings + sphinx autodoc
19:32:01 <lucasagomes> devananda, right
19:32:09 <lucasagomes> yea I will try to work on some docs this week
19:32:20 <NobodyCam> :)
19:32:23 <lucasagomes> to help other people use our cli
19:33:33 <lucasagomes> NobodyCam, so ur looking at the shell tests?
19:33:45 <NobodyCam> and if you can think of how to mock a 404 reply for the shell tests
19:34:00 <NobodyCam> ya
19:34:17 <lucasagomes> yea have to take a look at how other CLIs r doing that
19:34:24 <NobodyCam> lets chat in channel about how to deal with the tests
19:34:38 <NobodyCam> lucasagomes: I NEED to
19:34:39 <lucasagomes> NobodyCam, aight
19:34:55 <NobodyCam> ok to move on?
19:35:21 <NobodyCam> #topic API discussion
19:35:52 <lucasagomes> devananda, let's talk about the instance_uuid thing?
19:35:58 <NobodyCam> some great stuff in the pipes for the api
19:36:26 <NobodyCam> and driver_factory stuff?
19:36:51 <devananda> yes
19:36:56 <devananda> several API things to talka bout
19:37:21 <lucasagomes> NobodyCam, yea, the driver_factory is just a small piece of the puzzle, deva's patch that register the drivers on the db when they start
19:37:24 <lucasagomes> does mostly of the work
19:37:25 <NobodyCam> and 23 minutes to do it
19:37:35 <lucasagomes> after that we could then expose the /drivers on the API
19:37:43 <devananda> for the public API topics, we have instane uuid and power state
19:37:56 <devananda> and the stuff lucas just said :)
19:38:22 <devananda> #link https://bugs.launchpad.net/ironic/+bug/1237688/comments/1
19:38:24 <uvirtbot> Launchpad bug 1237688 in ironic "a failed power_state change wedges the power_state" [High,Triaged]
19:38:38 <devananda> i've got a proposal on a new power state representation there, and started coding it on thursday
19:39:00 <devananda> we either need to represent taht as JsonEncodedDict, or another RPC-style object
19:39:25 <devananda> and that may, or may not, have bearing on the API too
19:40:06 <devananda> lucasagomes: on the instance_uuid -- what's the question?
19:40:39 <lucasagomes> devananda, did you think about what would be better to represent the state? adding a new attribute power_state_result or a dict style ?
19:41:12 <lucasagomes> devananda, ahh so... since we have to search for a specific instance_uuid and for non-null and null instances uuid
19:41:23 <lucasagomes> I now really think that the query makes sense
19:41:28 <devananda> great :)
19:41:43 <NobodyCam> :)
19:41:48 <NobodyCam> linggao: are you here?
19:41:56 <linggao> yep, I am here.
19:42:03 <lucasagomes> ?instance_uuid=<uuid> ?instance_uuid=null ? instance_uuid=not-null... or something like
19:42:09 <devananda> do we expose keywords in the URI? eg, GET /nodes?uuid=NONE || GET ...
19:42:21 <NobodyCam> are you looking at some of the stuff above? ^^
19:42:22 <devananda> right. so taht seems a little odd to me, but it would work
19:42:30 <lucasagomes> devananda, yes was thinking about it
19:42:46 <linggao> Yes, I am trying to implement get node by instance_uuid
19:43:26 <devananda> linggao: the DB code for that already exists. it should just be an API change, and a client lib change to match. Yes?
19:43:51 <linggao> Yes, I think so.
19:43:52 <lucasagomes> afaic yes
19:44:00 <lucasagomes> afaict*
19:44:09 <NobodyCam> :)
19:44:12 <linggao> I would extend that to any attibute in the db for the node
19:44:29 <linggao> like nodes/?power_state=something
19:44:33 <devananda> linggao: please do not do that
19:44:39 <linggao> why?
19:45:02 <devananda> linggao: searching on unindexed columns is slow. allwoing arbitrary queries in the API is not necessary, either
19:45:14 <linggao> this way we can give user a list of nodes that are deployed or not.
19:45:42 <NobodyCam> inst_uuid != null
19:45:56 <devananda> i would prefer taht the DBAPI limit which columns can be searched on.
19:46:08 <NobodyCam> inst_uuid == null
19:46:20 <NobodyCam> and inst_uuid == uuid
19:46:40 <NobodyCam> I think that would covr all our states
19:46:49 <lucasagomes> NobodyCam, :) yea
19:46:53 <devananda> related to instance_uud, yes
19:46:57 <linggao> I am thinking when we deploy 1000 nodes, how do we return a list of nodes that are good/bad?
19:47:12 <devananda> linggao: that depends on how you define good/bad :)
19:47:18 <lucasagomes> linggao, good/bad?
19:47:27 <NobodyCam> can you add a little more to that linggao
19:47:33 <linggao> like deploy_state=something?
19:47:35 <lucasagomes> the instance_uuid will fix the problem of the non-deployed/deployed nodes
19:48:59 <NobodyCam> linggao: if we need another query we can / should add that as a spereate patch
19:49:25 <linggao> NobodyCam, I am just thinking user whant to get a group of nodes that have certian states.
19:49:33 <devananda> linggao: so a query on deploy_state or power_state could be possible
19:50:05 <devananda> linggao: but IMO that should be done outside of ironic
19:50:16 <devananda> linggao: eg, with ceilometer or healthnmon integration
19:50:17 <NobodyCam> # action to define fields that should allow quesrys
19:50:18 <NobodyCam> ??
19:50:35 <linggao> davananda, I am thinking if we make it generic, i.e, using column name, then we do not have to keep changing code when new columns are added.
19:50:44 <devananda> those other openstack services should have received updates from ironic for various activities (eg, deploy fail/succeed) and retain that data for historical and reporpting needs
19:51:15 <devananda> linggao: technical problem, which we could change, is that deploy and power state will need to be represented in a more complex fasion
19:51:23 <devananda> eg, as a tuple of 6 fields, not a single one
19:51:39 <devananda> but non-technial problem, ironic isn't going to store historical data
19:52:00 <linggao> ok, I'll do the instance_uuid now and do not worry about extending it.
19:52:05 <devananda> finding out "this node's recent deplooy failed" is far less important than findign out "deploys to this node fail 30% of the time"
19:52:09 <devananda> which ironic will never be able to answer
19:52:19 <NobodyCam> :)
19:52:24 <lucasagomes> yea, also adding queries to things like properties won't be that simple
19:52:27 <devananda> right
19:52:44 <linggao> ok, I see your points.
19:52:45 <devananda> techniacl issue, solvable, but not trivial. the scope issue is bigger, IMO
19:53:05 <NobodyCam> devananda: for that reason I would vote attrubite for your question in previous topic
19:53:26 <NobodyCam> 7 minutes
19:53:34 <devananda> k
19:53:36 <NobodyCam> good to to FFT/OD
19:53:40 <NobodyCam> ?
19:53:58 <NobodyCam> #topic Food for Thought / Open Discussion
19:53:59 <devananda> #action devananda to propose replacing power state and requested power state with 6 columns instaed of 2
19:54:18 <devananda> one thing from last topic we didn't finish ...
19:54:28 <NobodyCam> #topic API discussion
19:54:31 <devananda> the driver_factory / conductor-RPC object / expose "/driver" in API
19:54:41 <devananda> lucasagomes: you had thoughts on taht?
19:55:24 <lucasagomes> devananda, actually i was just
19:55:36 <lucasagomes> telling that with ur patch landing we already can expose that
19:55:41 <lucasagomes> /drivers
19:55:45 <devananda> ah. cool :)
19:55:47 <devananda> yes
19:55:49 <NobodyCam> :)
19:55:54 <devananda> #topic Open Discussion
19:55:55 <lucasagomes> now GET /drivers/<id>
19:55:58 <lucasagomes> that's another thing
19:56:01 <devananda> hehe
19:56:22 <linggao> I'd ask about API versioning
19:56:35 <linggao> currently we only have v1
19:56:43 <NobodyCam> ok we do not log our irc here : http://eavesdrop.openstack.org/irclogs/
19:56:45 <devananda> linggao: public API or the internal RPC api?
19:56:48 <NobodyCam> do we want to?
19:57:27 <linggao> devananda, the one that is controlled by the RestController
19:57:33 <devananda> linggao: public API.
19:57:36 <linggao> ok,
19:57:42 <NobodyCam> clarkb: my question was going to be how do we get ironic irc logs into http://eavesdrop.openstack.org/irclogs/
19:57:54 <linggao> for v2, will it be super set of v1?
19:58:04 <linggao> or just supplyment?
19:58:26 <devananda> linggao: i dont understand why you'd ask about v2
19:58:27 <NobodyCam> *two minutes*
19:58:40 <linggao> will v1 controller and v2 controller co-exist?
19:58:57 <clarkb> NobodyCam: you add the channel to http://git.openstack.org/cgit/openstack-infra/config/tree/modules/openstack_project/manifests/eavesdrop.pp#n25
19:59:07 <devananda> linggao: when we need to create another version of the API, we'll have to consider compatibility, yes.
19:59:12 <NobodyCam> awesome TY clarkb
19:59:14 <NobodyCam> :)
19:59:19 <linggao> cause, I am fixing the bookmark url problem that does not have the vrsion numer in the url
19:59:53 <devananda> lucasagomes: i thought bookmark was supposed to NOT have the /v#/ string in the url?
19:59:58 <NobodyCam> ok going to have to move any thing left to our home channel
20:00:05 <NobodyCam> #endmeeting