13:00:16 #startmeeting nova api 13:00:17 Meeting started Wed Mar 8 13:00:16 2017 UTC and is due to finish in 60 minutes. The chair is alex_xu. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:00:18 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:20 The meeting name has been set to 'nova_api' 13:00:21 o/ 13:00:26 who is here today? 13:00:31 o/ 13:00:43 o/ 13:01:17 #topic policy improvement 13:01:36 johnthetubaguy: are you around, do you have anything want to talk about policy? 13:02:27 #link https://review.openstack.org/433010 13:02:45 the doc one I guess just need to update, I feel it should be very easy one 13:02:56 #link https://review.openstack.org/433037 13:03:05 yea 13:03:17 ^ the scope check one, I added two comments. 13:03:48 one is dump my thinking about is there anything related to capabilities API with scope check 13:03:57 I feel it should be good 13:04:29 another one is I feel 'scope' mix the scope definition and target together, that may make people confuse 13:05:42 alex_xu: you mean scope on discovery policy right 13:05:54 gmann: yea 13:07:46 yea from capability discovery pov, it will be nice 13:07:54 looks like nothing will expose on the capabilites API about scope 13:09:05 anyway johnthetubaguy isn't here, looks like we didn't have too much can talk 13:10:51 #topic open 13:11:02 anything people aware, or want to bring up? 13:11:24 I'd just like to mention/remind people to look at the api stability guidelines: https://review.openstack.org/#/c/421846/ 13:11:45 nova pretty much follows or even defined all those, but it is worth reviewing them 13:12:19 cdent: thanks for reminder. ll re look tomorrow. 13:12:25 cdent: thanks, add it to my list 13:13:35 cdent: what happened to capabilities API https://review.openstack.org/#/c/386555/, looks like no progress after PTG 13:14:22 alex_xu: it was decided that for the time being nova would explore putting a small number of capabilities, just to satisfy the horizon use case, in the server instance data 13:15:09 cdent: ah, thanks 13:15:30 I didn't see any news from the nova side also :) 13:15:47 cdent: Was anyone from Horizon in that session? I couldnt attend because I was running Horizon at the same time 13:16:26 robcresswell: not that I was aware. I wasn't really driving the capabilities discussion 13:16:36 (I think, unless I just flat out missed it) 13:16:44 Okay, fair enough. 13:17:03 Capabilities on list, rather than details, would be much more useful for us really :/ 13:17:23 anyway, sorry to derail your meeting, I just saw the Horizon ping :) 13:17:34 I think the idea was basically to do what it takes to make horizon happy 13:17:38 no worries :) 13:18:06 johnthetubaguy and sdague were driving the conversation 13:18:53 Well, our ideal solution would be to return a list of some sort per instance on an instance list. So you'd get something like {id: "foo", name: "bar", capabilities: ["lock", "soft reboot"]} 13:19:25 robcresswell: yeah, I think that's kind of the idea 13:19:41 a new field, capabilities, that had the magic sauce in it 13:19:50 That way our tables can just show the relevant actions, and nova will let us know what it can and cant do 13:20:02 Cool, the key bit is being able to access that on a list call, thats all :) 13:20:18 and it will change at run time i mean depend on instance state operation etc 13:21:35 what is the id and name? 13:21:52 alex_xu: that's instance info 13:22:36 cdent: ok, the uuid of instance, and the name of instance? 13:23:04 yeah sorry, was just attempting to give some context for structure without having the api handy 13:24:15 robcresswell: cdent how horizon will fetch the dynamic changed capabilities ? some notification or periodic refresh ? 13:25:10 gmann: I'm less concerned about rechecking that information. I don't think its likely to change quite that quickly. 13:25:19 Just getting it in the first place would be nice 13:26:24 but that will change depends on instance state, like capabilities on active server vs paused server 13:26:37 i guess at least part of state change of instance is trigger by the button of horizon 13:26:59 Right, but most of the time Horizons current design does full page refreshes anyway 13:27:14 ok 13:28:19 robcresswell: cdent thanks for the info 13:28:40 alex_xu: No problem, if I can help with anything else please ping me 13:28:49 robcresswell: thanks! 13:28:53 And again, sorry for hopping in like that :) 13:29:14 robcresswell: no worries, we have a lot of free time for today meeting :) 13:29:29 anything more people want to bring up? 13:29:34 alex_xu: i saw some of the view builder patches like - hypervisor, keypair etc 13:29:40 #link https://review.openstack.org/#/c/335282/19 13:30:08 any objection on those kind of changes ? i think they will be helpful for api extension merge 13:30:26 * johnthetubaguy only just realises its wednesday 13:30:34 gmann: why that will help for api extension merge? 13:31:11 alex_xu: on extension merge, it will be helpful to have readable code on controller side and separate the view buidling on view side 13:31:29 hypervisor and keypair are not good example on that 13:31:30 johnthetubaguy: i guess you very enjoy the work everyday, and forget the date :) 13:32:02 alex_xu: well take full hour for lunch to practice my tuba for a contest coming up, but similar :) 13:32:15 gmann: looks like two changes in there 13:32:25 there is a lot of stuff moved into the view? 13:32:42 I find that really hard to review 13:32:48 yea, response object building one 13:33:08 try move everything into the hypervisors main class, and no move into the view builder 13:33:17 I think it would be easier to review that 13:33:55 humm, hope that does not make class very large 13:33:58 thats fine 13:34:04 The API layer already very thin 13:34:04 a second patch can split it up if needed 13:34:15 its just doing that in one patch makes is *really* hard to see whats happening 13:34:39 I was expecting to see extensions being delete, why is that not happening here? 13:35:02 +1 on separating the patch. 13:35:21 oh, so this isn't removing an extension I guess? 13:35:24 but putting response object buidling on view side should be ok right? 13:35:37 hmm, I am not sure that was a good idea really 13:35:49 johnthetubaguy: yea no extension removal there seems. 13:36:26 i will try if i can put some time on extension merge which will give more clarity on code refactoring if needed 13:37:00 robcresswell: alex_xu: cdent: on capabilities, I think tonyb is writing that up post PTG, but... the requirements issues distracted him last week 13:37:21 I don't think the aim here should be small files 13:37:28 the aim should be easy to read and maintain code 13:37:52 so the extensions that split one bit of logic into three files for no good reason anymore, totally pull them into one file 13:38:11 I would actually prefer patches that delete all the view builders 13:38:16 johnthetubaguy: Yeah, I spoke to him at the PTG about what would be ideal for Horizon. I imagine there'll be a bit of compromise anyway, as I'm not aware of the perf implications on the Nova side. 13:38:16 gmann: do you need a bp for extension merge? 13:38:29 alex_xu: we have already. 13:38:33 robcresswell: yeah, he totally missunderstood the Nova conversation it turns out 13:38:45 robcresswell: what you suggested is more where the Nova side was landing, I think 13:38:46 johnthetubaguy: :) deleting all will be hard mainly for server 13:38:46 I'm also not on the view builders side 13:38:49 johnthetubaguy: lol, *facepalm* 13:38:57 johnthetubaguy: Awesome, thats good to know 13:39:28 robcresswell: yeah, luckily he told me while I was eating a really nice burger sat next to alex_xu, so I was in a good mood, lol 13:39:53 sorry, I was late, wanted to set that bit straight 13:40:10 gmann: why is it hard? lots of work for sure 13:40:55 gmann: different actions in different files is manageable, its the adding attributes to existing API call in a separate file we should focus on, I think. 13:42:07 yea that is we will fix, having all appending bits together 13:42:19 yeah, fixing that would be great 13:42:25 making adding new stuff way easier 13:42:44 the other bits, and the view split, I think we should just leave till we have those nasty bits sorted 13:42:50 or maybe we should get rid of the stevedore first, than begin to that a lot of merge work 13:43:01 anyways we can iterate view building things later once all extensions are in single place. 13:43:05 johnthetubaguy: +1 13:43:06 we know it worked when we delete loads of that boiler place extension code 13:43:34 alex_xu: yeah, dropping stevedore is probably a good step 13:43:43 yea 13:43:46 good first step 13:44:19 so (1) drop stevedore (2) drop extensions that just add attributes into existing actions (3) have a nap 13:45:02 at least merge extension won't be a blocker 13:45:11 +1 :) like 3rd one 13:45:18 :) 13:46:07 I may take a look at if i have any idea about drop stevedore without a lot of work 13:46:42 I think we can go back to a static list of classes in the API stuff that used stevedore before 13:47:00 * johnthetubaguy waves hands 13:47:10 yea, calling the current extension point static 13:47:49 frankly its tempting to migrate to use the placement API stack at somepoint, but thats a different discussion 13:48:16 yea, placement API stack is very simple and clear 13:48:17 i.e. straight forward static routing of URLs to functions 13:48:44 but thats quite a big patch, something for later 13:48:52 johnthetubaguy: ++ 13:49:05 yea that's nice for long term 13:49:06 but once we get rid of the multi-extensions stuff, it should be a simple-ish switch over 13:49:21 i.e. one function for each API 13:49:33 (expect for the version dispatch, thats fine) 13:50:16 its all built to solve a problem we no longer have, but anyways 13:50:35 johnthetubaguy: placement has version dispatch too 13:51:09 * alex_xu begin to image a lot of things 13:51:13 cdent: totally 13:51:30 * cdent considers quoting this entire section to his CV ;) 13:51:44 cdent: heh, actually a good idea 13:51:45 heh 13:51:49 :) 13:52:26 #link https://etherpad.openstack.org/p/pike-nova-priorities-tracking 13:52:50 I see there still a section for api-team, although there isn't priorities task in the api team 13:53:05 policy stuff was priority I thought 13:53:07 the docs 13:53:18 or it is for tracking the thing api-team awared 13:53:28 johnthetubaguy: ok 13:54:13 #action alex to update the priorities tracking etherpad 13:54:34 nice, it will help 13:55:25 sneti and aunnam are working on the policy docs with me 13:55:31 5 mins left, please bring up anything want to talk about soon 13:55:35 johnthetubaguy: cool 13:55:42 so most patches are likely to come with them 13:55:45 #link https://review.openstack.org/433010 13:55:55 so I think I just updated with the comments mentioned earlier in the meeting 13:56:08 alex_xu: did I get the two URLs correct in there? 13:56:44 line 65 13:57:06 johnthetubaguy: yea, that is the case 13:57:20 johnthetubaguy: but is there anyway to point the specific field clearly? 13:57:32 i guess the hostname field should have some prefix? 13:57:45 there isn't, but I think thats OK for now 13:57:52 its about making small steps forward 13:57:53 the hostname is talked in the title 13:58:04 the description will tell the human what the attribute is (or it should) 13:58:24 johnthetubaguy: ok, that also works 13:58:43 johnthetubaguy: it is really good start 13:58:56 yeah, lets iterate on this 13:59:04 just looking at your scope comments 13:59:07 context.check_scope(scope={"project_id": "%{project_id}s"}, target=instance) 13:59:08 append more thing later will be more easy 13:59:14 conext.check_scope(scope=PROJECT_SCOPE, target=instance) 13:59:23 johnthetubaguy: 1 mins left.... 13:59:35 yeah, I am tempted to leave those details for the code review 13:59:39 the spec should just be the direction 13:59:53 johnthetubaguy: ok 13:59:58 i'm cool with that 14:00:01 I will think on your idea though, I was thinking of: 14:00:10 #endmeeting